![ab3a64e0f8b04c6580cd06e633e683f7.png](https://i-blog.csdnimg.cn/blog_migrate/a90599a0e693857b83f610b9dfce0494.jpeg)
本文着重于硬件方面的问题,代码方面的问题后续会讨论。
背景
多人使用一台服务器,常常会发生由于某个任务占用某个计算资源(cpu,gpu,内存,硬盘io等)过多,而导致其他任务由于该计算资源过少而训练速度过慢的问题
可能的瓶颈
本身训练代码(软件)可能的问题
- 有无多线程多进程输入。
- op操作是否有做gpu优化。
- 将数据集的预处理过程放入训练过程。
- 请参考学习tensorflow以及pytorch的performance guide。
服务器(硬件)的问题
- CPU使用。
- GPU使用。
- 内存使用。
- 硬盘使用等等。
硬件可能的问题
1.CPU
CPU的主要问题
- pytorch以及tensorflow的多线程输入设定过大,一般推荐较大数据流4线程,较小2线程。具体问题具体分析,要看数据输入是否是训练速度优化的瓶颈。
- numpy或者opencv等的多线程操作或者tensorflow以及pytorch在cpu运行上的op。这些模块使用OMP或者MKL进行多线程加速,一般默认为cpu线程总数的一半,十分浪费计算力,推荐使用4线程&#