《AI安全之对抗样本入门》—2.10 GPU服务器

举报
华章计算机 发表于 2019/06/17 18:07:03 2019/06/17
【摘要】 本节书摘来自华章计算机《AI安全之对抗样本入门》一书中的第2章,第2.10节,作者是兜哥。

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所示。

 image.png

图2-14 选择主机

2. 其他设置

设置服务器名称以及登录密码,如图2-15所示。

 image.png

图2-15 其他设置

3. 服务器概况

服务器安装完成后,界面显示使用了一块GPU Tesla M60,如图2-16和图2-17所示。

 image.png

图2-16 服务器概况(一)

 image.png

图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


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。