NVIDIA(英偉達) GPU 芯片架構發展史

GPU 性能的關鍵參數

  1. CUDA 核心數量(個):決定了 GPU 并行處理能力,在 AI 等并行計算類業務下,CUDA 核心越多性能越好。

  2. 顯存容量(GB):決定了 GPU 加載數據量的大小,在 AI 訓練場景中,顯存的大小決定了一次能夠加載訓練數據的量,在大模型訓練時,顯存容量很重要。

  3. 顯存帶寬(GB/s):是 GPU 芯片和顯存之間的數據傳輸速率,作為決定性能最重要的因素之一,由顯存頻率和位寬決定。

    1. 顯存位寬(bit):顯存在一個時鐘周期內所能傳送數據的位數,位數越大則瞬間所能傳輸的數據量越大。

    2. 顯存頻率(MHz):反映了顯存的速度。

  4. 浮點數算力(FLOPS):用來估算 GPU 的處理能力。

    1. 半精度(FP16):使用 2 個字節(16 位)進行存儲。用于需要節省內存和加快計算速度的場景,如深度學習中的混合精度訓練。在這些應用中,通過結合使用半精度和單精度浮點數,可以在保持模型精度的同時,減少內存占用和加快訓練速度。

    2. 單精度(FP32):使用 4 個字節(32 位)進行存儲。被廣泛用于各種計算密集型應用,包括科學計算、圖形渲染、深度學習等。在這些應用中,單精度浮點數提供了足夠的精度和數值范圍,以滿足大多數計算需求。

    3. 雙精度(FP64):使用 8 個字節(64 位)進行存儲。用于需要高精度計算的場景,如復雜的科學模擬、計算化學、分子建模、流體動力學等。

NVIDIA GPU 系列型號分類

1. 消費級 GeForce 系列

  • RTX 50XX 系列(Blackwell)

  • RTX 40XX 系列(Ada Lovelace)

  • RTX 30XX 系列(Ampere)

  • RTX 20XX 系列(Turing)

  • GTX 16/10 系列(Turing/Pascal)

2. 專業工作站級

  • RTX A50XX 系列(Ada/Ampere)

  • RTX A60XX 系列(Ada/Ampere)

3. 數據中心級

  • Tesla H100 系列(Hopper)

  • Tesla A100 系列(Ampere)

  • Tesla L40 系列(Ada Lovelace)

NVIDIA GPU 架構發展簡史

NVIDIA Tesla 系列服務器 GPGPU 用于大規模的分布式 AI 訓練。

  • https://zh.wikipedia.org/wiki/NVIDIA_Tesla

圖片

2008 - Tesla(特斯拉)?

Tesla 架構是 NVIDIA 第一個實現了統一著色器模型的芯片架構,具有完整的 Transform(坐標轉換)、Lighting(光源處理)、Setup(三角形設置)和 Rendering(渲染引擎) 功能。針對 HPC 和 AI 場景,應用于早期的 CUDA 系列顯卡中,但并非真正意義上的 GPGPU 芯片。

圖片

  • 1 個 NVIDIA Tesla GPU 包含 7 個 TPC(Texture Processor Cluster,紋理處理集群)。

  • 1 個 TPC 包含 2 個 SM(Stream Multi-processor,流多處理器)。

  • 1 個 SM 包含:

    • 6 個 SP(Streaming Processor,流處理器)。SP 是 GPU 最基本處理單元,指令和任務最終都是在 SP 上處理的。GPU 所謂的并行計算,也就是有很多個 SP 在同時進行計算。

    • 2 個 SFU(Special Function Unit,特殊函數的計算單元)

    • 1 個 I-Cache(指令緩存)

    • 1 個 C-Cache(常量緩存)

    • 1 個 MT Issue(多線程指令獲取)

    • 1 個 Shared Memory(共享內存)

  • 1 個共享的 L1 Cache(一級緩存)

  • 1 個共享的 Fetch/Dispatch(取指/分發)部件。

  • Load/Store Queues(訪問存儲單元),在 SM 和 Main Memory 之間快速傳輸數據;

  • Warp Scheduler(線程調度器),每個 Warp(線程束)包含了 32 個并行的 Threads,它們使用不同的數據執行相同的命令,Scheduler 會負責這些 Threads 的調度;

再細化每個 ?SP,包含了:

  • 1 個共享的 Fetch/Decode(取指/譯碼)部件。

  • 8 個 ALU(邏輯運算單元)。

  • 4 組 Execution contexts(執行環境),可 Concurrent but interleaved(并發交叉)執行 4 條 Instruction Streams(指令流)。

  • 每組 Execution contexts 有 8 個 Context,共計 32 個 Fragments(并發程序片元),即 32 個 CUDA threads。

圖片

2010 - Fermi(費米)?

Fermi 是第一個真正意義上的 GPGPU 架構芯片,擁有 30 億個晶體管,共計 512 個 CUDA core。并提高了以下關鍵特性:

  1. 提高 FP64 雙精度性能

  2. 支持 ECC:ECC 支持在 DC 場景中安全地部署大量 GPU,并確保數據敏感型 Application 免受內存錯誤的影響。

  3. True Cache Hierarchy:一些并行算法無法使用 GPU 的 SM(Share Memory),用戶需要一個真正的緩存架構來幫助他們。

  4. 更多的共享內存:許多 CUDA 程序員要求超過 16 KB 的 SM 來加速他們的應用程序。

  5. 更快的上下文切換:用戶要求在應用程序和更快的圖形和計算互操作之間進行更快的上下文切換。

  6. 更快的 Atomic Operations(原子操作):用戶要求為他們的并行算法提供更快的讀-修改-寫原子操作。

圖片

  • 一個 Fermi GPU 擁有 16 個 SM。

  • 每個 SM:

    • 2 個 Warp(線程束)

    • 2 組,共 32 個 CUDA Core

    • 16 組加載存儲單元(LD/ST)

    • 4 個特殊函數單元(SFU)

  • 每個 Warp:

    • 1 個 Warp 調度器(Warp Scheduler)

    • 16 個 Core

    • 分發單元(Dispatch Unit)

  • 每個 Core:

    • 1 個 FPU(浮點數單元)

    • 1 個 ALU(邏輯運算單元)

2012 - Kepler(開普勒)?

Kepler 的架構設計思路是減少 SM 單元數(在這一代中叫 SMX 單元),增加每組 SM 單元中的 CUDA core 數,每個 SM 單元的 CUDA core 數由 Fermi 架構的 32 個增至 192 個。相較于 Fermi,Kepler 更快,效率更高,性能更好。

圖片

Kepler 將 SM 升級到了 SMX,支持動態創建渲染線程(下圖),以降低 CPU 和 GPU 之間的數據傳輸延遲。

每個 SMX:

  • 4 個 Warp Scheduler,8 個 Dispatch Unit。

  • 綠色:192 個 CUDA 內核,分在 12 條 lane 上,每條分別是 16 個。

  • 黃色:64 個 DP 雙精度運算單元,分在 4 條 lane 上,每條 lane 上 16 個。

  • 32 個 LD/ST Unit。

  • 32 個 SFU。

圖片

2014 - Maxwell(麥克斯韋)?

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

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

  • 每個 Maxwell GPU 有 4 個 GPC,每個 GPC 有 4 個 SMM。

  • 每個 SMM 單元:

    • 八個紋理單元(texture units)。

    • 一個多態引擎(Polymorph engine)的圖形幾何處理。

    • 專用寄存器文件和共享內存。

每個處理塊:

  • 1 個 Warp Scheduler,2 個 Dispatch Unit。

  • 綠色:32 個 CUDA core。

  • 8個 LD/ST Unit。

  • 8個 SFU。

圖片

2016 - Pascal(帕斯卡)?

Pascal 將處理器和數據集成在同一個程序包內,以實現更高的計算效率。

Pascal 的 CUDA core 總數從 Maxwell 的每組 SM 單元 128 個減少到了每組 64 個,這一代最大的特點是又把 DP 雙精度運算單元加回來了。制程工藝升級到了 16nm,性能大幅提升,功耗卻不增加。1080 系列、1060 系列基于 Pascal 架構。

Pascal 擁有 GP100、GP102 兩種大核心,核心是一個完整的 GPU 模組。

  • GP100:3840 個 CUDA core,60 組 SM 單元;

  • GP102:3584 個 CUDA core,28 組 SM 單元;

圖片

GP100 核心的 SM 單元:

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

    • 1 個 Warp Scheduler,2 個 Dispatch Unit。

    • 綠色:32 個 CUDA core。

    • 黃色:16 個 DP 雙精度運算單元,分在 2 條 lane 上,每條 lane 上 8 個。

    • 8 個 LD/ST Unit。

    • 8 個 SFU。

2017 - Volta(伏特)?

Volta 配備了 640 個 Tensor 核心,每秒可提供超過 100 兆次浮點運算(TFLOPS)的深度學習效能,用于深度學習、AI 運算等,比前一代的 Pascal 架構快 5 倍以上。

Tesla V100(Volta 架構)

  • CUDA 核心:5120 個

  • 顯存容量:16GB/32GB HBM2

  • 顯存帶寬:900 GB/s

  • 浮點算力:

    • FP32:約 15.7 TFLOPS

    • FP64:約 7.8 TFLOPS(雙精度為單精度的一半)

  • 價格:約 10,000 美元

圖片

從 Volta 開始,將一個 CUDA core 拆分為兩部分:

  1. FP32

  2. INT32

好處是在同一個時鐘周期里,可以同時執行浮點和整數指令,提高計算速度。

Volta 架構的 GV100 核心。每個 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。

圖片

2018 - Turing(圖靈)?

Turing 架構配備了名為 RT Core 的專用光線追蹤處理器,能夠以高達每秒 10 Giga Rays 的速度對光線和聲音在 3D 環境中的傳播進行加速計算。

Turing 架構將實時光線追蹤運算加速至上一代 NVIDIA Pascal? 架構的 25 倍,并能以高出 CPU 30 多倍的速度進行電影效果的最終幀渲染。2060 系列、2080 系列顯卡也是跳過了 Volta 直接選擇了 Turing 架構。

圖片

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

  1. TU102 核心

  2. TU104 核心

  3. TU106 核心

Turing 架構的 TU102 GPU,它的特點如下:

  • 6 GPC(圖形處理簇)

  • 36 TPC(紋理處理簇)

  • 72 SM(流多處理器)

  • 每個 GPC 有 6 個 TPC,每個 TPC 有 2 個 SM

  • 4,608 CUDA core

  • 72 RT core

  • 576 Tensor core

  • 288 紋理單元

  • 12x32 bit GDDR6 內存控制器(共 384 位)

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。

    • 256 KB 寄存器文件。

圖片

2020 - Ampere(安培)?

2020 年 5 月 14 日,NVIDIA 發布了最新一代的 A100 GPU 產品(簡稱 GA100),采用 Ampere 架構。

Tesla A100(Ampere 架構)

  • CUDA 核心:6912 個

  • 顯存容量:40GB/80GB HBM2

  • 顯存帶寬:1,555 GB/s(80GB 版本)

  • 浮點算力:

    • FP32:約 19.5 TFLOPS

    • TF32(AI 優化):156 TFLOPS

  • 價格:約 10,000 美元

圖片

下面我們通過 Ampere 架構為例,介紹 GPU 的組成部分。

圖片

Ampere 架構沿用了成熟的 GPC-TPC-SM 多級架構,包含了:

  • 8 組 GPC(Graphics Processor Cluster,圖形處理簇)。

    • 每組 TPC 包含 8 組 SM(Stream Multiprocessor,流多處理器)。

    • 每組 GPC 包含 8 組 TPC(Texture Processor Cluster,紋理處理簇)。

  • 2 組 L2 Cache,避免計算單元訪問遠端 L2 Cache 時出現高延遲。每組 L2 Cache 為 40MB,在一定程度上減輕計算單元對顯存帶寬的依賴。

  • PCI Express 4.0

  • NVLink 3.0

圖片

再將 A100 核心的 SM 展開,可以看到 Ampere 的 SM 單元設計沿用了從 Volta 開始的分精度計算思路,將計算核心分成了:

  1. 針對整數計算的 INT32 單元

  2. 針對浮點計算的 FP32、FP64 單元

  3. 針對 FP16、INT8 等 AI 計算中常見的數據類型的 Tensor Cores

每個 SM 包含了:

  • 1 個共享的 L1 Ins-Cache(一級指令緩存)

  • 1 個共享的 L1 Data-Cache(一級數據緩存)

  • 1 個共享的 Shared Memory(共享內存)

  • 4 個子模塊

其中 RT Cores 是游戲卡才有的,面對純計算用途的 GA100 并不需要。

每個子模塊包含了:

  • 1 個 L0 I-Cache(指令緩存)

  • 1 個 Warp Scheduler(線程調度器),每個 Warp(線程束)包含了 32 個并行的 Threads,它們使用不同的數據執行相同的命令,Scheduler 會負責這些 Threads 的調度。Warp Scheduler 的指令通過 Dispatch Units 發送到 Core 執行。

  • 1 個 Dispatch Unit(取指/分發)部件。

  • 1 個 Register File(寄存器文件)。

  • 16 個針對浮點計算的 FP32 CUDA Core。

  • 16 個針對整數計算的 INT32 CUDA Core。

  • 8 個針對浮點計算的 FP64 CUDA Core。

  • 1 個針對 FP16、INT8 等 AI 計算的 Tensor Core 3.0,幾乎可以加速所有的常見數據類型,包括:FP16、BF16、TF32、FP64、INT8、INT4 和二進制。

  • 8 個 LD/ST(Load/Store Queues,訪問存儲單元),在 SM 和 Main Memory 之間快速傳輸數據;

  • 1 個 SFU(Special Function Unit,特殊函數的計算單元),執行特殊數學運算,例如:Sin、Cos、Log 等。

圖片

而 GA102 核心的 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。

2022 - Hopper(霍珀)?

Hopper 架構的 H100 GPU 是 NVIDIA 劃時代的產品,其 CUDA 核心數量達到了驚人的 14,592~16,896 顆,轉為 AI 大模型訓練開發。

Tesla H100(Hopper 架構)

  • CUDA 核心:14,592~16,896

  • 顯存容量:80GB HBM3

  • 顯存帶寬:3 TB/s(理論值)

  • 浮點算力:

    • FP8(AI 優化):4,000 TFLOPS(稀疏模型)

  • 價格:約 30,000 美元(含企業支持服務38)

  • 應用:萬億參數語言模型訓練、超大規模數據中心

H100 相對于 A100 有了質的飛躍。配備 InfiniBand interconnect 的 H100 的性能是 A100 的 30 倍。新的 NVLink 交換系統互連針對一些最大且最具挑戰性的計算工作負載,這些工作負載需要跨多個 GPU 加速節點的模型并行性來適應。這些工作負載帶來了新一代的性能飛躍,在某些情況下, InfiniBand 的性能比 H100 再次提高了三倍。

圖片

H100 架構詳解推薦瀏覽官方文檔:https://developer.nvidia.com/zh-cn/blog/nvidia-hopper-architecture-in-depth/

圖片

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/897018.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/897018.shtml
英文地址,請注明出處:http://en.pswp.cn/news/897018.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《Python實戰進階》No 10:基于Flask案例的Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻擊

第10集:Web 安全性:防止 SQL 注入、XSS 和 CSRF 攻擊 在現代 Web 開發中,安全性是至關重要的。無論是用戶數據的保護,還是系統穩定性的維護,開發者都需要對常見的 Web 安全威脅有深刻的理解,并采取有效的防…

【大數據分析 | 深度學習】在Hadoop上實現分布式深度學習

【作者主頁】Francek Chen 【專欄介紹】 ? ? ?智能大數據分析 ? ? ? 智能大數據分析是指利用先進的技術和算法對大規模數據進行深入分析和挖掘,以提取有價值的信息和洞察。它結合了大數據技術、人工智能(AI)、機器學習(ML&a…

盛鉑科技SCP4000射頻微波功率計與SPP5000系列脈沖峰值 USB功率計 區別

在射頻(RF)和微波測試領域,快速、精準的功率測量是確保通信系統、雷達、衛星設備等高性能運行的核心需求。無論是連續波(CW)信號的穩定性測試,還是脈沖信號的瞬態功率分析,工程師都需要輕量化、…

自學微信小程序的第十三天

DAY13 1、使用map組件在頁面中創建地圖后,若想在JS文件中對地圖進行控制,需要通過地圖API來完成。先通過wx.createMapContext()方法創建MapContext(Map上下文)實例,然后通過該實例的相關方法來操作map組件。 const m…

深入解析 C# 中的泛型:概念、用法與最佳實踐

C# 中的 泛型(Generics) 是一種強大的編程特性,允許開發者在不預先指定具體數據類型的情況下編寫代碼。通過泛型,C# 能夠讓我們編寫更靈活、可重用、類型安全且性能優良的代碼。泛型廣泛應用于類、方法、接口、委托、集合等多個方…

H5DS編輯器是如何讓企業快速構建動態頁面

H5DS編輯器核心亮點: 1.拖拽式操作,小白友好:無需設計與代碼基礎!通過簡單拖拽元素、調整文字和動畫,即可生成交互式H5頁面。內置海量模板和素材庫,支持自定義設計風格,輕松適配企業品牌需求。…

Unity ECS與MonoBehaviour混合架構開發實踐指南

一、混合架構設計背景 1. 技術定位差異 ECS(Entity Component System):面向數據設計(DOD),適用于大規模實體計算(如10萬單位戰斗) MonoBehaviour:面向對象設計&#xf…

[項目]基于FreeRTOS的STM32四軸飛行器: 三.電源控制

基于FreeRTOS的STM32四軸飛行器: 三.電源控制 一.IP5305T芯片手冊二.電源控制任務 一.IP5305T芯片手冊 注意該芯片低功耗特性,為防止進入待機,每隔一段時間發送一個電平。 官方提供的芯片外圍電路設計圖: 電氣特性: 當負載電流持…

java環境部署

java環境部署 一、準備工作 jrejdkeclipse jdk下載:21和1.8-----官網:Oracle:Java 下載 |神諭 該處選擇要依據自身的系統類型選擇下載 idea的下載安裝:IntelliJ IDEA | Other Versions 二、安裝 三、環境配置 四、使用 五、i…

微服務通信:用gRPC + Protobuf 構建高效API

引言 在微服務架構中,服務之間的通信是系統設計的核心問題之一。傳統的RESTful API雖然簡單易用,但在性能、類型安全和代碼生成等方面存在一定的局限性。gRPC作為一種高性能、跨語言的RPC框架,結合Protobuf(Protocol Buffers&…

使用 Docker 和 Nginx 高效部署 Web 服務(適用于慈云數據云服務器)

前言 在現代 Web 服務部署中,Docker 和 Nginx 的結合是一種高效、靈活且可擴展的解決方案。 Docker 使應用程序及其依賴項封裝到一個獨立的容器中,確保一致性,并簡化部署過程。Nginx 作為高性能 Web 服務器和反向代理,能夠高效處…

C 語言數據結構(一):時/空間復制度

目錄 一、前言 1. 什么是數據結構 2. 什么是算法 二、時 / 空間復雜度 1. 算法效率 2. 時間復雜度 2.1 時間復雜度的概念 2.2 大 O 的漸進表示法 2.3 常見的計算時間復雜度的例子 2.3.1 實例 1 2.3.2 實例 2 2.3.3 實例 3 2.3.4 實例 4 2.3.5 實例 5 &#xff1a…

一文讀懂Redis分布式鎖

引言 在當今互聯網時代,分布式系統已成為大規模應用的主流架構。然而,這種架構中多個服務同時對共享資源的操作可能導致并發問題,如數據不一致和資源爭用。有效管理這些并發訪問,確保共享資源的安全性顯得尤為重要。 分布式鎖作…

23種設計模式一覽【設計模式】

文章目錄 前言一、創建型模式(Creational Patterns)二、結構型模式(Structural Patterns)三、行為型模式(Behavioral Patterns) 前言 設計模式是軟件工程中用來解決特定問題的一組解決方案。它們是經過驗證…

極狐GitLab 17.9 正式發布,40+ DevSecOps 重點功能解讀【三】

GitLab 是一個全球知名的一體化 DevOps 平臺,很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版,專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料: 極狐GitLab 官網極狐…

elk的相關的基礎

以下是關于ELK(Elasticsearch, Logstash, Kibana)的200個基礎問題及其答案,涵蓋了ELK的核心概念、組件、配置、使用場景、優化等方面。 ?Elasticsearch 基礎 ?**什么是Elasticsearch?**? 答:Elasticsearch是一個分…

Beyond Compare for mac v5.0.6.30713 文件對比利器 支持M、Intel芯片

Mac毒搜集到的Beyond Compare是一套超級的文件及文件夾(目錄)的比較工具,不僅可以快速比較出兩個目錄的不同,還可以比較每個文件的內容,而且可以任意顯示比較結果。 應用介紹 程序內建了文件瀏覽器,方便您對文件、文件夾、壓縮包…

ProfibusDP主站轉ModbusTCP網關如何進行數據互換

ProfibusDP主站轉ModbusTCP網關如何進行數據互換 在現代工業自動化領域,通信協議的多樣性和復雜性不斷增加。Profibus DP作為一種經典的現場總線標準,廣泛應用于工業控制網絡中;而Modbus TCP作為基于以太網的通信協議,因其簡單易…

python代碼注釋方式

在 Python 中,注釋是用于解釋代碼、提高代碼可讀性和可維護性的重要工具。Python 支持兩種主要的注釋方式:單行注釋和多行注釋。此外,Python 還支持文檔字符串(docstrings),用于為模塊、函數、類和方法提供…

【雜談】信創電腦華為w515(統信系統)登錄鎖定及忘記密碼處理

華為w515麒麟芯片版,還有非麒麟芯片版本,是一款信創電腦,一般安裝的UOS系統。 準備一個空U盤,先下載鏡像文件及啟動盤制作工具,連接如下: 百度網盤 請輸入提取碼 http://livecd.uostools.com/img/apps/l…