尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
工欲善其事,必先利其器。AI研究與開發離不開算力支持,尤其是在進行模型訓練的時候,一臺強力的GPU工作站必不可少。其中處理器、記憶體/硬碟、顯卡、以及散熱表現都是選擇GPU工作站時需要考慮的因素。
然而由於實際應用環境的差異,開發者對GPU工作站的性能需求都有所不同。目前市面上也有一些面向機器學習開發的GPU工作站,但對於個人開發者,或者在中小企業、傳統企業的開發人員而言,如何選擇一臺可滿足性能需求的GPU工作站,並不容易。
作為一名「野生」AI開發者,有幸在最近一周深度體驗了一臺HP Z8 G4工作站,從開發環境的安裝、測試,以及深度學習算法模型,如CIFAR-10和ResNet50分類模型,以及YOLOv3的檢測模型的訓練,都進行完整的開發訓練。下面是我對這一周的開發工作和使用體驗的總結整理,供大家參考,希望能有所幫助。
一、關鍵參數和散熱表現
在為大家介紹關鍵參數和散熱表現之前,我拍了幾張產品實圖,為大家直觀的介紹一下HP Z8 G4工作站的外觀設計和內部結構。
先說一下外觀部分,機身外體採用的是鋁制結構,並且以黑色磨砂呈現(比較符合開發者的顏色審美),給人一種很精致的感覺。然後是機體部分,整體採用模塊化的設計(符合程序設計的模塊化理念),內部布局讓人感到整潔無暇。最後是主機後端的電源部分,可以進行免工具進行拆卸,極大的方便了後續的性能擴展。
1、關鍵參數
- – CPU
圖片中的①部分是兩顆英特爾® Xeon(R) Gold 6240處理器,可提供72核心144線程,2.6GHz的主頻,以及35.75MB的三級緩存。在Linux下可以通過命令cat /proc/cpuinfo查看處理器資訊。如下圖所示。
- – GPU
圖片中的②部分是兩塊NVIDIA Quadro RTX 8000處理器。NVIDIA Quadro RTX 8000採用了光線追蹤技術,配備海量的48 GB超快速GDDR6顯存和 NVIDIA NVLink™,可為深度學習帶來超凡的性能和可擴展性。在Linux下可以通過命令lspci | grep -i vga看GPU資訊。如下圖所示。
48G的顯存是什麼概念呢?RTX 4000的顯存是8G、RTX 3090的顯存是24G,目前還沒有其他的48G顯存的GPU。而在深度學習模型訓練過程中,48G的顯存可以增大batch(批處理數,表示每次輸入的圖片數量)的大小,一定程度上可以提高模型的泛化能力以及穩定性。
- – 記憶體/硬碟
在側面圖右下角的位置,如圖中的③所示,是4個3.5/2.5英寸存儲托架,其中預裝了2個企業級SATA 的4TB 7200RPM,留有2個可做擴展。同時具有384G記憶體+1T 大小的M.2 2280 PCIe NVMe TLC SSD,提供了高效的存儲讀寫能力。並且在主機右上靠中間的光碟機位還可以再加一塊3.5寸大容量硬碟。在Linux下可以通過命令grep MemTotal /proc/meminfo看記憶體資訊。如下圖所示。
- – 散熱表現
由於強大的處理器性能,因此對整機的散熱功能提出了挑戰。HP Z8 G4工作站為每顆處理器都配備了高壓風扇散熱排,其整機前部和頂部也有多個出風口,後部則有一個大風扇和小風扇用於吸風,可以在保障高性能工作的基礎上依然保持一個較低的溫度。相比於以前用的電腦主機,沒有燙手的溫度,也沒有「蒸桑拿」式的感受。在出風口處只有淡淡的暖風,並且沒有風扇高速旋轉的噪音,完全滿足了室內工作環境安靜的需求。
二、在深度學習模型訓練上的表現
介紹完HP Z8 G4工作站的一些關鍵參數和散熱表現後,下面給大家上「主菜」。
目前AI領域最成熟的技術可能就是計算機視覺了,因此也有著很多人開始轉入計算機視覺相幹的研發工作。而計算機視覺領域中,圖像分類和目標檢測是兩個最基本任務,也是每一個計算機視覺研發人員必須要掌握的技能。下面就這兩個任務,我將進行深度學習模型的訓練,來實際看看HP Z8 G4工作站的性能到底如何。
1、基本的環境配置和參數
根據NVIDIA官網的推薦,針對NVIDIA Quadro RTX 8000我選取了450版本的驅動進行了安裝,並安裝了相應版本的CUDA 11.0,實現對GPU計算調用加速。在Linux下可以通過命令NVIDIA-SMI看GPU驅動以及CUDA版本資訊。如下圖所示。
通過CUDA自帶的案例程序,也可以測試並查看一些基本的計算參數,如:
- – CUDA核心數目
運行程序./NVIDIA_CUDA-11.1_Samples/1_Utilities/deviceQuery/deviceQuery,可查看CUDA資訊。如下圖。
從圖中的輸出的資訊來看,CUDA核心數目為4608個,同時提供48601MB的存儲器,1.77GHZ的最大頻率和7001MHZ的顯卡頻率。
- – 浮點計算能力
運行程序./NVIDIA_CUDA-11.1_Samples/7_CUDALibraries/batchCUBLAS/batchCUBLAS,可測試GPU的單精度計算能力。如下圖。
- – 單精度浮點運算
運行程序./NVIDIA_CUDA-11.1_Samples/7_CUDALibraries/batchCUBLAS/batchCUBLAS可進行測試。如下圖。
2、圖像分類與目標檢測模型的訓練
(1)基於CIFAR-10和ImageNet數據集的分類模型訓練
在本次的分類模型訓練中,我分別使用了簡單的CNN網路和經典的ResNet50網路,分別對CIFAR-10數據集和ImageNet數據集進行了分類訓練。
- – 模型介紹與數據集介紹
CNN(Convolutional Neural Networks,卷積神經網路)由於其出色的泛化能力,被廣泛的應用於物體分類和物體檢測等方面,在圖像方面有著廣泛的應用。而ResNet網路則是2015年由AI學術界大佬何凱明提出的一中卷積神經網路模型,獲得了當年ImageNet大規模視覺識別競賽中圖像分類的冠軍。
CIFAR-10數據集是一個比較小、也比較常見的圖像分類數據集,其共有60000張32×32的彩色圖片,圖片分為10類,每類6000張圖。其中有50000張用於訓練,10000張用於測試。
ImageNet數據集則是一個用於視覺對象識別軟體研究的大型可視化資料庫,其中包含了20000多物體類別,共計約1400萬張圖像,是計算機視覺領域最具權威的數據集之一。
- – 模型訓練與結果
在本次的實驗中,因為CIFAR-10數據集本身的數據量並不多,因此通過構建簡單的CNN來進行訓練,來直觀感受一下HP Z8 G4工作站的計算能力。同時利用經典的ResNet網路,選擇使用50層深度的ResNet50來對ImageNet數據集中的圖像進行分類訓練。訓練結果如下。
(2)基於PASCAL VOC和MS COCO數據集的目標檢測模型訓練
由訓練的結果可以看到,在數據量不大的CIFAR-10上的分類模型訓練,當batch設置為5000的時候,僅僅隻花費了7分鐘的時間。在大型數據集ImageNet上,batch同樣設置為5000的時候,也隻花費了3.5個小時。當然這個準確率可能不太高,但本次實驗主要希望得到的是HP Z8 G4工作站的模型訓練能力,即計算能力,而不是算法的好壞。
- – 模型介紹與數據集介紹
圖像分類和目標檢測是計算機視覺領域的基本任務,而圖像分類也是目標檢測的基本工作,相較於圖像分類任務的龐雜度,目標檢測任務的龐雜度更高,對計算的需求也更大。
在本次的試驗中,我選擇了目標檢測領域經典的網路模型YOLOv3,並將使用它分別在PASCAL VOC和 MS COCO數據集長進行檢測模型的訓練。
PASCAL VOC和MS COCO都是目標檢測領域比較常用的數據集。同時在使用PASCAL VOC數據集的時候,我同時選用了PASCAL VOC 2007和PASCAL VOC 2012並將其合併,包含了20類物體,共計約16萬張訓練數據,2G圖像數據。而MS COCO比PASCAL VOC的數據更加龐雜,其中包含了91個物體類別,共計約有20G的圖像數據。
- – 模型訓練與結果
YOLOv3通過在PASCAL VOC和MS COCO數據上的檢測訓練,其訓練結果如下。
三、總結
通過訓練的結果來看,YOLOv3在較小的PASCAL VOC數據集上訓練50020輪的時候,只需要花費5個小時的時間。在具有20G圖像數據的MS COCO上訓練50020輪的時候,需要花費34個小時,相當於1.5天,時間相對來說還是比較長的。不過因為本次訓練只是看模型訓練的能力,因此整體的訓練效率還是比較高的。
HP Z8 G4工作站所提供的顯存真的非常大。兩塊NVIDIA Quadro RTX 8000,提供2 x 48G的顯存。在CIFAR-10分類模型訓練過程中,我通過不斷調整batch大小後發現,當batch=512的時候,才會產生顯存不足的問題,從而導致無法正常訓練。
雖然batch的增大會一定程度上提高模型的泛化能力和穩定性,但隨著batch的增大,模型的性能反而會下降。因此一般情況batch的設置不會太大,常用的設置為32、64和128。而48G的顯存在最大程度上提供了穩定性和提高batch的可能性。
最後從整體的使用體驗來看,HP Z8 G4工作站憑借著兩塊NVIDIA Quadro RTX 8000為整個訓練提供了足夠的計算能力。完全可以滿足中小型模型訓練的算力需求。
同時因為其卓越冷卻設計和惠普高效的散熱解決方案,在整個訓練過程中並沒有出現很大的噪音和很大的熱量,避免了影響其他同事的工作。