CUDA Toolkit 13.4は、Arm向けCUDAアプリケーション開発をWindowsへ拡張した。共有GPUの分割制御や、NVLink fabric上のデータ転送を扱う新APIも加わり、開発環境と大規模GPUシステムの制御範囲を広げている。
主要コンポーネントがWindowsのarm64へ対応
GPUアプリケーション開発環境のCUDA Toolkit 13.4は、Windows on Armを新たにサポートした。NVIDIAによると、Arm向けCUDAアプリケーションは従来Linuxで利用できたが、今回の更新で開発対象にArm版Windowsが加わった。
この対応はインストーラーの追加だけではない。CUDA NVCC、CUDA Runtime、CUDA NVRTC、CUDA C++ Core Compute Librariesを含む複数の主要コンポーネントが、Windowsのarm64を対応アーキテクチャとしている。GA版のToolkitは13.4.1で、先行提供されていた13.4.0 developer previewを置き換える。
Rubin向けコード移行を正式対応前に開始
対応アーキテクチャには、次世代GPUのNVIDIA Rubinもpreviewとして加わった。CUDA Toolkit 13.4はcompute capability 107を対象に機能面でサポートし、Rubin向けCUDA対応がGAへ移る前からアプリケーションの移植作業を始められる。
Windows on ArmがGA版の対応プラットフォームである一方、Rubin対応はpreviewという段階にある。NVIDIAはこの区分を明示し、現在利用できる開発環境の範囲と、先行移植を目的とするアーキテクチャ対応を分けている。
MPS V3が共有GPUの計算量とメモリを分割
複数プロセスでGPUを共有するMulti-Process Service(MPS)V3は、制御層を自動化しやすい構成へ更新された。スクリプトから操作できるCLI、名前付きサーバーインスタンス、namespace、TOML設定によって、複数のワークロードと設定を識別して管理できる。
この制御層は、Streaming Multiprocessor(SM)の分割と、cgroupに統合されたGPUメモリ上限も扱う。コンテナなどのプロセス群に対し、演算資源とメモリ境界をプログラムから設定する構成となり、共有GPUの管理単位がサーバー全体から個々のワークロードへ細分化された。
論理endpointでNVLink fabric上の転送先を指定
CUDA Compute Fabric Transport(CFT)は、NVLink fabric上の通信を論理endpoint中心に組み立てるAPIである。リモートGPUのメモリ割り当てをすべてプロセスの仮想アドレス空間へマッピングする代わりに、endpoint IDとoffsetで転送先を指定し、GPUから非同期のput、get、reductionを発行する。
論理endpointを使う構成は、大規模なマルチGPU環境でプロセスが保持する仮想アドレスの負担を抑える。CFTはCUDA Driver APIだけで提供され、高水準の通信ライブラリでは得られない転送制御を必要とする通信ライブラリ開発者を対象としている。
計算位置とデータ配置を同じGPU領域へ寄せる
CUDA 13.4は、GPU内部の配置を扱うLocality domainへプログラムからアクセスできるようにした。Locality domainはSMとデバイスメモリを含むGPUの一部分で、アプリケーションはdomain内にメモリを割り当て、同じdomainのSMリソースを持つgreen contextを作成できる。
配置情報の取得範囲も広がった。Unified Memoryまたはシステムによって割り当てられたデータが現在どこにあるかをAPIで問い合わせられるため、ライブラリやruntimeは計算とデータ移動を決める際に、その時点の配置を参照できる。
ToolkitとGPUドライバーを別々に導入
CUDA SDKのインストーラーはNVIDIAドライバーを同梱しない方式へ移行した。WindowsではCUDA 13.1から、LinuxではCUDA 13.4から分離され、Toolkitと対応ドライバーをそれぞれ導入する構成になった。
既存のCUDA 13.xアプリケーションにはminor version compatibilityがあるが、CUDA 13.4で追加された機能と新対応プラットフォームにはR615以降の対応ドライバーが必要となる。Windows on Armを含む今回の対応範囲は、Toolkit側のコンポーネントとドライバー側の要件を組み合わせて成立する。