如何選擇合適的GPU服務器
隨著互聯網的飛速發展,云計算,云渲染,云服務等平臺興起,各種算力平臺也開始嶄露頭角,深度學習似乎不再遙不可及,對于剛剛入門深度學習的小白,在高性價比的基礎上挑選一個合適的云服務器是非常重要的,本文就從CPU與GPU的區別以及如何去選擇GPU服務器的角度展開。
一、什么是CPU?什么是GPU?
雖然大部分看到這篇文章的小伙伴都對這兩個基礎概念非常清楚了,但是本文還是選擇贅述一下
1、所謂CPU即中央處理器(CPU,central processing unit,縮寫:CPU),是作為整個計算機系統的運算和控制的核心,是信息處理、程序運行的最終執行單元。CPU是最核心的部件,也是整個數據處理的最根本的部件。2、所謂GPU即圖形處理器(GPU,Graphics Processing Unit,縮寫:GPU),又稱顯示核心、視覺處理器、顯示芯片,是一種專門在個人電腦、工作站、游戲機和一些移動設備(如平板電腦、智能手機等)上做圖像和圖形相關運算工作的微處理器。
當然,上面是百度給出的解釋,非常的不“人性化”
GPU 與 與 CPU區別:
從 GPU 與 CPU 架構對比圖可以看出,
CPU 的邏輯運算單元較少,控制器占比較大;GPU 的邏輯運算單元小而多,控制器功能簡單,緩存也較少。
GPU 的眾多邏輯運算單元呈矩陣排列,可以并行處理數量眾多但較為簡單的處理任務,圖像運算處理就可以進行這樣的拆解。
GPU 單個運算單元處理能力弱于 CPU,但是數量眾多的運算單元可以同時工作,當面對高強度并行計算時,其性能要優于 CPU。
GPU擅長對大數據進行簡單重復的運算,特別是對浮點數的運算以及矩陣的運算(圖像在內存中以矩陣的形式存儲)
架構對比圖(圖源:百度)
二、CPU服務器和GPU服務器之間的區別
1、指令集不同
家用或者工作用電腦配備的普通CPU,通常為CISC復雜指令集,追求指令集的大而全,盡量把各種常用的功能集成到一塊,但是調用速度和命中率相比服務器CPU較低一些。服務器CPU的指令一般是采用的RISC(精簡指令集)。這種設計的好處就是針對性更強,可以根據不同的需求進行專門的優化,能效更高。
2、緩存不同
緩存也決定著CPU的性能,由于服務器CPU對運算性能要求高,所以服務器CPU往往應用了最先進的工藝和技術,并且配備了一二三級緩存,運行能力更強。服務器CPU很早就用上了3級緩存。普通cpu是近幾年才用上了緩存技術。
3、接口不同
服務器cpu和普通cpu接口往往不同,目前服務器CPU接口大多為Socket 771、Socket 775、LGA 2011、LGA 1150相比普通通CPU接口盡管不少相同,但實際上搭配的主板并不相同。服務器cpu配備的主板通常沒有顯卡卡槽,因為CPU自帶的核心顯卡即可滿足需求,并且其CPU總線帶寬比家用CPU高。
4、穩定性要求不同
服務器CPU是為了長時間穩定工作而存在的,基本都是設計為能常年連續工作的。服務器CPU相比家用CPU在穩定性和可靠性方面有著天壤之別,一般服務器都是365天開機運行,只有偶爾停機維護,對穩定性要求極高。普通CPU則是按72個小時連續工作而設計的,家用電腦在不使用時,我們還是習慣讓他保持關機狀態,一般每天都會關機。
5、多路互聯支持不同
多路互聯是服務器上的一項技術,比如服務器主板可以同時擁有多個CPU插槽,可以同時安裝多個CPU,這個就是CPU多路互聯技術,這項技術目前只有服務器CPU才支持,普通家用電腦,一塊主板只可以安裝一個CPU,不支持多路互聯。
三、如何選擇GPU服務器
首先,我們需要了解下,GPU主要分三種接口,目前市面上可以進行交付的主要是傳統總線接口、PCIe接口和NV-Link接口的。
NV-Link接口類型的GPU典型代表是NVIDIA V100,采用 SXM2接口。在DGX-2上有SXM3的接口。NV-Link總線標準的GPU服務器可以分為兩類,一類是NVIDIA公司設計的DGX超級計算機,另一類是合作伙伴設計的NV-Link接口的服務器。DGX超級計算機不僅僅提供硬件,還有相關的軟件和服務。
傳統總線接口的GPU,目前主流的有這幾款產品,比如 PCI-e接口的V100、 P40(P開頭指的是上一代PASCAL架構)和P4,以及最新的圖靈架構T4等。其中比較薄和只占一個槽位的P4和T4,通常用于Inference,目前也已經有成熟的模型進行推理和識別。
傳統PCI-e總線的GPU服務器也分為兩類,一類是OEM服務器,比如曙光、浪潮、華為等其他國際品牌;另一類是非OEM的服務器,也包括很多種類。選擇服務器時除了分類,還要考慮性能指標,比如精度、顯存類型、顯存容量以及功耗等,同時也會有一些服務器是需要水冷、降噪或者對溫度、移動性等等方面有特殊的要求,就需要特殊的服務器。
其次選擇GPU服務器時首先要考慮業務需求來選擇適合的GPU型號。
在HPC高性能計算中還需要根據精度來選擇,比如有的高性能計算需要雙精度,這時如果使用P40或者P4就不合適,只能使用V100或者P100;
同時也會對顯存容量有要求,比如石油或石化勘探類的計算應用對顯存要求比較高;
還有些對總線標準有要求,因此選擇GPU型號要先看業務需求。
GPU服務器人工智能領域的應用也比較多。
在教學場景中,對GPU虛擬化的要求比較高。根據課堂人數,一個老師可能需要將GPU服務器虛擬出30甚至60個虛擬GPU,因此批量Training對GPU要求比較高,通常用V100做GPU的訓練。模型訓練完之后需要進行推理,因此推理一般會使用P4或者T4,少部分情況也會用V100。
當GPU型號選定后,再考慮用什么樣GPU的服務器。這時我們需要考慮以下幾種情況:
在邊緣服務器上需要根據量來選擇T4或者P4等相應的服務器,同時也要考慮服務器的使用場景,比如火車站卡口、機場卡口或者公安卡口等;在中心端做Inference時可能需要V100的服務器,需要考慮吞吐量以及使用場景、數量等。
需要考慮客戶本身使用人群和IT運維能力,對于BAT這類大公司來說,他們自己的運營能力比較強,這時會選擇通用的PCI-e服務器;而對于一些IT運維能力不那么強的客戶,他們更關注數字以及數據標注等,我們稱這類人為數據科學家,選擇GPU服務器的標準也會有所不同。
需要考慮配套軟件和服務的價值。
要考慮整體GPU集群系統的成熟程度以及工程效率,比如像DGX這種GPU一體化的超級計算機,它有非常成熟的從底端的操作系統驅動Docker到其他部分都是固定且優化過的,這時效率就比較高。