NVIDIA、MJWarpでロボット模擬を2048環境へ

GPU並列化の要点

最大2048環境の一括実行
総スループットの向上

移行と検証

同一MJCF資産の活用
CPUとの単一環境検証

計測と運用

CUDAグラフで起動削減
同期を含む性能計測
詳細を読む

NVIDIAは2026年9月23日、NVIDIA Warp上でMuJoCoの物理演算をGPU実行するMJWarpを使い、SO-101ロボットアームのシミュレーションを最大2,048環境へ並列化する手順を公開しました。狙いは単一環境の遅延短縮ではなく、強化学習や大規模サンプリングで必要な総ワールドステップ数を増やし、学習データ収集の総スループットを高めることです。

WarpはPythonで静的型付きカーネルを書き、CPUまたはCUDA向けのネイティブコードへJITコンパイルする基盤です。MJWarpは互換性のあるMuJoCoモデルと複数の状態をGPUに置き、1回のmjw.stepで全環境を進めます。

移行は、まずMuJoCo上の1環境でタスクを検証し、同じ初期状態をMJWarpへ渡して軌跡や成功条件を照合する流れです。SO-101の積み上げ課題では、キューブ中心の水平誤差と垂直間隔を測り、接触数・制約数のバッファ超過も失敗として扱います。

検証後は状態の先頭次元を増やし、最大2,048環境へ複製します。制御値をデバイス上で更新し、CUDA Graphsで一連のカーネル起動を再利用すれば、反復時の起動負荷を抑えられます。

性能測定では事前にウォームアップし、計測区間の前後でGPUを同期する必要があります。報告すべき指標は、環境数を添えたワールドステップ毎秒とバッチ1回当たりのミリ秒です。単一環境の速度だけで大規模学習の効率を判断しないことが重要です。