【CUDA12.8 対応 xformers】 CUDA12.8でxformersをビルドする方法 【Python】
この記事ではCUDA12.8
, Pytorch 2.8
環境でxformers
を無理やりビルドして使用する方法について情報共有します。
(注意: 自己責任でお願いします。)
環境
検証環境は以下の通りです。PyTorchの開発は Linux 環境への対応の方が早いという噂を聞いたのでOSは Ubuntu を選択します。
- OS = Ubuntu 24.04.2 LTS
- WSL(Windows PC上で簡単にLinuxを動かすことができる機能)上で動作
- CPU = Intel Core Ultra 285k
- GPU = NVIDIA RTX 5070
pyenv
+venv
などの仮想環境を作れる環境- Python 3.10.6 (Stable Diffusion が対応しているバージョン) を使用する
CUDA Toolkit 12.8
,CUDA 12.8
に対応したcuDNN
はインストール済みPytorch 2.8
はインストール済み
pyenv
, CUDA Toolkit 12.8
, CUDA 12.8
, Pytorch 2.8
のインストールは下記記事で解説していますのでご参照ください。

xformersのビルド環境構築
まず、Ubuntu に必要な開発ツールとライブラリをインストールします。
sudo apt update
sudo apt install python3-dev build-essential cmake
次に、CUDA 12.8
と cuDNN
の環境変数を確認します。
環境変数は以下の通りに設定しました。
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"
export CUDA_HOME=/usr/local/cuda-12.8
export CUDNN_INCLUDE_DIR=/usr/local/cuda/include
export CUDNN_LIB_DIR=/usr/local/cuda/lib64
環境変数設定は.bashrc
記載されているので、そのファイルの末尾に追加しました。
変更したので以下のコマンドで有効化。
source ./.bashrc
その後、PyTorch
が自分のGPUに適したCUDAバージョンを認識しているかを確認します。
以下のコマンドの出力結果で確認することができます。
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_arch_list())"
出力例は以下のとおりです。
2.8.0
True
['sm_90']
RTX5070の場合はsm_90
が含まれていればよいそうです。
次に、xformersのGitHubリポジトリからソースコードを取得します。
git clone https://github.com/facebookresearch/xformers.git
main
ブランチを使用します。
その後、Python 3.10.6
を有効化し、仮想環境を作成して有効化します。
pyenv local 3.10.6
python -m venv venv
source venv/bin/activate
次に必要なPythonパッケージをrequirement.txt
からインストールします。
requirement.txt
は先ほど取得したソースコード一式が入っているフォルダ(xformers)にあるので、
cd xformers
でディレクトリを移動しておきます。
その後、以下のコマンドでrequirement.txt
からパッケージをインストールします。
pip install -r requirements.txt
これで大体の環境はできました。
xformers のインストール (トラブルシューティングを含む)
カレントディレクトリがxformers
であることを確認後、以下のコマンドでxformers
を直接ソースコードからインストールすることができます。
pip install .
ここまでの状態でインストールをすると
ModuleNotFoundError: No module named 'torch'
というエラーがでます。
これはtorch
が無いよってことなんですが、 ここまででPyTorch
はインストールですし、先ほど以下のコマンドでtorch
がインポートできることは確認済みです。
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available()); print(torch.cuda.get_arch_list())"
これを回避するには以下のコマンドでwheel
をインストールすると解消されます。
pip install ninja packaging wheel
この状態でインストールを試みると下記のエラーがでます。
Did you forget to run `git submodule update --init --recursive` ?
これは以下のコマンドを実行するようにと言われているので指示に従います。
git submodule update --init --recursive
この状態でインストールをすると無事成功しました。
pip install .
xformersのビルドと他環境での利用方法
ここまででCUDA12.8
, Pytorch 2.8
環境でxformers
をインストールできました。
作ったxformers
をほかの環境で利用する方法を説明します。
以下のコマンドでビルドしたxformers
をビルドします。
python setup.py bdist_wheel
成功すると、dist/
ディレクトリ内に .whl
ファイルが生成されます。
このときファイル名は変えないでください。
作業フォルダに.whl
ファイルを移動させたあと、ほかの仮想環境を有効化した状態で、
pip install ビルドして生成されたファイル名.whl
を行うことでインストールできます。
参考文献
- xformersのGitHubリポジトリ: no model named ‘torch’ #740
https://github.com/facebookresearch/xformers/issues/740 - NVIDIA: cuDNN 9.8.0 Downloads
https://developer.nvidia.com/cudnn-downloads?