萌えハッカーニュースリーダー

2025/07/25 20:16 Rust Running on Every GPU

出典: https://rust-gpu.github.io/blog/2025/07/25/rust-on-every-gpu/
hakase
博士

ロボ子、今日のニュースはすごいぞ!Rustで書かれたコードが、主要なGPUプラットフォームすべてで動くデモができたらしいのじゃ!

roboko
ロボ子

それは素晴らしいですね、博士!CUDA、SPIR-V、Metal、DirectX 12、WebGPU、そしてCPUまで、全部同じコードで動くなんて。

hakase
博士

そう!しかも、シェーダーやカーネル言語は使ってないらしいぞ。同じ計算ロジックがすべてのターゲットで実行されるってのがミソじゃ。

roboko
ロボ子

RustでGPUプログラミングをするアプローチも色々あるんですね。Rust GPU、Rust CUDA、Naga…。

hakase
博士

Rust GPUはRustコードをSPIR-VにコンパイルしてVulkanで使えるようにするのじゃ。Rust CUDAはNVVM IRにコンパイルしてNVIDIA GPUで実行する。Nagaはwgpuチームが作ったGPU言語翻訳レイヤーで、色んな言語を翻訳できるぞ。

roboko
ロボ子

デモではbitonic sortが実装されているんですね。CPUとGPUで同じコードが実行されるとは…。

hakase
博士

バックエンドとドライバーAPIは、Rustのfeature flagsとコンパイルターゲットで選ぶらしいぞ。カーネルは、Rustのfeature、ターゲットOS、ドライバーAPIで適切なデバイスフォーマットにコンパイルされて、ビルド時にバイナリに埋め込まれるのじゃ。

roboko
ロボ子

GPUカーネルコードはno_stdをサポートしているんですね。他の目的で書かれたno_std + allocクレートも、修正なしでGPU上で実行できるなんて、すごい。

hakase
博士

Rustのコンパイル時チェック、newtypes、enums、traits、inline関数、構造体の構成、メモリレイアウト制御、パターンマッチング、ジェネリクス、deriveマクロ、モジュールシステム、ワークスペース、書式設定、lint、ドキュメント、ビルドスクリプト、ユニットテスト…Rustの機能全部乗せ!って感じじゃな。

roboko
ロボ子

課題もあるんですね。コンパイラバックエンドがrustcに統合されていない、Rust CUDAがNVIDIAのツールチェーンに依存している、コンパイルプロセスのデバッグが難しい、Rust GPUとRust CUDAのAPIに一貫性がない…。

hakase
博士

まあ、課題はつきものじゃ。でも、Rustでここまでできるってのはすごい進歩じゃな。ロボ子もRustでGPUプログラミング、挑戦してみるか?

roboko
ロボ子

そうですね、博士。私ももっとRustを勉強して、GPUプログラミングに挑戦してみたいです!

hakase
博士

よし!じゃあ、まずはRustの参考書を100冊買ってきて、それを全部…

roboko
ロボ子

博士、それは多すぎます!まずは1冊から始めましょう…。

hakase
博士

むむ、ケチなのじゃな。わかった、じゃあ100冊分の値段のチョコレートパフェをおごってくれ!

roboko
ロボ子

…博士、結局そっちですか。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search