GPU硬件架構和配置的理解

從公司架構理解GPU架構

想象一個GPU就像一家大型科技公司,它的任務是處理圖形和計算任務(“干活”)。

硬件概念公司架構比喻作用和特點
Platform (平臺)集團公司最大的獨立實體。比如谷歌Alphabet是一個集團公司,它旗下有谷歌、Waymo、Verily等子公司(Platform)。每個子公司(Platform)在法律和財務上是獨立的。在電腦里,插兩塊不同型號的顯卡,就是兩個獨立的Platform。
Die (芯片)子公司的大型辦公樓一個子公司(Platform)可能在一棟巨大的辦公樓(Die)里辦公。這棟樓里有自己的基礎設施(供電、網絡)。樓和樓之間通過高速公路(Socket/Interposer)連接。一棟樓可以容納很多部門(Device)。
Device (設備)部門或團隊一棟辦公樓(Die)里會有很多不同的部門(Device),比如搜索部門、廣告部門、YouTube部門。每個部門相對獨立,有自己的項目管理和資源,但共享整棟樓的基礎設施(食堂、網絡端口)。
Core (核心)項目組一個部門(Device)里會有多個項目組(Core),比如廣告部門下有“精準投放組”、“數據分析組”。每個組都能獨立完成一個任務。
Cluster (簇)組內的工程師一個項目組(Core)不是一個人,它是由多名工程師(Cluster)組成的。一個Cluster就是最基礎的計算單元。組里工程師越多(Cluster越多),這個組的整體戰斗力就越強。
MMU/Page Table (頁表)公司的權限管理系統規定了哪個部門(Device)、哪個項目組(Core)能訪問公司的哪些機密數據和資源(內存地址)。共享頁表就是讓兩個部門共用一套權限規則,它們能看到同一份數據。

詳細講解每個硬件概念

1. Die (芯片)

  • 是什么: 這是一片獨立的硅晶片,就是我們通常意義上說的“芯片”。它是在工廠里一次性制造出來的。
  • 為什么重要: 制造非常大的芯片(巨型Die)良品率很低,成本極高。就像蓋一棟超大的摩天大樓,難度和風險都很高。
  • 解決方案: 現代GPU(如AMD的RX 7000系列,NVIDIA的H100)采用Chiplet(小芯片)設計:Instead of building one gigantic die, they package multiple smaller dies together onto a single carrier (封裝基板)。這些dies之間通過超高速內部總線(如Infinity Fabric, NVLink)通信。
  • dieIDs=0,0,1,1?表示這個Platform由兩個Dies組成,第一個Die上有兩個Device(ID 0和1),第二個Die上也有兩個Device(ID 2和3)。

2. Cluster (簇) 和 Core (核心)

這兩個概念容易混淆,但它們是一個層級關系。

  • Core (核心)
    • 這是一個功能完整的處理單元。你可以把它想象成一個獨立的“大腦”,能夠接收、處理并完成一整個任務(比如渲染一個復雜的物體)。
    • 一個GPU包含很多個這樣的Cores,它們并行工作,實現強大的性能。
  • Cluster (簇):
    • 這是組成一個Core的最基本計算單元。一個Core內部包含很多個完全相同的Clusters
    • 每個Cluster都包含算術邏輯單元(ALU),負責進行最基礎的數學運算(加減乘除)。
    • 為什么這樣設計? 這是一種高效的設計哲學。設計一個強大的、復雜的單一Core很難。Instead, 設計一個簡單小巧的Cluster,然后在一個Core內部復制幾十個這樣的Cluster,讓它們協同工作,效率更高。這就像一支軍隊,不是靠一個超人,而是靠成千上萬訓練有素的士兵組成方陣。
  • 關系類比
    • Core = 一個完整的交響樂團。它能演奏一整首交響樂(處理一個完整任務)。
    • Cluster = 樂團里的一位小提琴手。他只會拉小提琴(做基礎運算),但很多位小提琴手一起工作,就能奏出恢弘的樂章。
    • userClusterMasks: 這個參數就是用來配置每個樂團(Core)里,哪些樂手(Cluster)今天來上班0x7f (二進制 01111111) 意味著這個Core內部的128個Clusters中,低7位對應的Cluster被啟用了(比如啟用了7個),其他的被禁用了。這用于模擬部分硬件損壞或節能配置。

3. MMU 和 Page Table (內存管理單元和頁表)

  • 是什么MMU是內存管理單元,Page Table是頁表,它們是CPU和GPU中至關重要的組件。
  • 作用
    1. 虛擬內存: 程序看到的內存地址(虛擬地址)和實際的物理內存地址是不同的。MMU負責在兩者之間進行翻譯
    2. 隔離與保護: 確保程序A不能胡亂訪問程序B的內存數據,否則系統會崩潰。
    3. 共享內存: 也可以讓多個程序(或多個GPU Device)安全地訪問同一塊物理內存。
  • combineDevIDs 的作用
    • 每個Device通常有自己獨立的MMU和頁表,這意味著它們看到的“內存世界”是隔離的
    • 如果想讓多個Device(比如Die0上的Device0和Die1上的Device1)緊密合作,共同處理一個超大的任務,它們就需要共享同一塊內存數據
    • 如何共享? 就是讓它們的MMU使用同一份頁表。這樣,它們對同一個虛擬地址的訪問會被翻譯到同一個物理地址上。
    • combineDevIDs=0,0,1,2 就是在設置:誰和誰共享誰的頁表。這相當于在公司的權限系統里,把幾個部門的權限合并了,讓他們可以共同操作同一個項目的數據。

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

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

相關文章

【硬件開發】電源抑制比PSRR

電源抑制比PSRR是電壓輸入量和電壓輸出量的比值,通常用dB來表示。 PSRR這個參數經常和運放,LDO,DCDC變換器有關聯。(2 封私信 / 58 條消息) 電源抑制比(PSRR)的基礎知識 - 知乎

七、卷積神經網絡

目錄 7.1 整體結構 7.2 卷積層 7.2.1 全連接層存在的問題 7.2.2 卷積運算 7.2.3 填充 7.2.5 3維數據的卷積運算 7.2.6 結合方塊思考 7.2.7 批處理 7.3 池化層 7.4 卷積層和池化層的實現 7.4.1 4維數組 7.4.2 基于 im2col的展開 7.4.3 卷積層的實現 7.4.4 池化層的…

加餐加餐!燒烤斗破蒼穹

忽然起了吃燒烤的念頭,便掏出手機點了一堆。不過二十分鐘,外賣小哥便按響了門鈴,手里提著一個方正的紙袋,還冒著熱氣。我將燒烤一一取出,排在茶幾上。肉串油光發亮,韭菜翠綠間點綴著蒜蓉,茄子剖…

搜索引擎收錄網站帶www和不帶www有區別嗎?

這是一個非常常見且重要的問題。簡單直接的回答是:有區別,但對搜索引擎來說,處理得當就不會重復;處理不當則會造成嚴重重復和權重分散。下面我為您詳細解釋一下,并提供正確的處理方法。核心區別:兩個不同的…

AFSim2.9.0學習筆記 —— 2、AFSim的Wizard軟件概述(ArkSIM集成開發環境 (IDE))

🔔 AFSim2.9.0 相關技術、疑難雜癥文章合集(掌握后可自封大俠 ?_?)(記得收藏,持續更新中…) 若還沒有下載AFSim2.9.0完整軟件或源碼,請先進入本人另篇文章了解下載。 正文 ??主界面 打開 Ar…

建自己的Python項目倉庫,使用工具:GitHub(遠程倉庫)、GitHub Desktop(版本控制工具)、VSCode(代碼編輯器)

結合 GitHub(遠程倉庫)、GitHub Desktop(版本控制工具)、VSCode(代碼編輯器) 三個工具,以下是更具體的Python項目倉庫搭建流程,包含工具協同操作的詳細步驟: 一、整體流程…

iDEA Lombok 失效 和 slf log 變量失效問題

1. lombok 失效:檢查下配置有沒有使用注解處理器;且這個處理中有沒有帶上版本;版本號需要與上面引入的依賴版本一致。2. 對于找不到 log 變量的操作,則是使用下面將這個變量使用下面的代碼定義出來;上面去掉 slf4j注解…

go資深之路筆記(二) sync.Pool

一、 使用 sync.Pool 減少 GC 壓力,提升性能 簡單講下go的gc,它的核心原理就是三色標記法和寫屏障,可以實現優秀并發處理。gc一般不會頻繁調用,他是根據GOGC的值來判斷,具體就是上次觸發GC后總堆值大于等于上次的(1GO…

【面試筆記-Java開發崗】

目錄:1. synchronized 和 ReentrantLock 的區別及應用場景2. HashMap 與 LinkedHashMap 的區別3. ConcurrentHashMap 的數據結構及 JDK1.7 與 JDK1.8 區別4. Spring 常用的模式及應用場景5. 事務的四大特性(ACID)6. 鎖機制:行級鎖…

CSS :has() 選擇器詳解:為什么它是“父選擇器”?如何實現真正的容器查詢?

一、前言 在傳統的 CSS 中,我們只能根據元素的自身屬性、類名、ID 或其子元素/兄弟元素來設置樣式,卻無法根據其父元素或后代元素的狀態來改變自身樣式。 直到 :has() 選擇器的出現,這一局面被徹底改變。 :has() 被稱為 “父選擇器” 或 “…

李宏毅 Deep Learning

感謝李宏毅老師qwq1. 基礎概念1.1 Machine Learning問題引出:預測后面幾天的觀看人數;初步構建模型:擬合效果不好,就是在原數據上平移了一段距離;此處構建模型的本質:利用特征工程,將“多維特征…

【AI論文】分享即關愛:基于集體強化學習經驗共享的高效語言模型(LM)后訓練方法

摘要:利用強化學習(RL)對語言模型(LMs)進行后訓練,無需監督微調即可增強其復雜推理能力,DeepSeek-R1-Zero便證明了這一點。然而,要有效利用強化學習訓練語言模型,需要進行…

工業網關在汽車沖壓車間的應用:EtherNet/IP轉EtherCAT集成實踐

在汽車零部件沖壓車間中,生產線的高效協同與精準控制是提升整體產能的關鍵。隨著自動化設備的多樣化,不同協議的設備之間的通信成為技術難點。例如,羅克韋爾PLC通常采用EtherNet/IP協議,而許多高性能機械臂則依賴EtherCAT協議。如…

【底層機制】【C++】std::move 為什么引入?是什么?怎么實現的?怎么正確用?

C++底層機制推薦閱讀 【C++基礎知識】深入剖析C和C++在內存分配上的區別 【底層機制】【C++】vector 為什么等到滿了才擴容而不是提前擴容? 【底層機制】malloc 在實現時為什么要對大小內存采取不同策略? 【底層機制】剖析 brk 和 sbrk的底層原理 【底層機制】為什么棧的內存…

Redis面試相關

數據過期策略 惰性刪除 當用到那個key的時候再檢查是否過期,過期則刪除,有效則返回key 優點是可以節省檢查過期的時間 缺點是會浪費內存 定期刪除 每隔一段時間對一些key進行檢查并且刪除里面的過期key 有兩種模式 slow模式是定時任務,頻率是…

知識輸出零散沒有體系怎么辦

當面臨知識輸出零散、不成體系的困境時,其根本原因在于未能建立一個從輸入、整合到輸出的閉環系統。要解決這一問題,核心在于構建個人知識管理體系、掌握結構化思維與表達能力、運用合適的工具與方法進行固化、持續實踐并迭代優化。這意味著,…

【C語言選擇排序算法詳解】+ 算法性能優化 + 動態演示實現

文章目錄一、算法介紹二、算法特點三、代碼實現與解析四、代碼解析1. 打印數組函數2. 選擇排序核心邏輯3. 動態展示實現4. 主函數五、算法優化思路與實現優化1:減少交換次數優化原理:優化2:雙向選擇排序優化原理:優化3&#xff1a…

棧(Java)

提示:多練才是王道,加油?(?????)? 棧Java1. 棧2. Java中棧的其中兩種實現方式2.1 Stack類2.1.1 Stack的模擬實現2.2 LinkedList類3. 典型習題講解3.1 逆波蘭表達式求值3.2 匹配括號3.3 合理彈出序列3.4 最小棧1. 棧 棧是一種特殊的線性表,其只允許在固定的一…

LayaAir鼠標(手指)控制相機旋轉,限制角度

切換天空盒腳本掛載到相機身上 const { regClass, property } Laya;regClass() export class SmoothCameraController extends Laya.Script {declare owner: Laya.Camera;// 旋轉靈敏度property({ type: Number, name: "旋轉靈敏度" })public rotationSensitivity:…

【數據結構入門】排序算法(4)歸并排序

目錄 1.排序的原理 1.1 保證子數組有序 1.2 時間復雜度 2. 遞歸實現 2.1 思路 2.2 代碼 3. 非遞歸實現 3.1 思路 3.2 代碼 4.面試題 4.1 題目 4.2 思路 1.排序的原理 歸并排序是外排序,所謂外排序就是說能夠對文件中的數據進行排序。 ①首先&#xff…