【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+venvを使ったPythonの仮想環境の作り方は以下の記事で解説しています。

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.gitmainブランチを使用します。
その後、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?
