"sm_121 is not compatible" — DGX SparkでPyTorchを動かす方法
はじめに
NVIDIA DGX Sparkを購入してPyTorchを動かそうとしたところ、GPUが認識されない問題に遭遇しました。本記事では、解決方法を2つ紹介し、どちらを選ぶべきかを解説します。
対象読者
- DGX Spark ユーザー
- PyTorchでGPUを使いたい方
※ ASUS Ascent GX10も同じGB10チップを搭載しているため、同様の手順で動作する可能性がありますが、未検証です。
環境
- NVIDIA DGX Spark (GB10)
- CUDA 13.0
- Ubuntu 24.04 (DGX OS)
問題: sm_121互換性エラー
通常のPyTorchをインストールすると、以下の警告が表示されます:
NVIDIA GB10 with CUDA capability sm_121 is not compatible with the current PyTorch installation.
The current PyTorch install supports CUDA capabilities sm_80 sm_86 sm_90 compute_90.
原因
- NVIDIA GB10はBlackwellアーキテクチャ(compute capability 12.1 = sm_121)
- PyTorch公式リリースはsm_121をまだ正式サポートしていない
解決策1: pip + cu129(シンプル)
最もシンプルな方法です。CUDA 12.9用のwheelを使います。
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu129
確認
python -c "import torch; print(torch.cuda.is_available())"
# → True
実行すると以下の警告が表示されますが、GPUは正常に動作します:
UserWarning: NVIDIA GB10 with CUDA capability sm_121 is not compatible
with the current PyTorch installation.
メリット・デメリット
| メリット | デメリット |
|---|---|
| pip一発で完了 | 上記の警告が毎回表示される |
| Dockerなしで動作 | 環境依存 |
| 軽量 | 将来の互換性は不明 |
解決策2: NGC PyTorch 25.09コンテナ(安定・公式推奨)
NVIDIAの公式コンテナを使う方法です。sm_121を明示的にサポートしています。
Dockerfile
FROM nvcr.io/nvidia/pytorch:25.09-py3
WORKDIR /app
# 必要に応じて依存関係を追加
# RUN pip install --no-cache-dir your-package
CMD ["python", "your_script.py"]
docker-compose.yml
services:
app:
build: .
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
volumes:
- .:/app
working_dir: /app
実行
docker compose build
docker compose run --rm app python your_script.py
確認
docker compose run --rm app python -c "
import torch
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'Device: {torch.cuda.get_device_name(0)}')
"
出力:
CUDA available: True
Device: NVIDIA GB10
メリット・デメリット
| メリット | デメリット |
|---|---|
| NVIDIA公式の最適化済み | Dockerが必要 |
| 警告が出ない | イメージが大きい (~15GB) |
| 再現性が高い | Python 3.12固定 |
どちらを選ぶ?
とりあえず動かしたい / 学習目的
→ pip + cu129
本番環境 / チーム開発 / 安定性重視
→ NGC PyTorch 25.09
| 観点 | pip + cu129 | NGC 25.09 |
|---|---|---|
| 手軽さ | ◎ | △ |
| 公式サポート | △ | ◎ |
| 再現性 | △ | ◎ |
| 警告なし | × | ◎ |
特殊なケース
以下のような条件に該当する場合は、CUDA 13.0ベースイメージから自前でビルドする方法が必要になることがあります:
- CUDA拡張をソースからコンパイルするライブラリ(例: MMCV, detectron2など)
- Python 3.12未対応のライブラリ(NGCコンテナはPython 3.12固定のため)
コラム: DGX Sparkエコシステムの現状
海外フォーラムでは、DGX Sparkユーザーの苦労話が多く見られます。
「ハードウェアは素晴らしい、でもエコシステムは発展途上」
Simon Willison氏のレビューでは、DGX Sparkの課題としてARM64 + sm_121の二重苦が挙げられています。従来のNVIDIA GPUエコシステムはx86アーキテクチャを前提としており、ARM64ベースのSparkでは予期しない問題が多発したとのこと。
"PyTorch ARM エコシステムの操作は非常に混乱している"
ただし、embargo解除直後にOllama、llama.cpp、LM Studio、vLLMなどが一斉にSpark対応を発表し、エコシステムは急速に成熟しつつあります。
「$41で買える最高のChatGPT」
karpathy/nanochatのDiscussionでは、DGX Sparkでの訓練結果が報告されています:
- 単一Spark: 約10日間で訓練完了(消費電力 ~120W)
- 2台接続: 約4〜5日に短縮
電力コスト約$8 + ハードウェア減価償却費を含めて約$41という試算から、「The best ChatGPT that $41 can buy?」というコメントも。
まとめ
DGX Sparkは新しいハードウェアのため、エコシステムがまだ成熟していません。
- 手軽さ重視 → pip + cu129
- 安定性重視 → NGC 25.09
PyTorchの公式リリースがsm_121をサポートすれば、将来的にはpip一発で済むようになるはずです。
Discussion