來源:內容編譯自riscv,謝謝。
NVIDIA 與 RISC-V 的歷史可以追溯到 2016 年,當時該公司開始將其內部 Falcon 微處理器(用作 GPU 產品的邏輯控制器)轉換為新的替代方案。在評估了可用的架構後,NVIDIA 選擇了 RISC-V ISA,從那時起,他們一直在將 RISC-V 微控制器新增到其產品中並替換掉傳統的 Falcons。
在其 10 年的生命週期中,NVIDIA 估計已出貨了約 30 億臺 Falcon 處理器,而這一轉變最終將導致數十億臺 RISC-V 處理器的出貨量。通常,每個 NVIDIA 晶片組包含 10 到 40 個 RISC-V 核心,具體取決於配置。2024 年,根據出貨的晶片總數,它們將突破 10 億臺 RISC-V 處理器大關。
自首次社群會議以來,NVIDIA 一直是 RISC-V 社群的積極成員,並且幾乎一直在董事會層面擁有代表權。他們參與了許多技術工作組,既貢獻和分享他們的工作,也從其他社群成員的共同貢獻中受益,同時還參與了 RISE 軟體組織。
儘管如此,NVIDIA 並不經常與 RISC-V 聯絡在一起,這可能是因為它的大部分工作都是內部完成的,而且雖然很重要,但往往與其產品的非面向客戶方面有關。這些可以分為三個關鍵領域,其中 RISC-V 在 NVIDIA 產品組合中發揮著重要作用:
-
功能級控制器包括影片編解碼器、顯示器、攝像頭、記憶體控制器(訓練)、Chip2Chip 介面和上下文切換;
-
晶片/系統級控制,包括資源管理、電源管理和安全;
-
資料處理包括網路中的資料包路由和啟用以及 DLA(非 GPU)中的其他 DL 網路層;
NVIDIA 從 32 位 Falcon 核心過渡到 RISC-V 最初是出於對 64 位功能的需求。他們的第一個 RISC-V 開發是一個相當普通的雙發射無序 RISC-V 核心,帶有標準擴充套件,可部署為多處理器版本。隨後,他們為面積受限的應用程式添加了 32 位版本,以及帶有 1024 位向量單元的向量處理器。

NVIDIA 還開發了幾個自定義擴充套件,其中一些是 NVIDIA 獨有的,另一些則對普通使用者有益。例如,2kB 頁面大小擴充套件是 NVIDIA 獨有的,可將舊軟體效能提高 50% 。同樣,64 位地址擴充套件在非常大的系統中很有用,例如資料中心,其中記憶體是分散式的,並且可能相距甚遠。
相反,他們的指標掩碼擴充套件對於整個社群的安全應用具有實用潛力。因此,NVIDIA 將該擴充套件提交給 RISC-V 標準,該標準已獲得批准,目前已被眾多社群成員使用。
NVIDIA 具有額外的擴充套件,可實現一般功能、安全性和效能,雖然這些都不是特別先進,但對於整個系統來說至關重要。
NVIDIA 的 SoC 使用自己的 RISC-V 子系統,名為 Peregrine。除了 RISC-V 核心之外,它還包括其他外設,例如 DMA 和安全 IP。Peregrine 對 NVIDIA 至關重要,因為它允許他們選擇和重複使用他們想要包含的 30 多個系統控制和管理應用程式中的任何一個,而無需每次都進行特定的獨立開發工作。RISC-V 架構使 NVIDIA 能夠靈活和模組化地根據需求配置子系統。例如,他們可以選擇 32 位或 64 位核心,然後選擇工作負載所需的特定擴充套件,從而最大限度地提高開發重用率和投資回報率。

類似地,在軟體方面,所有 30 多個應用程式都使用一個單一的堆疊,這允許在應用程式級別大量重用啟動、作業系統、分離核心和庫等專案。

NVIDIA 同樣致力於使其產品儘可能安全,包括使用內部攻擊性安全團隊部署為“駭客”,積極嘗試透過查詢弱點、漏洞和錯誤來破壞設計。
Peregrine 子系統的核心元件是分離核心,可以將其視為非常基本的虛擬機器管理程式系統。它將系統劃分為彼此獨立且可以單獨驗證的不同部分。這允許使用者在單獨的分割槽上執行不同的軟體。例如,符合安全要求且獲得 ASIL-D 認證的應用程式可以在一個分割槽上執行,而另一個未經認證的應用程式可以在另一個分割槽上獨立執行。

NVIDIA 擁有 30 多個不同的系統控制和管理應用程式,這些應用程式使用 RISC-V 核心,並且可以根據具體用例靈活部署。下面詳細介紹了其中兩個應用程式。
首先,GPU 系統處理器 (GSP:GPU System Processor) 為 NVIDIA 帶來了軟體處理方式的根本性變化。GSP 是位於 GPU 頂部的處理器,它抽象了 GPU 中可以執行的操作。主機處理器和核心驅動程式不再使用 GPU 內部的單獨控制暫存器,而是直接與 GSP 通訊,GSP 將這些高階命令轉換為低階控制暫存器速率。

GSP Peregrine 擁有 64 位 RISC-V 處理器,提供單 hart 和多 hart 版本。最重要的是,GSP 可以完全訪問 GPU 中的所有內容,包括記憶體和顯示控制器,這些都需要在軟體中非常小心地管理。從軟體角度來看,使用者可以部署具有核心驅動程式和多個客戶虛擬機器的主機處理器。客戶虛擬機器在 GSP 上有相應的 vGPU 執行時分割槽,分離核心確保它們相互隔離且不會相互干擾。資源管理器交換不同的客戶機並確保分配公平。此功能支援特定用例,例如機密計算,其中 GPU 移交給客戶機而不會受到虛擬機器管理程式的任何影響。在這種情況下,RISC-V 架構對於安全性至關重要,因為它具有特定的隔離功能以及 NVIDIA 自己的擴充套件屬性。
描述的第二個支援 NVIDIA RISC-V 的應用程式是深度學習加速器,它是某些 AI 專用 SoC 的一部分。這本質上是一個在圖形處理中程式設計的推理引擎。一個例子是 ONNX 程式,它表示在深度學習網路中處理的層圖。然後,它使用標準 RISC-V 編譯器獲取核心程式碼並將其編譯為可執行檔案。最重要的是,有一個 RVV 編譯器將其轉換為可載入檔案。還可以將不同的核心組合成一個核心,以便在執行時實現最快的執行速度。
DLA 並不會在 RISC-V 處理器上執行所有東西,主卷積核心和矩陣乘法器是獨立的實體。在下面的硬體圖中,有兩個 RISC-V 處理器,一個是控制;一個簡單的 32 位單元,然後是向量,即 NVRVV,一個 1024 位向量單元。有一個卷積核心和總共六個硬體引擎。例如,Rubik 是一個智慧 DMA 資料轉換器,可以移動資料,而 RISC-V RVV 向量處理器用於大多數非矩陣乘法器的層。簡而言之,它本質上是在 DLA 上執行的完整 ONNX 實現。

總而言之,NVIDIA 選擇 RISC-V ISA 以及它取得成功的原因有 5 個:
-
定製:定製能力是關鍵,因為它允許 NVIDIA 最大限度地利用矽片。RISC-V 許可模式允許他們使用基本 ISA 作為構建塊來調整晶片,並新增適合特定應用要求的擴充套件和配置檔案;
-
硬體/軟體協同設計:這是關鍵,因為它可以確保硬體針對軟體工作負載進行最佳化,從而提高效率和效能;
-
配置選項:標準的“現成”處理器通常針對應用程式進行了過度指定。藉助 RISC-V,NVIDIA 可以透過僅使用特定所需的擴充套件來配置其實現,從而節省成本和開發工作;
-
自定義擴充套件:允許 NVIDIA 新增自己的功能要求,如特定功能、安全性和/或效能;
-
一個通用的硬體和軟體架構:允許 NVIDIA 在其 30 多個應用程式中重複使用資產,而無需為每個應用程式建立或調整新架構。減少開發工作量、簡化部署並降低成本;
參考連結
https://riscv.org/blog/2025/02/how-nvidia-shipped-one-billion-risc-v-cores-in-2024/
END
▲點選上方名片即可關注
專注半導體領域更多原創內容
▲點選上方名片即可關注
關注全球半導體產業動向與趨勢
*免責宣告:本文由作者原創。文章內容系作者個人觀點,半導體行業觀察轉載僅為了傳達一種不同的觀點,不代表半導體行業觀察對該觀點贊同或支援,如果有任何異議,歡迎聯絡半導體行業觀察。

今天是《半導體行業觀察》為您分享的第4052期內容,歡迎關注。
推薦閱讀



『半導體第一垂直媒體』
即時 專業 原創 深度
公眾號ID:icbank
喜歡我們的內容就點“在看”分享給小夥伴哦

