GPU超能力分析!為何它的算力如此之牛
發(fā)布日期:
2024-05-17 10:08:51
本文鏈接
http://www.bbswl.cn//industry/1414.html
本文關鍵詞
顯卡的原理看似復雜,
其實一點也不簡單。
顯卡里面最重要的就是這塊GPU

GPU跟CPU類似,
都是通過成百上千個針腳連接到PCB電路板的。
但是就是這么一塊小芯片,
里面卻集成了超過100億個晶體管。
如果將芯片放大到納米級別,
可以看到里面是一座座的高科技迷宮。

每個任務被稱為一個線程。
最理想的方法是這100個任務
分配給100個核心一次處理。
問題是GPU處理的任務太龐大了。
如果需要處理100萬個線程,
就要使用100萬個核心,
這是不現(xiàn)實的。
那么我們就以線程為中心進行處理。
這里有100萬個線程任務,
對應一個擁有1000個核心的GPU。
處理時,
我們需要將100萬個線程
分別發(fā)送到核心的某個地方,
分配過程異常復雜。
為了方便,
現(xiàn)在我們將1000核心分成10個處理單元,
每個單元里面100個核心,
然后再進行任務分配。

這樣雖然簡單了一些,
但是依舊還是很復雜。
可以這樣,
我們將100萬個線程任務也進行分組,
每1000個任務一組,
一共1000組,


再進行分配的話就簡單多了。
但是有個問題,
這里的每組任務里面有1000個,
而每個處理單元里面只有100個核心,
還是不能一次處理掉每組任務,
那怎么辦呢?
很簡單,將1000組任務再進行分組,
每100個任務打包在一起分成十個包,

一個包對應一個處理單元里面的100個核心,
從而一對一進行處理。

GPU就是以“包”為單位來處理任務的。
目前市面上比較先進的顯卡,
核心數(shù)量超過1萬個。
這些核心每128個分為一組,
核心組的任務也是每128個任務打包在一起,
所以一個包可以分配給一組核心來執(zhí)行。
那么問題來了,
當核心執(zhí)行任務時需要從內存中讀取數(shù)據(jù),
這會產(chǎn)生一定的延遲。
CPU解決延遲問題是
通過增加高速緩存來解決的:
當核心組在執(zhí)行一個任務包時,
如果出延延遲,它并不會等待,
而是立即執(zhí)行下一個任務包。
如果繼續(xù)出現(xiàn)延遲,
它又會立即跳到下一個。

也就是說GPU的核心會不停的進行運算。
只要有活干,任勞任怨。

GPU一開始主要是為了
加速圖形渲染而設計的,
但是它大規(guī)模處理問題的能力
剛好與如今高速發(fā)展的人工智能不謀而合。
人工智能一個重要技術就是深度學習,
學習過程需要輸入大量的數(shù)據(jù),
然后對其進行并行運算得出預期結果值,
而這正是GPU所擅長的,
所以GPU常用來訓練AI模型。
優(yōu)選機房