问题类型:回归
输入:序列长度从14到39不等,每个序列点都是4个元素的向量。
输出:标量
神经网络:3层Bi-LSTM(隐藏矢量大小:200),后跟2个完全连接的图层
批量大小:30
每个时期的样本数量:~7,000
TensorFlow版本:tf-nightly-gpu 1.6.0-dev20180112
CUDA版本:9.0
CuDNN版:7
两个GPU的详细信息:
GPU 0: 名称:GeForce GTX 1080 Ti专业:6个未成年人:1个memoryClockRate(GHz):1.582 totalMemory:11.00GiB freeMemory:10.72GiB
运行期间的nvidia-smi(仅使用1080 Ti):
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 385.69 Driver Version: 385.69 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... WDDM | 00000000:02:00.0 Off | N/A |
| 20% 37C P2 58W / 250W | 10750MiB / 11264MiB | 10% Default |
+-------------------------------+----------------------+----------------------+
| 1 Quadro K1200 WDDM | 00000000:03:00.0 On | N/A |
| 39% 35C P8 1W / 31W | 751MiB / 4096MiB | 2% Default |
+-------------------------------+----------------------+----------------------+
GPU 1: 名称:Quadro K1200 major:5 minor:0 memoryClockRate(GHz):1.0325 totalMemory:4.00GiB freeMemory:3.44GiB
运行期间的nvidia-smi(仅使用K1200):
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 385.69 Driver Version: 385.69 |
|-------------------------------+----------------------+----------------------+
| GPU Name TCC/WDDM | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 108... WDDM | 00000000:02:00.0 Off | N/A |
| 20% 29C P8 8W / 250W | 136MiB / 11264MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
| 1 Quadro K1200 WDDM | 00000000:03:00.0 On | N/A |
| 39% 42C P0 6W / 31W | 3689MiB / 4096MiB | 23% Default |
+-------------------------------+----------------------+----------------------+
花费1个纪元的时间:
仅限GPU 0(设置环境var" CUDA_VISIBLE_DEVICES" = 0):〜60分钟
仅限GPU 1(设置环境var" CUDA_VISIBLE_DEVICES" = 1):〜45分钟
设置环境变种。到" TF_MIN_GPU_MULTIPROCESSOR_COUNT = 4"在两次测试中。
为什么在训练我的神经网络时,更好的GPU(GeForce GTX 1080 Ti)会变慢?
提前致谢。
更新
使用CNN model对MNIST数据集进行的另一组测试显示了相同的模式:
培训17个时代的时间:
GPU 0(1080 Ti):约59分钟
GPU 1(K1200):约45分钟
答案 0 :(得分:0)
官方tensorflow document的章节为“#34;允许GPU内存增长"引入两个会话选项来控制GPU内存分配。我分别尝试了它们来训练我的RNN模型(仅使用GeForce GTX 1080 Ti):
config.gpu_options.allow_growth = True
和config.gpu_options.per_process_gpu_memory_fraction = 0.05
两者都将训练时间从原来的每个时期约60分钟缩短到每个时期约42分钟。我仍然不明白为什么这会有所帮助。如果你能解释一下,我会接受这个答案。感谢。