Open1

CUDA12.6以外でのAlphaFold3インストール

YomiyamaYomiyama

AlphaFold3

2024年12月2日

日本語の表現に気になる点があったので修正

背景

AlphaFold3のコードが公開され自分たちの手元でAF3のコードを走らせることが出来るようになった。

https://github.com/google-deepmind/alphafold3/tree/main

AF3に要求されているCUDAバージョンが12.6であるが、国立遺伝学研究所のクラスター計算機のnvidia-driverが対応しているバージョンはCUDA12.4であるし、名古屋大学の不老だとCUDA12.2にしか対応していない。
つまりdeepmind公式のパッケージのインストール方法では、これらの計算機においてAF3を走らせることが出来ない。

そこで、今回はnvidia-driverのバージョンがCUDA12.6に対応していない計算機(CUDA12.4がのった計算機上)で走らせることが出来るかどうか検証を行った。

ではどこを変えたのか

まずインストール手順はdeepmindのレポジストリと、東京科学大学難治疾患研究所の森脇先生の

https://qiita.com/Ag_smith/items/3bb110fe576292bbf0ea

を参考にし、miniforgeの仮想環境を使ってAF3を動かす。

まずgcc 13.2とCUDA 12.4をenviroment moduleで読み込んでおく。


mamba create -n alphafold3 python=3.11 zstd hmmer -c conda-forge -c bioconda -y

mamba activate alphafold3

cd 任意のfolder

git clone https://github.com/google-deepmind/alphafold3.git

cd alphafold3

問題はこの後である。

前記の森脇先生の記事では


python3.11 -m pip install absl-py==2.1.0 chex==0.1.87 dm-haiku==0.0.13 \
 dm-tree==0.1.8 filelock==3.16.1 "jax[cuda12]==0.4.34" jax-cuda12-pjrt==0.4.34 \
 jax-triton==0.2.0 jaxlib==0.4.34 jaxtyping==0.2.34 jmp==0.0.4 ml-dtypes==0.5.0 \
numpy==2.1.3 nvidia-cublas-cu12==12.6.3.3 \
nvidia-cuda-cupti-cu12==12.6.80 \
nvidia-cuda-nvcc-cu12==12.6.77 \
nvidia-cuda-runtime-cu12==12.6.77 \
nvidia-cudnn-cu12==9.5.1.17 \
nvidia-cufft-cu12==11.3.0.4 \
nvidia-cusolver-cu12==11.7.1.2 \
nvidia-cusparse-cu12==12.5.4.2 \
nvidia-nccl-cu12==2.23.4 \
nvidia-nvjitlink-cu12==12.6.77 \
opt-einsum==3.4.0 pillow==11.0.0 \
rdkit==2024.3.5 scipy==1.14.1 tabulate==0.9.0 \
toolz==1.0.0 tqdm==4.67.0 triton==3.1.0 typeguard==2.13.3 \
typing-extensions==4.12.2 zstandard==0.23.0

となっている。

ここで問題になるのが、


nvidia-cublas-cu12==12.6.3.3
nvidia-cuda-cupti-cu12==12.6.80
nvidia-cuda-nvcc-cu12==12.6.77
nvidia-cuda-runtime-cu12==12.6.77
nvidia-nvjitlink-cu12==12.6.77
nvidia-cusparse-cu12==12.5.4.2

になることが予想される。

そこで以下のパッケージを対応するCUDAのバージョンになるように

nvidia-cublas-cu12==12.4.2.65
nvidia-cuda-cupti-cu12==12.4.99
nvidia-cuda-nvcc-cu12==12.4.99
nvidia-cuda-runtime-cu12==12.4.99
nvidia-nvjitlink-cu12==12.4.99

#必要に応じて以下も(筆者の環境では書き換えなくても実行できた)
nvidia-cusparse-cu12==12.5.4.2

を書き換えたうえで、alphafold3のrequirements.txtのファイルも書き換える(書き換えないとこの後の手順でエラーが起きる)。

この手順を実行したうえで、

python3.11 -m pip install --no-deps .

${miniforgeのディレクトリ}/envs/alphafold3/bin/build_data

を実行すればインストールに成功する。