我正在训练CNN使用Tensorflow对CIFAR-10数据集进行分类。我正在AWS p2.xlarge实例上运行06_CIFAR-10.ipynb Jupyter Notebook(1个GPU,4个vCPU,61GB RAM)。我使用Ubuntu 14 Tensorflow AMI设置了它。
培训需要很长时间。当我检查系统资源时,我发现大多数资源仍然可用。
$ free -h
total used free shared buffers cached
Mem: 59G 3.5G 56G 15M 55M 854M
-/+ buffers/cache: 2.6G 57G
Swap: 0B 0B 0B
$ top
top - 18:10:47 up 1:53, 1 user, load average: 0.47, 0.63, 0.69
Tasks: 134 total, 1 running, 133 sleeping, 0 stopped, 0 zombie
%Cpu(s): 19.1 us, 4.6 sy, 0.0 ni, 73.2 id, 0.0 wa, 0.0 hi, 0.3 si, 2.8 st
KiB Mem: 62881764 total, 3695184 used, 59186580 free, 56792 buffers
KiB Swap: 0 total, 0 used, 0 free. 875028 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2282 ubuntu 20 0 0.099t 2.192g 202828 S 248.2 3.7 141:55.88 python3
$ nvidia-smi
Sat May 6 18:12:28 2017
+------------------------------------------------------+
| NVIDIA-SMI 352.99 Driver Version: 352.99 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 On | 0000:00:1E.0 Off | 0 |
| N/A 54C P0 67W / 149W | 11012MiB / 11519MiB | 54% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| 0 2282 C /usr/bin/python3 10954MiB |
+-----------------------------------------------------------------------------+
如何检测瓶颈在哪里?以及任何利用所有系统资源的建议?
答案 0 :(得分:0)
您可以通过许多技巧和改进来实现高性能,例如确保使用高性能输入管道,并利用软件流水线技术。遗憾的是,如果没有关于您的具体设置的进一步信息,我将无法进一步诊断。
有关背景阅读(提高性能的提示和技巧),请参阅:
我建议从开源的tensorflow基准测试脚本开始,可在以下位置获取:https://github.com/tensorflow/benchmarks