日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NVIDIA GPU 架构梳理

發布時間:2024/2/28 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NVIDIA GPU 架构梳理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文中圖片大部分來自NVIDIA 產品白皮書
TODO:英偉達顯卡型號梳理

目錄

一、NVIDIA GPU的架構演變歷史
二、Tesla 架構
三、Fermi架構
四、Kepler架構
五、Maxwell架構
六、Pascal架構
七、Volta架構
八、Turing架構
九、Ampere架構

一、NVIDIA GPU的架構演變歷史和基本概念[1]

截止2021年,發布時間離我們最近的8種NVIDIA GPU微架構是:

  • Tesla? (特斯拉)
  • Fermi(費米)
  • Kepler(開普勒
  • Maxwell(麥克斯韋
  • Pascal(帕斯卡
  • Volta(伏特)
  • Turing(圖靈)
  • Ampere(安培)

NVIDIA一般以歷史上一些著名科學家的名字命名自己的GPU微架構,上面8種微架構分別是:特斯拉費米開普勒麥克斯韋帕斯卡伏特圖靈安培

其中最新的是2020年宣布的Ampere架構。

二、Tesla 架構

Tesla 架構的資料在官網也沒找到多少,不過這是英偉達第一個實現統一著色器模型的微架構。

經典型號是G80,在Fermi架構白皮書的開篇部分有對G80的簡要介紹:

  • G80 是第一款支持 C 語言的 GPU,讓程序員無需學習新的編程語言即可使用GPU的強大功能。
  • G80 是第一款用單一、統一的處理器取代獨立的頂點和像素管道的 GPU,該處理器可以執行頂點、幾何、像素和計算程序。
  • G80 是第一款使用標量線程處理器的 GPU,無需程序員手動管理向量寄存器
  • G80 引入了單指令多線程 (SIMT) 執行模型,即多個獨立線程使用一條指令并發執行。
  • G80 為線程間通信引入了共享內存(shared memory)和屏障同步(barrier synchronization)。

G80 顯卡

三、Fermi架構[2]

Fermi 架構是NVIDIA GPU 架構自初代 G80 以來最重大的飛躍。

NVIDIA的GPU研發團隊從G80和GT200兩個型號上汲取經驗,采用全新的設計方法來創建世界上第一個計算 GPU。在這個過程中,專注于提高以下關鍵領域:

  • 提高雙精度性能——雖然單精度浮點性能大約是桌面 CPU 性能的十倍,但一些 GPU 計算應用程序也需要更高的雙精度性能。
  • ECC 支持——ECC 允許 GPU 計算用戶在數據中心安裝中安全地部署大量 GPU,并確保醫療成像和金融期權定價等數據敏感應用程序免受內存錯誤的影響。
  • True Cache Hierarchy—— 一些并行算法無法使用 GPU 的共享內存,用戶需要一個真正的緩存架構來幫助他們。
  • 更多共享內存——許多 CUDA 程序員要求超過 16 KB 的 SM 共享內存來加速他們的應用程序。
  • 更快的上下文切換——用戶要求在應用程序和更快的圖形和計算互操作之間進行更快的上下文切換。
  • 更快的原子操作(Atomic Operations)——用戶要求為他們的并行算法提供更快的讀-修改-寫原子操作。

基于以上出發點,Fermi架構有以下四大亮點:

第三代流式多處理器 (SM)

  • 每個 SM 有 32 個 CUDA 內核,是 GT200 的 4 倍
  • 8 倍于 GT200 的峰值雙精度浮點性能
  • Dual Warp Scheduler 同時調度和分派來自兩個獨立 warp 的指令
  • 64 KB RAM,可配置共享內存和 L1 cache

第二代并行線程執行 ISA

  • 具有完整 C++ 支持的統一地址空間
  • 針對 OpenCL 和 DirectCompute 進行了優化
  • 完整的 IEEE 754-2008 32 位和 64 位精度
  • 帶有 64 位擴展的完整 32 位整數路徑
  • 支持過渡到 64 位尋址的內存訪問指令
  • 通過預測提高性能

改進的內存子系統

  • 具有可配置 L1 和Unified L2 Caches 的 NVIDIA Parallel DataCache TM 層次結構
  • 第一個支持 ECC 內存的 GPU
  • 大幅提升原子內存操作性能

NVIDIA GigaThread TM 引擎

  • 應用程序上下文切換速度提高 10 倍
  • 并發內核執行
  • 亂序線程塊執行
  • 雙重疊內存傳輸引擎

以上是Fermi 架構相較于初代架構提升的地方

下面具體看看Fermi 架構的配置

Fermi 架構

第一個基于Fermi架構的GPU,使用 30 億個晶體管實現,共計512個CUDA內核。

這512 個 CUDA 內核被組織成 16 個 SM,每個 SM 是一個垂直的矩形條帶(紅框中的內容),分別位于一個普通的 L2 cache周圍,每個 SM 有32 個CUDA 內核。

一個CUDA 內核為一個線程在每個時鐘周期里執行一條浮點或整數指令

6個64-bit顯存分區,組成一個384-bit的顯存接口,總共支持高達 6GB 的 GDDR5 DRAM顯存。

GDDR5:第五版圖形用雙倍數據傳輸率存儲器
DRAM:動態隨機存取存儲器

主機接口(host interface )通過 PCI-Express 將 GPU 連接到 CPU。 Giga Thread 全局調度器將線程塊分發給 SM 線程調度器。

Fermi圖形渲染架構


整個 GPU 有多個 GPC(圖形處理集群),單個GPC包含一個光柵引擎(Raster Engine),四個 SM(流式多處理器),GPC 可以被認為是一個獨立的 GPU。所有從 Fermi 開始的 NVIDIA GPU,都有 GPC。

Fermi Streaming Multiprocessor (SM)

上圖是將16個SM中的 1 個拿出來放大后的詳細結構圖,其中包含:

  • 橙色部分:2 個 Warp Scheduler/Dispatch Unit
  • 綠色部分:32 個 CUDA 內核,分在兩條 lane 上,每條分別是 16 個
  • 淺藍色部分:register file-寄存器文件和 L1 cache
  • 16 個 Load/Store units (LD/ST Unit)
  • 4 個 Special Function Units (SFU)

每個 SM 具有 32 個 CUDA 內核,就是圖中寫著Core的綠色小方塊兒,每個 CUDA 內核都有一個完全流水線化的整數算術邏輯單元 (ALU) 和浮點單元 (FPU):

CUDA 內核

SM(Streaming Multiprocessors)是GPU架構中非常重要的部分,GPU硬件的并行性就是由SM決定的。

四、Kepler架構

Kepler架構的思路是:減少SM單元數(在這一代中叫SMX單元),增加每組SM單元中的CUDA內核數。在Kepler架構中,每個SM單元的CUDA內核數由Fermi架構的32個激增至192個。

在每個SMX中:

  • 4 個 Warp Scheduler,8 個 Dispatch Unit
  • 綠色:192個 CUDA 內核,分在12條 lane 上,每條分別是 16 個
  • 黃色:64 個DP雙精度運算單元,分在4條 lane 上,每條 lane 上 16 個
  • 32 個 LD/ST Unit
  • 32 個 SFU

五、Maxwell架構

Maxwell架構的SM單元和Kepler架構相比,又有很大變化,這一代的SM單元更像是把4個Fermi 架構的SM單元,按照2x2的方式排列在一起,這一代稱為SMM單元:

SMM 使用基于象限的設計,具有四個 32 核處理塊(processing blocks),每個處理塊都有一個專用的 warp 調度程序,能夠在每個時鐘分派兩條指令。

每個 SMM 單元提供

  • 八個紋理單元(texture units)
  • 一個多態引擎(polymorph engine-圖形的幾何處理)
  • 專用寄存器文件和共享內存。

每個處理塊中:

  • 1個 Warp Scheduler,2 個 Dispatch Unit
  • 綠色:32個 CUDA 內核
  • 8個 LD/ST Unit
  • 8個 SFU

CUDA內核總數 從Kpler時代的每組SM單元192個減少到了每組128個,但是每個SMM單元將擁有更多的邏輯控制電路,便于精確控制。

參考:
Maxwell: The Most Advanced CUDA GPU Ever Made | NVIDIA Developer Blog

六、Pascal架構

pascal架構的GP100核心

這里有一個新概念:核心

NVIDIA不同的架構會有幾種不同的核心,Pascal架構有GP100、GP102兩種大核心:

  • GP100:3840個CUDA核心,60組SM單元;
  • GP102:3584個CUDA核心,28組SM單元;
第2組數據存疑

核心是一個完整的GPU模組,上圖展示了一個pascal架構的GP100核心,帶有 60 個 SM 單元。

不同的顯卡產品可以使用不同的 GP100 配置,一般是滿配或者減配,比如Tesla P100 使用了 56 個 SM 單元。

GP100核心的SM單元

每個SM單元中,分為2個Process Block,每個Process Block中:

  • 1個 Warp Scheduler,2 個 Dispatch Unit
  • 綠色:32個 CUDA 內核
  • 黃色:16 個DP雙精度運算單元,分在2條 lane 上,每條 lane 上 8個
  • 8個 LD/ST Unit
  • 8個 SFU

CUDA內核總數從Maxwell時代的每組SM單元128個減少到了每組64個,這一代最大的特點是又把DP雙精度運算單元加回來了。

制程工藝升級到了16nm,性能大幅提升,功耗卻不增加。

七、Volta架構

Volta架構的GV100核心

GV100核心的SM單元

每個SM單元中,分為4個Process Block,每個Process Block中:

  • 1個 Warp Scheduler,1個 Dispatch Unit
  • 8 個 FP64 Core
  • 16 個 INT32 Core
  • 16 個 FP32 Core
  • 2 個 Tensor Core
  • 8個 LD/ST Unit
  • 4個 SFU

在前幾代架構中:

一個CUDA 內核在每個時鐘周期里只能為一個線程執行一條浮點或整數指令

但是從Volta架構開始,將一個CUDA 內核拆分為兩部分:FP32 和 INT32,好處是在同一個時鐘周期里,可以同時執行浮點和整數指令,提高計算速度。

Volta架構在傳統的單雙精度計算之外還增加了專用的Tensor Core張量單元,用于深度學習、AI運算等。

八、Turing架構

Turing架構的TU102核心

Turing架構目前一共有三種核心:

  • TU102核心
  • TU104核心
  • TU106核心

TU102核心的SM單元

每個SM單元有4個處理塊,每個處理塊中:

  • 1 個 Warp Scheduler,1 個 Dispath Unit
  • 16 個 INT32 Core
  • 16 個 FP32 Core
  • 2 個 Tensor Core
  • 4 個 LD/ST Unit
  • 4 個 SFU

這一代架構去掉了對FP64的支持。

九、Ampere架構

Ampere架構的GA102核心

GA102核心的SM單元

每個SM單元分成4個處理塊,每個處理塊中:

  • 1 個 Warp Scheduler,1 個 Dispatch Unit
  • 8 個 FP64 Core
  • 16 個 FP32 Core
  • 16 個 INT32 Core
  • 1 個 Tensor Core
  • 8 個 LD/ST Unit
  • 4 個 SFU

這一代架構又把FP64 Core加回來了,同時也是自Volta架構以來的,NVIDIA第三代Tensor技術,保持一代架構更新一次Tensor。

總結

以上是生活随笔為你收集整理的NVIDIA GPU 架构梳理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。