自分用メモ。
いきさつ
autoAWQを使いたかった。
現象
Pytorchで"the nvidia driver on your system is too old"が出る。
色々調べたが、そもそもの依存関係が複雑...
- ホストのドライバーを更新
- 対応するnvidia-toolkit を入れろ
- CUDAドライバーを更新
- ...
依存関係複雑問題は起きる前にたたきましょう。
そもそもthe nvidia driver on your system is too oldを出さない方法
- 動作させたいライブラリが要求するPytorchのバージョンを調べておく
- そのPytorchのバージョンが使えるCUDAバージョンを調べる。
- 現在のホスト側CUDAバージョン(nvidia-smi)を調べる。
- 3のCUDAバージョン >= Pytorchのバージョンが使えるCUDAバージョンなら、対応するnvidiaのdockerイメージを探して、必要なバージョンのPytorchを入れる。
- RUN pip install torch==1.2.3 みたいな
- 3のCUDAバージョン < Pytorchのバージョンが使えるCUDAバージョンならホスト側のGPUドライバーを更新しないかぎりライブラリを動作させることはできない(はず)
実施例
AutoAWQ
- Your CUDA version must be CUDA 11.8 or later.
- torch >= 2.0
host側nvidia-smiの結果
- NVIDIA-SMI 450.172.01 Driver Version: 450.172.01 CUDA Version: 11.3
- この時点でauotoAWQは(ホストGPUドライバーを更新しない限り)使えない。
(以下は無駄でした)CUDAが11.3なのでnvidia Docker imageは11.3.1を選ぶ
先のエラーが出る可能性があるのはPytorchなので pip list | grep torchの結果を確認
- torch 2.1.2
- pip install torch ではいるバージョン。
しかし CUDA 11.3 ならpytorchは1.12.1+cu113までしか使えない。
- https://pytorch.org/get-started/previous-versions/
- 但しpythonは3.8以前でないといけない
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/5485
なので、AutoAWQは使えない
- Your CUDA version must be CUDA 11.8 or later & torch >=2.0なので、ホスト側のGPUドライバを更新しないと使うことはできない。