歡迎光臨
每天分享高質量文章

解惑: GPU產品的關鍵引數和應用場景

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

 

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

 

 

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位。

 

 

FP64雙精度計算

 

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

 

 

FP16半精度計算

 

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

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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。

 

 

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實現加速的。

已同步到看一看
贊(0)

分享創造快樂