CUDA 總複習:回顧GPU 運算的起源 - NVIDIA 台灣官方部落格-
文章推薦指數: 80 %
GPU 將大多數的電晶體用於資料處理,而CPU 也必須為大型快取、控制單元等保留區域。
CPU 處理器的運作原理是將每個執行緒中的延遲最小化,GPU 則是透過運算 ...
Skiptocontent
Share
Email
這是CUDA總複習系列的第一篇文章,目的是為初階或中階開發人員複習CUDA、工具和最佳化的主要概念。
科學探索和商業分析使對運算資源的需求變得永無止境。
許多應用程式如天氣預報、運算流體力學模擬、近期的機器學習和深度學習,需要比目前更多的運算能力,以及更複雜且需要更多運算能力才能執行的演算法。
運算產業仰賴各種方式提供所需的效能,例如提高電晶體密度、指令層級平行化、Dennard縮放比例定律(Dennardscaling)等:
根據摩爾定律的預測,增加積體電路上的電晶體數目推動了運算需求,並使晶片電晶體密度每十八個月便會增加一倍。
雖然在指令層級的平行技術也有助於提升效能,但從2001年左右開始縮減。
直到2005年電壓調節結束時,Dennard縮放比例定律還與摩爾定律結合在一起提供了好處。
在2005年左右,運算的調節開始下降,產業需要替代方案以滿足運算需求。
顯然的,運計算單元進行平行化是未來能夠提高效能的最好方式。
其他的主要因素是功率和通訊技術。
研究顯示功率主要是耗費在通訊技術上,更多更複雜的通信技術意味著更高的功耗並限制了可放入機器中的計算量。
這表示未來的運算應具備功率效率並首選本地化。
GPGPU時代
在90年代和2000年代,圖形硬體是為了滿足特定需求而設計,尤其是圖形產業的工作負載。
但圖形工作負載需要的運算能力越來越高。
因此,效能以每年約2.4倍的幅度提升,然而電晶體倍增所提供的幅度則是每年約1.8倍。
圖1所示為北卡羅來納大學(UniversityofNorthCarolina,UNC)JohnPoulton教授著名的圖形效能軌跡。
圖1:截至2001年的圖形效能軌跡(來源:JohnPoulton教授,UNC)
以每秒三角形數為單位,圖形硬體以每年超過2.4倍的幅度提高效能,比摩爾定律的預測更快。
這是因為電腦圖形運算具有大規模平行性,硬體能加以利用。
2001年,電腦圖形已預告專為圖形而設計的大規模系統的終結。
對開發人員社群而言,這是利用圖形硬體的驚人運算能力並加快醫學影像、電磁學等科學工作負載的動機。
NVIDIA圖形處理單元(graphicsprocessingunits,GPU)最初是為了執行具有高平行性的遊戲和圖形工作負載所設計。
由於遊戲和圖形產業對FLOPS和記憶體頻寬的需求高,因此GPU演變成高度平行的多執行緒多核心處理器,具有強大的運算能力和高記憶體頻寬。
這開創了GPGPU時代:最初只為了加快遊戲、圖形等特定工作負載所設計的GPU通用運算。
混合運算模型
GPU是為了高度平行運算所設計,又稱為高傳輸量處理器。
許多科學和AI工作負載的演算法具有固有的大規模平行性,在CPU上的執行速度可能非常慢。
GPU加速應用程式將這些特別耗時的算式和函式(又稱為熱點),利用GPU的大規模平行性,將原本複雜的運算平行化。
應用程式的其他部分仍將由CPU執行。
您可以將程式碼運算密集和耗時部分交給GPU來運算以加快應用程式,而不必將應用程式完全移動到GPU。
這又稱為混合運算模型。
隨著混合運算興起,兩種處理器共存,但仍有基本差異。
圖2所示為CPU與GPU之間的基本差異。
圖2:GPU貢獻較多電晶體以進行資料處理。
GPU將大多數的電晶體用於資料處理,而CPU也必須為大型快取、控制單元等保留區域。
CPU處理器的運作原理是將每個執行緒中的延遲最小化,GPU則是透過運算隱藏指令和記憶體延遲。
圖3所示為運算執行緒的差異。
圖3:低延遲或高傳輸量。
從圖3明顯可見,CPU架構必須將每個執行緒中的延遲最小化。
在CPU上,每個執行緒都會將資料存取時間最小化(白色長條)。
在單一時間片段中,執行緒會盡可能完成工作(綠色長條)。
為了達成此目的CPU需要低延遲,而這需要大型快取和複雜的控制邏輯。
快取在每個核心只有幾個執行緒的情況下效果最佳,因為在執行緒之間進行脈絡切換的代價高昂。
GPU架構透過運算隱藏指令和記憶體延遲。
在GPU中執行緒為輕型執行緒,所以GPU可像每個時脈週期一樣頻繁的從停滯的執行緒切換到其他執行緒。
如圖3所示,執行緒T1等待資料時另一個執行緒T2開始處理,T3和T4依此類推。
同時,T1最終取得要處理的資料。
如此一來即可切換至其他可用工作以隱藏延遲。
這表示GPU需要眾多重疊的同時執行緒以隱藏延遲。
因此,要在GPU上執行數千個執行緒。
如需更多資訊,請參閱CUDAProgrammingGuide。
所有NVIDIA新聞
GTC2022重點議程
使用NVIDIAFLARE建立穩健且可廣泛應用的人工智慧模型
使用NVIDIAOmniverseReallusionConnector簡化寫實角色的創造流程
本週GFN:封測版《要塞英雄(Fortnite)》透過GeForceNOW聯盟TaiwanMobile雲端遊戲服務於iOSSafari與Android推出
JaguarLandRover宣布成為NVIDIA的合作夥伴
Postnavigation
NVIDIA網站透過Cookie提供與改善網站體驗。
請參閱我們的Cookie政策,深入瞭解我們如何使用Cookie以及變更Cookie設定的詳細資訊。
接受
SharethisArticle
Friend'sEmailAddress
YourName
YourEmailAddress
Comments
SendEmail
Emailsent!
延伸文章資訊
- 1如何使用GPU加速深度學習,為什麼GPU能加速深度學習
(2)cpu算神經網路也是可以的,算出來的神經網路放到實際應用中效果也很好,只不過速度會很慢罷了。而目前gpu運算主要集中在矩陣乘法和卷積上,其他的 ...
- 2檢查GPU是否能使用CUDA
由於訓練深度學習模型往往需耗費大量運算資源,因此訓練深度學習模型除了使用CPU之外,目前最主流的方法就是使用GPU訓練,. NVIDIA的GPU利用CUDA技術能用於深度學習的 ...
- 3逢甲大學GPU 加速運算平台維運經驗分享
虛擬主機以vmware horizon 系統共享GPU,學生可在課堂上. 和課後可以隨時登入使用GPU 運算的環境。 • 容器化系統,使用者透過指定的連線IP 位址登入使用, ...
- 4CUDA 總複習:回顧GPU 運算的起源 - NVIDIA 台灣官方部落格-
GPU 將大多數的電晶體用於資料處理,而CPU 也必須為大型快取、控制單元等保留區域。CPU 處理器的運作原理是將每個執行緒中的延遲最小化,GPU 則是透過運算 ...
- 5如何使用GPU進行加速運算