眼看游戏卡RTX3080 发售在即,我终于等到了滴滴云(感谢)A100的测试机会。因为新卡比较紧张,一直在排队中,直到昨天才拿了半张A100...今天终于上手了单张40G的A100,小激动,小激动,小激动!!!基于安培架构的最新一代卡皇(NVIDIA GPU A100 Ampere)可以搞起来了。
Part 1:系统环境
A100正处于内存阶段,官网上还看不到。内测通过ssh连接,ssh连上去之后大概看了下系统环境。
操作系统,CPU,RAM数据如上。重点关注GPU:A100-SXM4-40GB (上次摸DGX A100的时候,没有把测试跑起来,好悔)
CUDA11,CudNN,TensorFlow1.5.2 等配套环境滴滴云都已经部署好了,可以省去好多时间!
这里需要注意,新版显卡必须要用CUDA11,而且得用NV自己编译的TensorFlow1.5.2。
然后,网上捞一段Python代码:
from tensorflow.python.client
import device_lib print(device_lib.list_local_devices())
输出:
Created TensorFlow device (/device:GPU:0 with 36672 MB memory) -> physical GPU (device: 0, name: A100-SXM4-40GB, pci bus id: 0000:cb:00.0, compute capability: 8.0)
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 3653225364972814250
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 7582640257522961335
physical_device_desc: "device: XLA_CPU device"
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 5159602092499780099
physical_device_desc: "device: XLA_GPU device"
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 38453856175
locality {
bus_id: 6
numa_node: 5
links {
}
}
incarnation: 3682405687960901280
physical_device_desc: "device: 0, name: A100-SXM4-40GB, pci bus id: 0000:cb:00.0, compute capability: 8.0"
]
可以看到有XLA_GPU和GPU,物理设备型号为A100-SXM4-40GB,算力8.0,调用应该没问题!
Part 2:掂量掂量
卡到手了,肯定是要测一测!
既然是测试,肯定需要有陪跑选手滴。这里用到的设备为谷歌Colab的V100 16G,矩池云的2080TI 11G(为啥要拉上我这个性价比之王 ╰(艹皿艹 ) ,曾经的我随风飞扬,现在的我感觉天台的风好凉)。
设备有了,怎么测试才科学呢?用娱乐大师么? 不行滴,不行滴,不行滴!
首先,操作系统都是 Ubuntu18.04,跑不了Window上的软件。
其次,这里主要是比较深度学习能力,不比吃鸡能力。
深度学习卡能干什么?炼丹咯!
刚好看到(蓄谋已久)TensorFlow官方有提供Benchmarks,可以测试一些常见模型,那我就现学现卖用这个来做个“业余”测试吧,本文提供数据仅供参考,如有谬误,不要找我!
项目地址:
https://github.com/tensorflow/benchmarks
运行前需要先安装好CUDA,Cudnn,和TensorFlow,基本没什么多余的依赖。
三行命令就可以跑起来了
git clone https://github.com/tensorflow/benchmarks.git
cd benchmarks/scripts/tf_cnn_benchmarks
python tf_cnn_benchmarks.py --num_gpus=1 --batch_size=32 --model=resnet50
如果要测试特定的版本:
git checkout cnn_tf_v1.15_compatible
这里注意区分1.15和1.5版本,别搞错哦!
Part 3:测试结果
怀着无比激动的心情,重复着无比枯燥的复制黏贴,终于把表格做出了。每次跑会有一些微小的差别,但是整体偏差不会太高。
A100 VS V100 VS 2080ti
这张表格使用Benchmarks的默认参数对比了A100,V100, 2080ti的性能。横向为GPU,列为模型名称,中间的为吞吐量images/sec,数字越大就证明越强。从结果来看,A100 Vs V100,基本保持在1.5倍上,比较好的能达到1.7倍左右。
上面为默认参数,下面使用--use_fp16比较一下A100和V100的差距。
A100 Vs V100 FP16
因为之前跑了20G的A100,所以也来比较一下通过MIG分割后的卡和单卡之间的差别。
MIG是multi-instance-gpu的缩写,多实例 GPU (MIG) 可提升每个 NVIDIA A100 Tensor 核心 GPU 的性能和价值。MIG 可将 A100 GPU 划分为多达七个实例,每个实例均与各自的高带宽显存、缓存和计算核心完全隔离。
A100 40G VS MIG 20G
从结果来看,40G和20Gx2有输有赢。也就是说MIG切完后性能并没有掉很多。
因为我手上显卡资源匮乏,没有其他设备,所以网上找了一张表格,可以通过V100作为参考系,对比一下其他设备和A100的差距。
再贴两张官方的性能对比图
从官方的图来看,8张A100最好的情况下能达到8张V100的6倍多。其中跑ResNet-50 V1.5的时候大概能达到两倍,刚好TensorFlow Benchmarks提供了这个模型。那我就顺手测一测,如果有不一致,肯定是我的打开方式不对,老黄请不要拿RTX3090显卡砸我,我会空手接…!
拿出计算器滴滴滴:
606.23 / 349.78 = 1.7331751386585853965349648350392
1341.26 / 859.04 = 1.5744890652329580804582858886919
老黄诚不我欺,四舍五入一下真的是两倍哎!
当然,严格来说,我们的测试环境还是存在不小的差异。NV官方是8卡对决(家里没矿,但是卡多啊),能保证测试过程中其他变量保持一致。我这是随手取了两个平台的单卡。
Part 4:简单总结
《性能提升20倍:英伟达GPU旗舰A100登场》这样的媒体报道,就只能当故事汇了。正常的大厂都不可能这么升级,老黄的刀法也不允许这种事情发生,一年一刀,一刀一倍不香么。从实际情况来看,A100单手怼2080ti(2倍+), 双脚踩V100是没有问题滴(1.5倍+)。
滴滴云(大师码:8888)对于A100的跟紧速度相当之快,很早就开始筹备,现在处于内测阶段,如果有需要的可以去申请测试!
========