[关闭]
@rg070836rg 2018-04-16T14:33:32.000000Z 字数 2060 阅读 1778

dgx性能测试

配置


更换docker源

docker默认镜像拉取地址为国外仓库下载速度较慢,会超时,换成国内镜像。
sudo vim /etc/docker/daemon.json

  1. /etc/docker/daemon.json

重启服务
sudo service docker restart

拉取docker服务

https://hub.docker.com
在这边搜索,或者直接用 docker serach XXX
利用命令 nvidia-docker pull 名字:tag
拉取镜像

删除docker实例
nvidia-docker rm c8a4bf012268

停止docker实例
docker stop a004f2b5888a

停止后再启动
docker start a004f2b5888a

退出后重连
docker attach a004f2b5888a

使用docker

  1. nvidia-docker run -it -v /raid/chenshi:/chen_data --name chen_keras_tf nvcr.io/nvidia/tensorflow:18.03-py3 bash

nvidia-docker run
-it
-v /raid/chenshi:/chen_data #映射主机磁盘到docker /源地址:docker地址
--name chen_keras_tf #别名
nvcr.io/nvidia/tensorflow:18.03-py3 @镜像名:tag
bash

如果需要隔离显卡,在run前面,加上对应代码即可
NV_GPU=0,1,4 nvidia-docker run.....

这边使用时,请注意加上别名区分,如果环境有改变,可以考虑提交成镜像,共下次自己使用,方法如下:

  1. nvidia-docker commit 2b1a57a3cb4c chen_keras:v1.0
  2. 其中2b1a57a3cb4c是容器id chen_keras是镜像名字 v1.0tag标签
  3. 然后再save成镜像
  4. nvidia-docker chen_keras:v1.0 > chen_keras.tar

注意

1、run之前,先考虑好是否需要隔离显卡
2、注意磁盘的映射,建议在某个文件夹下面建议自己的文件夹,整体映射
3、建议利用names区分是谁的镜像,以防混乱

测试

测试1 plant_seedlings:keras

K80:单个Epoch 216s 2s/step
dgx:单个Epoch 36s 285ms/ste
加速比例:216/36=6

测试2 neural-style-master

imagenet-vgg-verydeep-19.mat 做迭代
https://github.com/anishathalye/neural-style
对同一张图片进行1000次迭代:
dgx:208s
k80:1451s
加速比例:1451/208=6.975962

测试3 mnist_mlp

dgx:
1:2s 26us/step
2: 2s 38us/step
4:3s 55us/step
8:6s 104us/step

k80:
1:2s

任务太小,近乎没有加速

测试4 Dog_breed_identification

DGX:
InceptionV3:321.28376555
Xception:315.984331607
InceptionResNetV2:344.929951

k80:
InceptionV3:737.23624
Xception:1092.263
InceptionResNetV2:1374.97

加速比例:2~3倍

测试5 cifar-10

k80:
1:step 180, loss = 3.86 (4249.7 examples/sec; 0.030 sec/batch)
2:step 15560, loss = 0.72 (8375.4 examples/sec; 0.015 sec/batch)
4:step 180, loss = 3.72 (17076.5 examples/sec; 0.007 sec/batch)

dgx:
1:step 880, loss = 2.52 (11222.9 examples/sec; 0.011 sec/batch)
2:step 1490, loss = 1.80 (15099.7 examples/sec; 0.008 sec/batch)
4:step 310, loss = 3.59 (15553.4 examples/sec; 0.008 sec/batch)
8:step 2760, loss = 1.17 (14002.3 examples/sec; 0.009 sec/batch)

多卡加速效果不明显。单卡在三倍左右的效率。

测试6 强化学习任务

k80:
6ms/step
dgx:
2ms/step

单卡效率3倍左右

总结

1 本次对比和k80服务器进行对比,从结果来看,单卡效率远超过k80,某些任务下,能达到k80的7倍左右。
2 在多卡协作对比时,k80服务器能较好的保持线性效率的增长,但是在dgx上,多卡协作,效率没有多大提升。猜测:①单卡本身能保持较快的计算速度,所以在多卡时,其他时延成为了瓶颈 ②有可能docker优化不够充分。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注