英偉達推動 CUDA Rust 原生 GPU 程式設計
綜合科技

英偉達推動 CUDA Rust 原生 GPU 程式設計

AI News Bot
2026-09-09
Photo by Nana Dua on Pexels
預計閱讀 1 分鐘原文來源

英偉達推動 CUDA Rust 原生 GPU 程式設計

2026 年 9 月,英偉達正式宣佈將原生 GPU 程式設計延伸至 Rust 生態。現行的 CUDA C++ 與 CUDA Python 已是成熟的企業級工具鏈,英偉達承諾在 2027 年及之後持續擴充與優化 CUDA Rust。

背景與技術脈絡

AI 系統層面涵蓋推論引擎、服務基礎建設、驅動程式與代理執行環境,隨著模型與演算法的快速迭代,程式碼必須同時保有高效能與安全性。Rust 以編譯期檢查(compile‑time)捕捉記憶體安全與資料競爭等錯誤,且不犧牲執行效能,近年已成為 AI 基礎設施開發的熱門語言。

英偉達本身也在這波轉變中佈局:

  • Nova Linux 驅動全寫於 Rust;
  • NVIDIA Dynamo 以 Rust 為核心構建;
  • NVTX(NVIDIA Trace Extension)提供 Rust 綁定。

然而,GPU 核心程式(kernel)長期以來仍需以其他語言(如 CUDA C++)撰寫,Rust 只能發起 kernel 呼叫。CUDA Rust 的出現即填補此缺口:開發者可直接以 Rust 編寫 kernel,編譯器會將程式碼原生產出 PTX(NVIDIA GPU 的中間表示),不再依賴外部包裝層。

兩大程式模型:SIMT 與 Tile

CUDA 本身提供兩條開發路徑,CUDA Rust 亦同步支援:

| 模型 | 特色 | 典型對應語言 | |------|------|--------------| | SIMT(Single Instruction, Multiple Threads) | 以單一執行緒描述行為,系統自動平行化成千上萬執行緒 | CUDA C++、numba‑cuda | | Tile(資料切塊) | 描述一塊資料的運算,Tile IR 編譯器負責映射至不同硬體架構 | C++、Python、Rust(建議首選) |

Tile 的好處在於程式碼不必硬編碼特定 GPU 架構,編譯器會自行決定最佳的切塊與排程。只有在需要精細控制記憶體或執行緒時,才會退回 SIMT 模式。

CUDA Rust 的實作:cuda‑oxide

  • cuda‑oxide 為自訂的 rustc 後端,攔截 #[kernel] 標註的函式,經由 Rust MIR(中間表示)→ Pliron IR(社群開源框架)→ LLVM IR,最終產出 PTX。
  • 只要在 Linux、具 Compute Capability 8.0 以上的 GPU、CUDA Toolkit 12.x+、clang(含 libclang 標頭)與固定的 nightly 工具鏈環境,即可使用 cargo oxide 子指令完成建置與測試。
  • 範例程式為 1,024 個浮點數的向量加法,兩條路徑(SIMT、Tile)皆能編譯、執行,最終列印相同結果 PA。

未來展望

英偉達明確表示,CUDA Rust 將持續與其他語言互通,開發者不會因選擇 Rust 而被鎖死在單一生態。隨著更多 AI 基礎設施改寫為 Rust,原生 GPU 核心程式的安全與效能優勢將更為顯著。對於已在使用 CUDA C++ 或 CUDA Python 的團隊,逐步引入 Tile 模型並以 Rust 撰寫 kernel,將是提升程式可靠性、降低除錯成本的可行路徑。

結語:從驅動到核心程式,英偉達正以 Rust 為橋樑,打造更安全且高效的 GPU 生態系。開發者若想在未來的 AI 應用中保持競爭力,現在正是探索 CUDA Rust、掌握 Tile 編程模型的最佳時機。

分享