"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一発で済むようになるはずです。

参考リンク

NVIDIA公式

コミュニティ

GitHubで編集を提案

Discussion