2.10 GPU服务器
2.10 gpu服务器
本书中会大量使用cnn、lstm和mlp,这些计算量都非常巨大,尤其是cnn几乎就是cpu杀手。
目前在深度学习领域,主流的商用gpu型号是nvidia tesla系列k40、m40以及m60,我们将对比这三款产品的关键性能参数,官方的参数对比如下:
? m60拥有两个gm204核芯,每个gm204核芯拥有2048个计算单元,拥有8g显存,单精度浮点性能可达4.85tflops。
? m40拥有一个gm200核芯,该核芯拥有3072个计算单元,拥有12g显存,单精度浮点性能可达7tflops。
? k40拥有一个gk110核芯,该核芯拥有2880个计算单元,拥有12g显存,单精度浮点性能可达4.29tflops。
一个m40的计算能力约为一个m60云主机的1.44倍,但是价格却超过m60的2倍;而k40云主机的计算能力不如m60,却比m60贵,所以从计算能力来讲,m60性价比最高。
这里我介绍如何使用某公有云上的m60 gpu服务器,强烈建议在验证阶段使用按需付费的gpu服务器,最好是按小时计费,这种比较划算。
1. 选择主机
根据需要选择服务器cpu、内存和硬盘等配置,最关键还要选择gpu,通常tesla m60足够我们使用了,如图2-14所示。
图2-14 选择主机
2. 其他设置
设置服务器名称以及登录密码,如图2-15所示。
图2-15 其他设置
3. 服务器概况
服务器安装完成后,界面显示使用了一块gpu tesla m60,如图2-16和图2-17所示。
图2-16 服务器概况(一)
图2-17 服务器概况(二)
4. 运行测试程序
我们在gpu服务器上运行经典的使用cnn识别mnist的例子,这个例子在我的mac本上训练12轮需要花费将近2个小时。我们发现程序运行时加载了cuda,它是在gpu上运行深度学习算法的基础:
[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,内存约8g:
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本。
5. 手工安装深度学习库
有时候需要根据软硬件环境自己选择安装对应的深度学习库,其中最重要的是看cudnn和cuda的版本,查看服务器的cudnn和cuda版本的方法为:
#cuda 版本
cat /usr/local/cuda/version.txt
#cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep cudnn_major -a 2
#或者 cat /usr/include/cudnn.h | grep cudnn_major -a 2
本书中会大量使用cnn、lstm和mlp,这些计算量都非常巨大,尤其是cnn几乎就是cpu杀手。
目前在深度学习领域,主流的商用gpu型号是nvidia tesla系列k40、m40以及m60,我们将对比这三款产品的关键性能参数,官方的参数对比如下:
? m60拥有两个gm204核芯,每个gm204核芯拥有2048个计算单元,拥有8g显存,单精度浮点性能可达4.85tflops。
? m40拥有一个gm200核芯,该核芯拥有3072个计算单元,拥有12g显存,单精度浮点性能可达7tflops。
? k40拥有一个gk110核芯,该核芯拥有2880个计算单元,拥有12g显存,单精度浮点性能可达4.29tflops。
一个m40的计算能力约为一个m60云主机的1.44倍,但是价格却超过m60的2倍;而k40云主机的计算能力不如m60,却比m60贵,所以从计算能力来讲,m60性价比最高。
这里我介绍如何使用某公有云上的m60 gpu服务器,强烈建议在验证阶段使用按需付费的gpu服务器,最好是按小时计费,这种比较划算。
1. 选择主机
根据需要选择服务器cpu、内存和硬盘等配置,最关键还要选择gpu,通常tesla m60足够我们使用了,如图2-14所示。
图2-14 选择主机
2. 其他设置
设置服务器名称以及登录密码,如图2-15所示。
图2-15 其他设置
3. 服务器概况
服务器安装完成后,界面显示使用了一块gpu tesla m60,如图2-16和图2-17所示。
图2-16 服务器概况(一)
图2-17 服务器概况(二)
4. 运行测试程序
我们在gpu服务器上运行经典的使用cnn识别mnist的例子,这个例子在我的mac本上训练12轮需要花费将近2个小时。我们发现程序运行时加载了cuda,它是在gpu上运行深度学习算法的基础:
[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,内存约8g:
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本。
5. 手工安装深度学习库
有时候需要根据软硬件环境自己选择安装对应的深度学习库,其中最重要的是看cudnn和cuda的版本,查看服务器的cudnn和cuda版本的方法为:
#cuda 版本
cat /usr/local/cuda/version.txt
#cudnn 版本
cat /usr/local/cuda/include/cudnn.h | grep cudnn_major -a 2
#或者 cat /usr/include/cudnn.h | grep cudnn_major -a 2