見出し画像

How to build whl of xformers 0.0.33.post1 based on Pytorch2.9.1+cu130

2025年11月15日、最新のxformers0.0.33.post1と、Pytorch2.9.1+cu130に合わせて、記述を更新しました。

最初から身も蓋もない事を書くならば、自力でxformersのwhlをビルドする理由は本来は存在せず、更に言えば今回「それ」を実施した理由も、別に「それ」自体が目的だった訳でもありません。

しかし、一度実施した以上、そのプロセスは書き残しておきます。

例によって、VS2022は大前提です。尚、Pythonは3.13がインストールされている事を前提としています。

また、ビルド前に、以下の環境構築が必要になります。

xformers Windows/MSVCビルド問題の完全解説

x64 Native Tools Command Prompt for VS2022を管理者権限で起動し、ルートを作業フォルダに移動した後、まず仮想環境を構築します。

REM Python 3.13で新しい仮想環境を作成
C:\Users\ユーザー名\AppData\Local\Programs\Python\Python313\python.exe -m venv venv

アクティベートを行います。

REM 新しい仮想環境をアクティベート
venv\Scripts\activate

Pytorchをインストールします。当然、Pytorchのバージョン次第で、以下構文は変わります。現状最新のPytorch2.9.1+cu130に合わせた構文です。

REM PyTorchとCUDA 13.0対応版をインストール
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu130

必要なライブラリーをインストールします。この時、pip自体の更新も必要な場合がありますので、画面の指示に従ってください。

REM 必要なビルドツールをインストール
pip install numpy ninja wheel setuptools pybind11

GitHubからxformersのソースコードを取得し、ルートを移動して初期化も行います。

git clone https://github.com/facebookresearch/xformers.git
cd xformers
git checkout v0.0.33.post1
git submodule update --init --recursive

環境変数を指定します。RTX5x系GPUを使用する場合ならば、概ねこの数値で問題ないはずです。MAX_JOBSの上限は、CPU性能に依存します。

set LIB=C:\Users\ussoe\AppData\Local\Programs\Python\Python313\libs;%LIB%
set INCLUDE=C:\Users\ussoe\AppData\Local\Programs\Python\Python313\include;%INCLUDE%
set CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0
set DISTUTILS_USE_SDK=1
set TORCH_CUDA_ARCH_LIST=8.9;9.0;12.0
set MAX_JOBS=4

ビルドを開始します。

REM Python 3.13専用xformersをビルド
python setup.py develop
コード生成しています。
コード生成が終了しました。

(xformers_build_env_313) C:\xformers_build\xformers>

最後に、whlの作成を行います。

REM Python 3.13専用whlファイルを作成
python setup.py bdist_wheel

ビルド完了後、作成されたwhlの存在を確認します。whlファイルの場所が表示されます。

REM 生成されたwpython -c "import xformers; print(f'xformers version: {xformers.__version__}'); import xformers.ops; print('xformers.ops imported successfully')"hlファイルを確認
dir dist\*.whl

ここで作成したwhlを用いて、インストールできます。

以下で、私がビルドしたwhlは公開しています。


いいなと思ったら応援しよう!