眼看游戲卡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,可以測試一些常見模型,那我就現學現賣用這個來做個“業余”測試吧,本文提供數據僅供參考,如有謬誤,不要找我!
項目地址:
運行前需要先安裝好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
如果要測試特定的版本:
這里注意區分1.15和1.5版本,別搞錯哦!
Part 3:測試結果
懷着無比激動的心情,重復着無比枯燥的復制黏貼,終於把表格做出了。每次跑會有一些微小的差別,但是整體偏差不會太高。
Model /GPU | A100 | V100 | 2080ti |
ResNet50 | 645.26 | 386.06 | 303.65 |
AlexNet | 8282.46 | 4808.18 | 3905.13 |
Inception v3 | 440.01 | 254.19 | 198.97 |
VGG16 | 442.20 | 250.19 | 178.02 |
GoogLeNet | 1556.06 | 1029.42 | 777.65 |
ResNet152 | 228.29 | 138.39 | 115.28 |
A100 VS V100 VS 2080ti
這張表格使用Benchmarks的默認參數對比了A100,V100, 2080ti的性能。橫向為GPU,列為模型名稱,中間的為吞吐量images/sec,數字越大就證明越強。從結果來看,A100 Vs V100,基本保持在1.5倍上,比較好的能達到1.7倍左右。
上面為默認參數,下面使用--use_fp16比較一下A100和V100的差距。
Model /GPU | A100 | V100 |
ResNet50 | 1315.11 | 914.24 |
AlexNet | 10587.67 | 8810.04 |
Inception v3 | 946.03 | 579.62 |
VGG16 | 687.07 | 428.17 |
GoogLeNet | 2680.27 | 1878.02 |
ResNet152 | 395.34 | 293.98 |
A100 Vs V100 FP16
因為之前跑了20G的A100,所以也來比較一下通過MIG分割后的卡和單卡之間的差別。
MIG是multi-instance-gpu的縮寫,多實例 GPU (MIG) 可提升每個 NVIDIA A100 Tensor 核心 GPU 的性能和價值。MIG 可將 A100 GPU 划分為多達七個實例,每個實例均與各自的高帶寬顯存、緩存和計算核心完全隔離。
模型/顯卡 | A100 40G(單張) | A100 20G(半張) |
ResNet50 | 645.26 | 309.91 |
AlexNet | 8282.46 | 3694.83 |
Inception v3 | 440.01 | 226.36 |
VGG16 | 442.20 | 187.99 |
GoogLeNet | 1556.06 | 748.62 |
ResNet152 | 228.29 | 119.79 |
A100 40G VS MIG 20G
從結果來看,40G和20Gx2有輸有贏。也就是說MIG切完后性能並沒有掉很多。
因為我手上顯卡資源匱乏,沒有其他設備,所以網上找了一張表格,可以通過V100作為參考系,對比一下其他設備和A100的差距。
再貼兩張官方的性能對比圖
從官方的圖來看,8張A100最好的情況下能達到8張V100的6倍多。其中跑ResNet-50 V1.5的時候大概能達到兩倍,剛好TensorFlow Benchmarks提供了這個模型。那我就順手測一測,如果有不一致,肯定是我的打開方式不對,老黃請不要拿RTX3090顯卡砸我,我會空手接...!
Model /GPU | A100 | V100 |
ResNet-50 V1.5 | 606.23 | 349.78 |
ResNet-50 V1.5 FP16 | 1341.26 | 851.87 |
拿出計算器滴滴滴:
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倍+)是沒有問題滴。
滴滴雲對於A100的跟進速度相當之快,很早就開始籌備,現在已經開放測試申請了,如果有需要的可以去申請測試。
要用GPU的可以去他們官網看看,性價比很高(大師碼:8888)。
===================================================