DGX SparkでDocker+GPUを用いてtorchaudioを動かす方法
- Shunsuke Fukazawa
- 1月6日
- 読了時間: 2分
はじめまして!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 なので、置き換わった torch が sm_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 をソースビルドで導入することで回避できました。
少しでも参考になれば幸いです!


コメント