詳解GPU技術關鍵參數和應用場景


詳解GPU技術關鍵參數和應用場景


隨著雲計算,大數據和人工智能技術發展,邊緣計算發揮著越來越重要的作用,補充數據中心算力需求。計算架構要求多樣化,需要不同的CPU架構來滿足不斷增長的算力需求,同時需要GPU,NPU和FPGA等技術加速特定領域的算法和專用計算。以此,不同CPU架構,不同加速技術應用而生。

備註:筆者對算力服務器相關知識做了梳理,整理成“數據中心服務器知識全解”電子書,全書共190頁,分18個章節,詳情可通過原文鏈接獲取。

理解 GPU 和 CPU 之間區別的一種簡單方式是比較它們如何處理任務。CPU 由專為順序串行處理而優化的幾個核心組成,而 GPU 則擁有一個由數以千計的更小、更高效的核心(專為同時處理多重任務而設計)組成的大規模並行計算架構。

CPU是一個有多種功能的優秀領導者。它的優點在於調度、管理、協調能力強,計算能力則位於其次。而GPU相當於一個接受CPU調度的“擁有大量計算能力”的員工。

詳解GPU技術關鍵參數和應用場景


GPU可以利用多個CUDA核心來做並行計算,而CPU只能按照順序進行串行計算,同樣運行3000次的簡單運算,CPU需要3000個時鐘週期,而配有3000個CUDA核心的GPU運行只需要1個時鐘週期。

簡而言之,CPU擅長統領全局等複雜操作,GPU擅長對大數據進行簡單重複操作。CPU是從事複雜腦力勞動的教援,而GPU是進行大量並行計算的體力勞動者。那麼,GPU的重要參數有哪些呢?

  • CUDA核心;CUDA核心數量決定了GPU並行處理的能力,在深度學習、機器學習等並行計算類業務下,CUDA核心多意味著性能好一些
  • 顯存容量:其主要功能就是暫時儲存GPU要處理的數據和處理完畢的數據。顯存容量大小決定了GPU能夠加載的數據量大小。(在顯存已經可以滿足客戶業務的情況下,提升顯存不會對業務性能帶來大的提升。在深度學習、機器學習的訓練場景,顯存的大小決定了一次能夠加載訓練數據的量,在大規模訓練時,顯存會顯得比較重要。
  • 顯存位寬:顯存在一個時鐘週期內所能傳送數據的位數,位數越大則瞬間所能傳輸的數據量越大,這是顯存的重要參數之一。
  • 顯存頻率:一定程度上反應著該顯存的速度,以MHz(兆赫茲)為單位,顯存頻率隨著顯存的類型、性能的不同而不同。顯存頻率和位寬決定顯存帶寬。
  • 顯存帶寬:指顯示芯片與顯存之間的數據傳輸速率,它以字節/秒為單位。顯存帶寬是決定顯卡性能和速度最重要的因素之一。
  • 其他指標:除了顯卡通用指標外,NVIDIA還有一些針對特定場景優化的指標,例如TsnsoCore、RTCoreRT等能力。例如TensenCore專門用於加速深度學習中的張量運算。


評估一個顯卡的性能不能單純看某一個指標的性能,而是結合顯卡的個指標及客戶業務需求的綜合性能。

GPU是協處理器,與CPU端存儲是分離的,故GPU運算時必須先將CPU端的代碼和數據傳輸到GPU,GPU才能執行kernel函數。涉及CPU與GPU通信,其中通信接口PCIe的版本和性能會直接影響通信帶寬。

GPU的另一個重要參數是浮點計算能力。浮點計數是利用浮動小數點的方式使用不同長度的二進制來表示一個數字,與之對應的是定點數。同樣的長度下浮點數能表達的數字範圍相比定點數更大,但浮點數並不能精確表達所有實數,而只能採用更加接近的不同精度來表達。

FP32單精度計算

單精度的浮點數中採用4個字節也就是32位二進制來表達一個數字,1位符號,8位指數,23位小數,有效位數為7位。

詳解GPU技術關鍵參數和應用場景


FP64雙精度計算

雙精度浮點數採用8個字節也就是64位二進制來表達一個數字,1位符號,11位指數,52位小數,有效位數為16位。

詳解GPU技術關鍵參數和應用場景


FP16半精度計算

半精度浮點數採用2個字節也就是16位二進制來表達一個數字, 1位符號、5位指數、10位小數,有效位數為3位。

詳解GPU技術關鍵參數和應用場景


因為採用不同位數的浮點數的表達精度不一樣,所以造成的計算誤差也不一樣。

對於需要處理的數字範圍大而且需要精確計算的科學計算來說,就要求採用雙精度浮點數,例如:計算化學,分子建模,流體動力學。

對於常見的多媒體和圖形處理計算、深度學習、人工智能等領域,32位的單精度浮點計算已經足夠了。

對於要求精度更低的機器學習等一些應用來說,半精度16位浮點數就可以甚至8位浮點數就已經夠用了。

對於浮點計算來說,CPU可以同時支持不同精度的浮點運算,但在GPU裡針對單精度和雙精度就需要各自獨立的計算單元,一般在GPU裡支持單精度運算的單精度ALU(算術邏輯單元)稱之為FP32 core,而把用作雙精度運算的雙精度ALU稱之為DP unit或者FP64 core,在Nvidia不同架構不同型號的GPU之間,這兩者數量的比例差異很大。

談到GPU,Nvidia是行業技術的領先者和技術奠基者,其產品主要分以下幾個系列,分別面向不同的應用類型和用戶群體。

GeForce系列:主要面向3D遊戲應用的GeForce系列,幾個高端型號分別是GTX1080TI、Titan XP和GTX1080,分別採用最新的Pascal架構和Maxwell架構;最新的型號RTX 2080TI,Turing架構。因為面向遊戲玩家,對雙精度計算能力沒有需求,出貨量也大,單價相比採用相同架構的Tesla系列產品要便宜很多,也經常被用於深度學習、人工智能、計算機視覺等。

Quadro系列:主要面向專業圖形工作站應用,具備強大的數據運算與圖形、圖像處理能力。因此常常被用在計算機輔助設計及製造CAD/CAM、動畫設計、科學研究(城市規劃、地理地質勘測、遙感等)、平面圖像處理、模擬仿真等。

GPU加速計算Tesla系列:專用GPU加速計算,Tesla本是第一代產品的架構名稱,後來演變成了這個系列產品的名稱了,包括V100、P100、K40/K80、M40/M60等幾個型號。K系列更適合用作HPC科學計算,M系列則更適合機器學習用途。

Tesla系列高端型號GPU加速器能更快地處理要求超級嚴格的 HPC 與超大規模數據中心的工作負載。從能源探測到深度學習等應用場合,處理速度比使用傳統 CPU 快了一個數量級。

• GPU虛擬化系列:Nvidia專門針對虛擬化環境應用設計GRID GPU產品,該產品採用基於 NVIDIA Kepler 架構的 GPU,首次實現了 GPU 的硬件虛擬化。這意味著,多名用戶可以共享單一 GPU。

詳解GPU技術關鍵參數和應用場景


GRID GPU產品主要包含K1和K2兩個型號,同樣採用Kepler架構,實現了GPU的硬件虛擬化,可以讓多個用戶共享使用同一張GPU卡,適用於對3D性能有要求的VDI或雲環境下多租戶的GPU加速計算場景。

GPU散熱方式分為散熱片和散熱片配合風扇的形式,也叫作主動式散熱和被動式散熱方式。

一般一些工作頻率較低的顯卡採用的都是被動式散熱,這種散熱方式就是在顯示芯片上安裝一個散熱片即可,並不需要散熱風扇。因為較低工作頻率的顯卡散熱量並不是很大,沒有必要使用散熱風扇,這樣在保障顯卡穩定工作的同時,不僅可以降低成本,而且還能減少使用中的噪音。

NVIDIA Tesla Family採用被動散熱、QUADRO Family和GeForce Family採用主動散熱。

NVIDIA GPU架構的發展類似Intel的CPU,針對不同場景和技術革新,經歷了不同架構的演進。

  • Turing架構裡,一個SM中擁有64個半精度,64個單精度,8個Tensor core,1個RT core。
  • Kepler架構裡,FP64單元和FP32單元的比例是1:3或者1:24;K80。
  • Maxwell架構裡,這個比例下降到了只有1:32;型號M10/M40。
  • Pascal架構裡,這個比例又提高到了1:2(P100)但低端型號裡仍然保持為1:32,型號Tesla P40、GTX 1080TI/Titan XP、Quadro GP100/P6000/P5000
  • Votal架構裡,FP64單元和FP32單元的比例是1:2;型號有Tesla V100、GeForce TiTan V、Quadro GV100專業卡。

詳解GPU技術關鍵參數和應用場景


深度學習是模擬人腦神經系統而建立的數學網絡模型,這個模型的最大特點是,需要大數據來訓練。因此,對電腦處理器的要求,就是需要大量的並行的重複計算,GPU正好有這個專長,時勢造英雄,因此,GPU就出山擔當重任了。

訓練:我們可以把深度學習的訓練看成學習過程。人工神經網絡是分層的、是在層與層之間互相連接的、網絡中數據的傳播是有向的。訓練神經網絡的時候,訓練數據被輸入到網絡的第一層。然後所有的神經元,都會根據任務執行的情況,根據其正確或者錯誤的程度如何,分配一個權重參數(權值)。

推理:就是深度學習把從訓練中學習到的能力應用到工作中去。不難想象,沒有訓練就沒法實現推斷。我們人也是這樣,通過學習來獲取知識、提高能力。深度神經網絡也是一樣,訓練完成後,並不需要其訓練時那樣的海量資源。


高性能計算應用程序涵蓋了物理、生物科學、分子動力學、化學和天氣預報等各個領域。也都是通過GPU實現加速的。



分享到:


相關文章: