首頁/ 遊戲/ 正文

用兩塊RTX 8000做AI模型訓練是什麼體驗?

用兩塊RTX 8000做AI模型訓練是什麼體驗?

當你擁有一臺搭載了2塊NVIDIA最新顯示卡NVIDIA® Quadro RTX™ 8000 GPU的桌面工作站的時候,您想做什麼?

我是一名自由AI開發者,喜歡在業餘時間去做一些AI模型的開發實現,尤其熱衷於一些好玩的AI模型,比如:基於YOLO的行人姿態估計、基於強化學習的貪吃蛇、以及最近比較火的“螞蟻呀嘿”等等。這次在惠普的支援下,本人有幸拿到了一款HP Z4 G4工作站並對其進行深度學習實驗測試。下面我們就一起來看一看這款擁有兩塊RTX 8000工作站的效能體現吧。

一、AI虐我千百遍

眾所周知,人工智慧有三大要素:資料、演算法和算力。想要做AI模型的開發,離不開這三個要素。

資料和演算法目前都有一些開放的資源可用,如GitHub上就有很多的開源專案,也有開源的資料集MNIST、flower102、COCO、Pacal VOC等等,這些只要科學上網就可以下載,但算力就比較難了。雖然也有一些免費的雲算力資源,但在使用時不僅需要排隊等候資源分配,還需要考慮分配資源是否足夠、訓練是否花費很長時間、網路傳輸問題等等,十分的不方便。因此,擁有一臺可獨佔的算力裝置,對於AI開發者來說尤為重要。

隨著深度學習的全面普及與發展,GPU、DPU、TPU、NPU、BPU等各類計算晶片名詞不斷湧現。而NVIDIA CUDA的出現,使得AI開發者可以透過GPU超強的平行計算能力實現通用計算,從而加速AI模型的訓練開發,因此GPU也是目前主流的算力晶片。現階段比較受開發者歡迎的GPU有NVIDIA® 2080Ti、Titan V等。那麼我們來看一下這些主流NVIDIA GPU在深度學習上的一些效能表現。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 1:不同GPU在不同網路上的吞吐量

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 2:在FP16和FP32上加速比

//資料來源,點選檢視

以上兩張圖片的資料來自Lambda的評測,從中可以看出,不管是從吞吐量還是不同精度的加速比,其主流的GPU都能夠提供很大的算力支援。那麼面對這樣的效能體現,NVIDIA® Quadro RTX™ 8000又有什麼特別之處呢?

在這裡,我彙總了Quadro RTX 8000,GeForce RTX 2080Ti、2080以及Titan RTX的CUDA Core、Tensor Core、RT Core和GPU Memory的標準規格,從硬體配置上我們先看看區別在哪。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 3:RTX 8000與主流GPU的引數對比

從上圖示中的資料中可以看出,NVIDIA® Quadro RTX™ 8000無論是從CUDA Core、Tensor Core還是RT Core和GPU Memory的配置上,都遠高於其他GPU。其中CUDA Core是計算單元,可以實現高速浮點運算以及大型矩陣運算。Tensor Core可以大幅度加速深度學習的訓練和推理。RT Core可以用於生成反射和陰影。GPU Memory則可以增大模型訓練的Batch size大小,節省訓練的時間。由此可見Quadro RTX™ 8000效能遠遠高於其他GPU。

二、專業圖形顯示卡,雙路強悍效能

NVIDIA® Quadro系列是NVIDIA面向專業圖形領域所推出的晶片,集可程式設計著色技術、實時光線追蹤技術、人工智慧於一身。而NVIDIA® Quadro RTX™ 8000也是NVIDIA推出的一款由NVIDIA Turing架構和NVIDIA RTX平臺支援的GPU,更是配置了48GB高速GDDR6視訊記憶體和NVIDIA NVLink™,並且擁有4608個CUDA Core、576個Tensor Core、72個RT Core和48G的高速GDDR6視訊記憶體,提供了16。3TFLOPS的FP32效能。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 4:資料來源:點選檢視

而HP Z4 G4工作站內建了2塊Quadro RTX 8000顯示卡,透過NVLink HB橋接器連線,可以實現高達100GB/s的頻寬,以及96GB的GDDR6視訊記憶體,從而在能夠保持GPU之間正常通訊的前提下支援更大AI任務的工作負載。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 5:HP Z4 G4中兩塊Quadro RTX 8000截面圖

NVLink是NVIDIA開發推出的一種匯流排及其通訊技術,採用點對點結構、串列傳輸,使用者CPU和GPU、GPU和GPU之間連線。與傳統的PCle技術相比,NVLink可以提供更快速的多GPU通訊方案,實現視訊記憶體和效能的擴充套件,可以最大限度的滿足計算機視覺任務的負載需求。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 6:https://www。nvidia。cn/design-visualization/nvlink-bridges/

三、螞蟻雖小,但有力千鈞

前面對比了NVIDIA® Quadro RTX™ 8000和其他主流用於深度學習的GPU效能,我們看到了Quadro RTX™ 8000的超強效能。而搭載了兩塊Quadro RTX™ 8000 GPU的HP Z4 G4工作站的效能,就更讓人期待了。

不過說真的,當我拿到HP Z8 G4的時候,首先讓我驚歎的不是2塊NVIDIA® Quadro RTX 8000可能帶來的效能,而是它的體積是真的“小”。作為一個提供超強算力的AI工作站,不應該是“魁梧”的嗎?

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 7:HP Z4 G4工作站截面圖

話說回來,AI模型的訓練推理看的還是效能,雖然外形“不佔優勢”,但還是很期待效能。

1、實驗說明

關於實驗之前的說明,因為本人主要做計算機視覺方向的研究,因此主要會透過一些計算機視覺領域的任務對HP Z4 G4的不同引數進行不同角度的實驗對比。同時因為是個人實驗,所以實驗中如果有什麼錯誤的地方大家多多理解。

(1) 視覺任務、演算法和資料集的選擇

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 8:實驗說明

在實驗任務的選擇上,我選擇了影象分類和目標檢測這兩個計算機視覺基本任務,以及一些影象分類演算法:ResNet和VGG,目標檢測演算法:“雙刀流”Faster RCNN,以及影象分割的U-Net等經典演算法分別進行實驗。

(2) 演算法實現,深度學習框架的選擇

演算法的實現上,我從眾多框架中選擇了TensorFlow和PyTorch這兩個主流的框架分別進行實現。

TensorFlow是谷歌大腦於 2015 年冬釋出的第二代機器學習框架 。而Facebook於 2015年秋也釋出了自家的深度學習框架PyTorch。由於 PyTorch 的純 Python 式開發風格,其一經面世就受到了 Python 社群的熱烈歡迎。TensorFlow和PyTorch也是目前比較主流的兩個機器學習框架。

(3) HP ZG G4的配置及評測指標

首先是HP Z4 G4本機的配置以及深度學習環境的配置清單。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 9:HP Z4 G4配置

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 10:深度學習環境配置清單

在評測的指標上,我們將在實驗中記錄訓練和推理過程中的GPU 的利用率、記憶體利用率、GPU 記憶體佔用,CPU 利用率、CPU 記憶體佔用和訓練/推理速度等資料,以0。5秒為間隔,然後計算平均利用率。同時因為HP Z4 G4內建2塊GPU,因此會對單卡和多卡單獨進行測試。同時實驗中將預設使用FP32精度,batch_size=128進行訓練與推理。

2、 實驗結果

在這裡,我將展示不同視覺任務中,不同框架的演算法訓練、推理效能和資源利用率。並且會針對ResNet50網路的訓練和測試進行單卡和雙卡的測試。

(1) 實驗1:影象分類任務:ResNet50 + flower102的訓練和推理

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 11:ResNet50的訓練效能和資源利用率

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 12:ResNet50的推理效能和資源利用率

(2) 實驗2:影象分類任務:VGG16 + ImageNet的訓練和推理

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 13:VGG16的訓練、推理效能和資源利用率

(3) 實驗3:目標檢測任務:Faster RCNN + Pascal VOC的訓練和推理

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 14:Faster -RCNN的訓練、推理效能和資源利用率

(4) 實驗4:影象分割任務:U-Net + KITS的訓練和推理

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 15:U-Net的訓練、推理效能和資源利用率

3、結果分析

我們透過對上面資料的可視處理,進一步對結果進行分析。 圖16和圖17展示的是不同模型在訓練和推理時的效能體現。整體上來看,無論是從訓練效能還是推理的效能,TensorFlow都略勝於PyTorch。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 16:不同模型的訓練效能

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表17:不同模型的推理效能

圖17展示的是ResNet50在不同框架中的單卡訓練和多卡訓練的效能體現,相比於PyTorch多卡效能2倍的提升,TensorFlow的多卡效能提升並不大。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 18:ResNet50在不同框架上的單卡訓練和多卡訓練

圖18展示的是TensorFlow框架下,不同網路分別在訓練和推理時的GPU利用率的情況。由此發現RenNet50和VGG16在推理階段的GPU利用率比較高,而Faster RCNN和U-Net在訓練階段的GPU利用率比較高。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 19:TensorFlow下不同網路在不同階段的GPU利用率

圖19是不同網路在訓練過程中的視訊記憶體使用情況。從中可以看出,隨著任務複雜度的提高,雖然TensorFlow和PyTorch對網路進行了最佳化,但視訊記憶體佔用明顯變大。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表20:不同網路在訓練過程中的視訊記憶體使用

圖20展示的是不同網路在訓練過程中的CPU使用情況。從資料圖示中可以看出,PyTorch在ResNet50和VGG16中佔用的CPU相對較少,在Faster RCNN和U-Net中佔用的較多。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表 21:不同網路在訓練過程中的CPU利用率

需要說明的是,以上實驗的程式碼都來自於GitHub上的開源專案,而每個專案本身可能存在一定的最佳化,因此這裡的實驗結果只作為一個實驗結果參考。

從上面的實驗結果中,我們可以發現,無論是TensorFlow還是PyTorch,雖然本身也在做一些相應的最佳化,但在實際的訓練和推理過程中,還是非常依賴硬體環境,如視訊記憶體、記憶體等等。單卡的效能遠不及多卡效能,並且TensorFlow預設情況下是呼叫所有的顯示卡進行計算的。

而且在整個實驗的過程中,搭載了兩塊NVIDIA Quadro RTX 8000 GPU的HP Z4 G4工作站,無論是面對比較小的flower資料集,還是很大的ImageNet、COCO資料集,從各種效能要求上都可以滿足正常的訓練和推理需要。

4、我待AI如初戀

AI領域不只有影象分類、目標檢測和影象分割這樣的視覺任務,也有很多前沿的研究領域,如動作遷移、強化學習,姿態檢測與跟蹤等有趣的研究。不過這些模型的訓練和推理往往需要很大的算力支援,這次趁著有HP Z4 G4工作站的算力支援,我也跑了一些比較好玩的模型,一起來看看吧。

– 基於強化學習演算法DQN實現的貪吃蛇專案地址:https://github。com/zhangbinchao/snake_dqn

深度強化學習模型是在強化學習框架的基礎上,將感知環境的部分用CNN卷積神經網路進行構建。這也是當前遊戲AI發展的趨勢,因為遊戲的複雜度越來越高,因此模型訓練的消耗也越來越大,硬體要求也不斷增高。

在本次模型的訓練中,我們在設定的12*12的遊戲空間中一共訓練了100萬次,共花費了大約4個小時。可能是訓練次數太少的問題,最後的訓練結果並不太理想,最優成績也只有8。如果增加訓練次數的話,應該可以取得更好的結果。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表22:基於強化學習演算法DQN實現的貪吃蛇

– 動作遷移模型專案地址:https://pkhungurn。github。io/talking-head-anime-demo/

還記得最近網上比較火的“螞蟻呀嘿”嗎?其背後的原理就是動作遷移。而在這個專案中,我們將影片換成了攝像頭,以方便實時的進行動作遷移。模型的整個工作流程是這樣的:首先對攝像頭的人物進行關鍵點檢測定位,然後和目標影象進行關鍵點的匹配,這樣當攝像頭裡面的任務進行動作變化的時候,其目標影象也會進行相應的動作變化,這就是動作遷移。以下就是該模型的效果展示,從中可以看出其執行起來還是比較流暢的。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表23:動作遷移模型

– 多目標檢測與跟蹤模型專案地址:https://github。com/Qidian213/deep_sort_yolov3

deep_sort演算法一個多物體目標跟蹤演算法,不過在deep_sort_yolov3演算法裡,是將檢測的模組換成了檢測效率更好的YOLOv3。因此deep_sort_yolov3可以實現更高效的多目標檢測與跟蹤。下面就是該演算法的效果展示,來看看效果吧。

用兩塊RTX 8000做AI模型訓練是什麼體驗?

▲圖表24:多目標檢測與跟蹤模型

5、結語

現階段算力就是成本。從個人角度出發,雲算力雖然能夠提供足夠的算力,但不方便操作。而普通主機或者膝上型電腦雖然使用方便,但難在沒有足夠的算力支援。所以很多開發者會自己搭建伺服器進行模型的訓練,其中一個比較友好的方式就是利用整合好工作站進行搭建,在靈活使用的前提下,可以提供足夠的算力進行模型的訓練與開發。

從上面的實驗結果來看,無論是影象分類模型,還是目標檢測和影象分割模型,惠普不僅完全可以滿足效能的需求,還將工作站的體積做得非常Mini,尤其是搭載的兩塊NVIDIA Quadro RTX 8000,更是為AI模型的訓練和推理提供了強力的算力支援。

當然,整個AI領域不只有視覺模型開發需要算力支援,資料科學計算、語音模型開發和自然語言處理模型的開發也都需要算力支援。而且隨著演算法模型複雜度的不斷增長,對算力的要求也不斷提高。那麼如果有一個可以滿足高效能算力需求的工作站可以選擇,或許對於個人開發者來說是一個最優的選擇。

參考連結:

[1] https://github。com/ruotianluo/pytorch-faster-rcnn[2] https://developer。nvidia。com/zh-cn/blog/nvidia-turing-architecture-in-depth/[3] https://hub。fastgit。org/tensorflow/models/tree/master/research/slim[4] https://hub。fastgit。org/YunYang1994/tensorflow-yolov3[5] https://hub。fastgit。org/pytorch/examples[6] https://hub。fastgit。org/eriklindernoren/PyTorch-YOLOv3[7] https://github。com/tensorpack/tensorpack/tree/master/examples/FasterRCNN

相關文章

頂部