DGX SparkでDocker+GPUを用いてtorchaudioを動かす方法

2026-01-06

Shunsuke Fukazawa

はじめまして!2024年10月から株式会社Quixotiksでインターンをしている深澤です。現在は NVIDIA DGX Spark を使用して音声認識(ASR)に関する業務に携わっています。

ローカル ASR を Docker + GPU で動かす際に PyTorch の互換性エラーで少しハマったので、原因と解決方法をメモとして残します。同じ状況の方の参考になれば幸いです!

背景

ローカル ASRを Docker 上で GPU を利用して動かす際、pip install torchaudio を導入したタイミングで互換性エラーが発生:

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.

エラーの原因

  • pip install torchaudio を依存解決込みでやると、PyPI の配布物(wheel)に合わせる形で torch が更新・置換されることがある
  • DGX Spark(GB10)は sm_121 なので、置き換わった torchsm_121 をサポートしないビルドだった場合に上記の互換性エラーが出る

解決方法

torchaudio をソースビルド

  • ベースイメージは、NVIDIA公式の PyTorch コンテナを使用
  • コンテナ内に CUDA 対応の PyTorch(torch)がプリインストールされている
  • pip の依存解決で torch を置換しないよう、この torch を固定

Dockerfile:

FROM nvcr.io/nvidia/pytorch:25.09-py3

RUN apt-get update && apt-get install -y --no-install-recommends \\
    build-essential wget ca-certificates

ARG TORCHAUDIO_VERSION=2.9.0

WORKDIR /tmp
RUN wget -O audio-v${TORCHAUDIO_VERSION}.tar.gz \\
    <https://github.com/pytorch/audio/archive/refs/tags/v${TORCHAUDIO_VERSION}.tar.gz> \\
    && tar xzf audio-v${TORCHAUDIO_VERSION}.tar.gz

WORKDIR /tmp/audio-${TORCHAUDIO_VERSION}
RUN python -m pip install -v . --no-deps --no-build-isolation --no-use-pep517

WORKDIR /workspace
CMD ["/bin/bash"]
  • -no-deps:依存解決で torch を触らせない
  • -no-build-isolation:NGC の torch に合わせてビルド
  • -no-use-pep517:torchaudio 公式の推奨

コンテナ起動時は GPU を渡すために --gpus all が必要:

docker run --rm -it --gpus all <image> bash

動作確認

import torch, torchaudio

print("torch:", torch.__version__, "cuda:", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())
print(f"Device: {torch.cuda.get_device_name(0)}")
print("torchaudio:", torchaudio.__version__)

出力:

torch: 2.9.0a0+50eac811a6.nv25.09 cuda: 13.0
CUDA available: True
Device: NVIDIA GB10
torchaudio: 2.9.0

まとめ

DGX Spark(GB10 / sm_121)上で Docker + GPU 環境を構築する際、pip install torchaudio によって torch が置換され、互換性エラーにつながる場合があります。

その場合、ベースイメージの torch を固定した状態で torchaudio をソースビルドで導入することで回避できました。少しでも参考になれば幸いです!