Skip to main content

Nvidia Labs公開cuda-oxide,供開發者用Rust編寫CUDA GPU核心

Posted in 業界新聞
新聞

cuda-oxide讓Rust開發者不必在GPU核心開發時改寫成CUDA C++、使用特定DSL,或依賴外部語言綁定。官方說明,開發者可用Rust撰寫GPU核心,並透過自訂rustc程式碼產生後端編譯成PTX,專案也支援單一來源檔開發,讓主機端與裝置端程式碼放在同一份Rust程式中,再透過cargo oxide build或cargo oxide run建置與執行。

簡單來說,cuda-oxide把CUDA帶進Rust,原本開發者使用C++寫CUDA的核心,不過現在可以選擇用Rust編寫。

開發者可以使用cuda-oxide,把Rust的型別系統、所有權模型、泛型與閉包等語言能力,應用在Nvidia GPU程式開發流程。官方文件指出,泛型與trait條件約束可用在GPU核心中,編譯器會針對不同型別產生各自的PTX進入點,開發者也能從主機端傳入閉包,調整GPU端的運算行為。

cuda-oxide也包含主機端CUDA執行環境,負責記憶體管理、GPU核心啟動與非同步GPU執行。官方提到,這次釋出包含cuda-core與cuda-async等執行期crate,開發者可先把GPU工作描述成延後執行的DeviceOperation工作圖,再由排程策略分配到CUDA串流池執行,最後以.await等待執行結果。該設計讓Rust既有的非同步程式模型,也能用於安排GPU工作與等待GPU運算完成。

在Nvidia的技術生態中,cuda-oxide目前更像是把CUDA程式模型接到Rust生態的實驗性入口,而不是要直接取代既有CUDA C++工具鏈。在官方Rust+GPU生態系附錄中,cuda-oxide被列在多個Rust GPU方案中,並與Rust-GPU、CubeCL、std::offload和cudarc等專案區分定位。cuda-oxide的應用範疇是能將CUDA程式模型用較安全的Rust形式表達。

cuda-oxide建置需求包含Linux、CUDA Toolkit 12.x以上、Nvidia Ampere以上GPU、Rust nightly與rust-src、rustc-dev元件、支援NVPTX的LLVM 21以上,以及Clang 21或libclang相關開發標頭。官方文件也列出目前測試平臺為Ubuntu 24.04,PTX輸出目標涵蓋sm_80至sm_100a。

The Rust + GPU Ecosystem — cuda-oxide

nvlabs.github.io
View original 0 Likes 0 Boosts

Comments (0)

No comments yet.