3 分鐘看完 NVIDIA GPU 架構及演進

近期隨着 AI 市場的爆發式增長,作爲 AI 背後技術的核心之一 GPU(圖形處理器)的價格也水漲船高。GPU 在人工智能中發揮着巨大的重要,特別是在計算和數據處理方面。目前生產 GPU 主流廠商其實並不多,主要就是 NVIDIA、AMD、Intel、高通等廠家。本文將主要聊聊 NVIDIA GPU 的核心架構及架構演進。

深入瞭解GPU架構

在探討 NVIDIA GPU 架構之前,我們先來了解一些相關的基本知識。GPU 的概念,是由 NVIDIA 公司在 1999 年發佈 Geforce256 圖形處理芯片時首先提出,從此 NVIDIA 顯卡的芯就用 GPU 來稱呼,是專門設計用於處理圖形渲染的處理器,主要負責將圖像數據轉換爲可以在屏幕上顯示的圖像。

與 CPU 不同,GPU 具有數千個較小的內核(內核數量取決於型號和應用),因此 GPU 架構針對並行處理進行了優化。GPU 可以同時處理多個任務,並且在處理圖形和數學工作負載時速度更快。GPU 架構是賦予 GPU 功能和獨特能力的一切,主要組成包括:

  • CUDA 核心:GPU 架構中的主要計算單元,能夠處理各種數學和邏輯運算。
  • 內存系統:包括 L1、L2 高速緩存和共享內存等,用於存儲數據和指令,以減少 GPU 訪問主存的延遲。
  • 高速緩存和緩存行:用於提高 GPU 的內存訪問效率。
  • TPC/SM:CUDA 核心的分組結構,一個 TPC 包含兩個 SM,每個 SM 都有自己的 CUDA 核心和內存。
  • Tensor Core( 2017 年 Volta 架構引入):Tensor張量核心,用於執行張量計算,支持並行執行FP32與INT32運算。
  • RT Core(2018 年 Turing 架構引入 ):光線追蹤核心,負責處理光線追蹤加速。

此外,NVIDIA GPU 架構還包括內存控制器、高速緩存控制器、CUDA 編譯器和驅動程序等其他組件,這些組件與SM 和其他核心組件協同工作,可以實現高效的並行計算和內存訪問,提高 GPU 的性能和能效。下面我們來詳細瞭解一下這些 GPU 架構每一部分的作用及功能。

Streaming Multiprocessor(SM)

從上圖中可以看出 GPU 主要有許許多多的 SM 組成,SM 全稱爲 Streaming Multiprocessor 流式多處理器,是 NVIDIA GPU 架構中的重要組成部分,也是 GPU 的基本計算單元。每個 SM 由多個 CUDA 核心、紋理單元、Tensor Core、流控制器和存儲器等輔助單元組成,可以同時執行多個計算任務,並具有高度的靈活性和性能。

最先支持 CUDA 的 GPU —— G80 或 GeForce 8800 GTX,包含 8 個 TPC,每一個 TPC 中有兩個 SM,一共有 16 個 SM。接下來支持 CUDA 的 GPU 是 GT200 或 GeForceGTX 280,它增加了 TPC 中的 SM 數量,包含 10 個 TPC 並且每個 TPC 含有 3 個 SM,總共是 30 個 SM。每一代 GPU 架構所支持的 SM 核心數量都不相同,如在 2020 年 Ampere 架構的完整 GA102 核心中,總共有 92 個 SM,每個 SM 包含 128 個 CUDA 核心、4 個 Tensor 核心和 1 個RT 核心。

CUDA Core

看完 SM 的介紹,接下來我們看看構成 SM 最重要的組成部分 CUDA Core。

CUDA 全稱爲統一計算設備架構 (Compute Unified Device Architecture) ,是一個並行計算平臺,同時也是一個應用程序編程接口 (API)。它是由 NVIDIA 專門設計,目的在於讓軟件開發人員能夠更好地控制他們可以使用的物理資源。使用 C 或 C++ 編碼的計算機程序員對資源分配有很大的控制權。CUDA 系統極大地促進了 OpenACC 和 OpenCL 等框架的普及和使用。CUDA 核心也是並行處理器,允許不同處理器同時處理數據。這與雙核或四核 CPU 類似,只不過 GPU 有數千個 CUDA 核心。區別在於 CPU 更像是一個管理員,負責控制整個計算機,而 GPU 適合做具體的工作。

並行計算

CUDA 的巨大優勢是任務並行化,允許通過擴展在 C 和 C++ 中並行工作,處理不同重要性級別的任務和數據。這些並行化任務可以使用各種高級語言來執行,例如 C 語言、C++以及 Python,或者簡單地使用包含 OpenACC 指令的開放標準。

CUDA 是目前最常用的任務加速平臺,並且技術的發展已經取得了巨大的進步。CUDA 技術是使用最廣泛、最重要的技術之一。

應用範圍

CUDA 應用範圍包括加密哈希、物理引擎、遊戲開發等相關項目,在科學行業,在測量、測繪、天氣預報和其他等相關項目得到了很大改善和簡化。目前,數以千計的研究人員可以在學術和製藥領域從事分子動力學研究,這簡化了藥理學的開發和研究,從而在治療癌症、阿爾茨海默病和其他當今無法治癒的疾病等複雜疾病方面在更短的時間內取得進展。

CUDA 還可以對有風險的金融操作進行預測,將效率加快至少十八倍或更多。其他例子包括 Tesla GPU 在雲計算和其他需要強大工作能力的計算系統中廣受好評。CUDA 還允許自動駕駛車輛簡單高效地運行,能夠進行其他系統無法完成的實時計算。這種計算敏捷性使車輛能夠在很短的時間內做出重要決策,避開障礙物,順利行駛或避免事故。

Tensor Core

隨着 GPU 開始用於人工智能和機器學習工作,NVIDIA 從 2017 年開始在其數據中心 GPU 的 Volta 架構中引入了 Tensor Core。但是直到NVIDIATuring 架構的推出(RTX 20 系列 GPU)這些核心纔出現在消費類 GPU 中。

CUDA 核心足以滿足計算工作負載,但 Tensor Core 的速度明顯更快。CUDA 核心每個時間週期只能執行一項操作,但 Tensor 核心可以處理多項操作,從而帶來令人難以置信的性能提升。從根本意義上來說,Tensor Core 所做的就是提高矩陣乘法的速度。

計算速度的提升確實是以準確性爲代價的,從這點上來說 CUDA 核心的準確度要高得多。但是在訓練機器學習模型時,Tensor Core 在計算速度和總體成本方面要有效得多,此時準確性的損失常常被忽略。

較之 CUDA Core 專門處理圖形工作負載,Tensor Core 更擅長處理數字工作負載。在它們同時工作的過程中,在某些場景下可以互換。

RT Core

2018 年 NVIDIA 發佈了新一代的旗艦顯卡 RTX 2080,搭載了全新的 Turing(圖靈)架構。全新的架構也同時添加了名爲 RT Core 的計算單元,相當於在 Volta 上增加的 Tensor Core,都是爲了特殊應用架構而設計的計算單元。該計算單元的目的是爲了讓 GPU 擁有實時光線追蹤的能力,一種可以讓畫面更換新的渲染演算法。

光線追蹤(Ray Tracing)的原理是從用戶端爲起點,尋找光線反射和折射的路徑並算出用戶會看到的物體顏色及亮度。然而,由於使大量光線在空間中反射決策,且空間中實際的狀況未知,每一張圖所需的計算量極其巨大,無法即時計算出結果,因此遊戲產業尚未大量採用該技術。在發佈的 RTX 2080 顯卡中,NVIDIA 正式將 RT Core 加入繪圖卡,讓實時光學渲染法(Rendering)不再是說說而已。

GPU架構演進

在瞭解完 GPU 架構組成部分後,我們來看看 NVIDIA GPU 架構的演進。自 NVIDIA 成立之初,其 GPU 架構歷經多次變革。從 G80、GT200 系列,到 Fermi、Kepler、Pascal 和 Volta 架構等,以及近期的 Ampere 和 Hopper 架構。值得一提的是架構命名方式從 Tesla 架構開始每一代以科學家命名,每一代都有其獨特的設計和特點,簡單介紹下其中幾個架構。

  1. G80 架構:英偉達第一個 GPU 架構,採用了 MIMD(多指令流多數據流)標量架構,擁有 128 個 SP(流處理器),核心頻率範圍從 250MHz 到 600MHz,搭配 DDR3 顯存。該架構是當時最強大的 GPU 之一,但是功耗較高。
  2. Fermi 架構:英偉達第一個採用 GPU-Direct 技術的 GPU 架構,它擁有 32 個 SM(流多處理器)和 16 個 PolyMorph Engine 陣列,每個 SM 都擁有 1 個 PolyMorph Engine 和 64 個 CUDA 核心。該架構採用了 4 顆芯片的模塊化設計,擁有 32 個光柵化處理單元和 16 個紋理單元,搭配 GDDR5 顯存。
  3. Volta 架構:採用了全新的設計理念和技術,擁有 256 個 SM 和 32 個 PolyMorph Engine 陣列,每個 SM 都擁有 64 個 CUDA 核心。該架構採用了全新的 Tensor 張量核心、ResNet 和 InceptionV3 加速模塊等技術,搭配 GDDR6X 顯存。
  4. Turing 架構:代表產品爲 GeForce RTX 20 系列。該架構首次引入了光線追蹤(Ray Tracing)和深度學習超級採樣(DLSS),爲遊戲和設計領域帶來了革命性的視覺效果和性能提升。此外,圖靈架構還優化了着色器性能,以提高渲染效率和能效比。Turing SM 設計採用全新架構,每個 TPC(Texture and Compute Cluster,紋理和計算集羣)均包含兩個 SM,每個 SM 共有 64 個 FP 32 核心和 64 個 INT32 核心。也就是說,每個 SM 都包含 128 個核心。這些核心可以並行執行 FP32 與 INT32 運算。每個 Turing SM 還擁有 8 個混合精度 Turing Tensor 核心和 1 個 RT(Ray Tracing,光線追蹤)核心。
  5. Ampere 架構:代表產品爲 GeForce RTX 30 系列。該架構繼續優化並行計算能力,並引入了更先進的 GDDR6X 內存技術,大幅提高了內存帶寬和性能。相比 Turing 架構,Ampere 架構中的 SM 在 Turing 基礎上增加了一倍的 FP32 運算單元,這使得每個 SM 的 FP32 運算單元數量提高了一倍,同時吞吐量也就變爲了一倍。此外,安培架構還改進了着色器性能和張量核(Tensor Cores),進一步加速深度學習和人工智能任務的處理速度。

經過幾十年的探索和發展,NVIDIA 的 GPU 架構以其層次化的內存設計、多線程技術、優化內存層次結構、混合精度計算技術和自動功耗優化技術,實現了高效、可擴展、靈活和能效比這幾個關鍵目標。從最初的 GeForce 系列到最新的 Hopper 架構,NVIDIA 不斷引領着 GPU 架構的發展,提供了強大的性能和創新的技術,從而在圖形處理和人工智能等領域取得了顯著的成功。

又拍雲近期聯合厚德雲推出 GPU 產品,現活動期間新用戶註冊即可免費體驗 RTX4090 GPU,暫不限體驗時長哦! 有興趣的同學點擊下方鏈接即可免費體驗~

傳送門:RTX4090 0元體驗入口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章