本书中会大量使用CNN、LSTM和MLP,这些算法的计算量都非常巨大,尤其是CNN几乎就是CPU杀手,单纯使用我的Mac本经常力不从心。
目前在深度学习领域,主流的商用GPU型号是NVIDIA Tesla系列K60、M40以及M40,我们将对比这三款产品的关键性能参数,官方的参数对比如下:
·M60拥有两个GM204核芯,该核芯拥有2048个计算单元、8 G显存,单精度浮点性能可达4.85 Tflops。
·M40拥有一个GM200核芯,该核芯拥有3072个计算单元、12 G显存,单精度浮点性能可达7 Tflops。
·K40拥有一个GK110核芯,该核芯拥有2880个计算单元、12 GB显存,单精度浮点性能可达4.29 Tflops。
M40计算能力约为一个M60云主机的1.44倍,但是价格却超过M60的2倍,而K40云主机的计算能力不如M60,却比M60贵,所以从计算能力来讲,M60性价比最高 [1] 。
这里我介绍如何使用某公有云上的M60 GPU服务器,强烈建议验证阶段使用按需付费的GPU服务器,最好是按照小时计费,这种比较划算。
1.选择主机
根据需要选择服务器CPU、内存和硬盘等配置,最关键还要选择GPU,通常Tesla M60足够我们使用了(见图2-5)。
图2-5 选择主机
2.其他设置
设置服务器名称以及登录密码(见图2-6)。
3.服务器概况
服务器安装完成后,界面显示使用了一块GPU Tesla M60(见图2-7和图2-8)。
图2-6 其他设置
图2-7 服务器概况(一)
4.运行测试程序
我们在GPU服务器上运行经典的使用CNN识别MNIST的例子,这个在我的Mac本上训练12轮需要花费接近2小时。我们发现程序运行时加载了CUDA,这是在GPU上运行深度学习算法的基础,代码如下:
图2-8 服务器概况(二)
[root@keras001 ~]# python keras-demo.py Using TensorFlow backend. I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcublas.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcudnn.so.5 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcufft.so.8.0 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:135] successfully opened CUDA library libcurand.so.8.0 locally
然后我们继续观察,发现程序提示信息显示,加载了GPU Tesla M60,内存约8 G:
I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: name: Tesla M60 major: 5 minor: 2 memoryClockRate (GHz) 1.1775 pciBusID 0000:00:15.0 Total memory: 7.93GiB Free memory: 7.86GiB I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y
完整的程序运行完约3分钟,这速度完胜我的Mac本。
[1] https://zhuanlan.zhihu.com/p/27792556