昨日の続き。apt-get install intel-oneapi-dpcpp-cpp-2024.2 intel-oneapi-mkl-devel intel-oneapi-ccl-develすると、/opt/intel/oneapi下に色々入るのですが、この手順だとptiがインストールされないのでPyTorch Prerequisites for Intel GPUsを参考にapt-get install intel-pti-dev。というかこのドキュメントを読んで準備する方が良いのでは…ということで昨日の手順はごっそり捨てて(日記としては残しておきます)、こちらのInstall for WSL2の手順でやり直してみます。
Step 1: Install Intel Client GPU Driversに書いてあることは、Installing Client GPUs on Ubuntu Desktop 24.04 LTSの手順と同じです。むしろInstall for WSL2の方はlibze1などのapt-getにしっかりsudoを付けているのでこっちのドキュメントの方が親切かも。
Step2: Install Intel Support Packages、apt-get install intel-for-pytorch-gpu-dev-0.5 intel-pti-dev-0.9とバージョン番号を指定していますが自分は sudo apt-get install intel-for-pytorch-gpu-dev intel-pti-devとバージョン番号抜きで進めています。oneAPIで使うコンパイラ等のツールはここでインストールされます。
あとはStep3で環境変数を設定してからPyTorchのビルドへ進むのですが、PyTorchのビルド手順にはWe highly recommend installing an Anaconda environment.と書かれており、インストール時にwhich condaとやっている以上Anacondaをインストールしておくことにします。
AnacondaのインストールはダウンロードのページからLinux向けのPython 3.12、64-Bit (x86) Installerを選んで、bash Anaconda3-2024.10-1-Linux-x86_64.shでインストール開始。インストール先はは$HOME/anaconda3になります。condaの自動有効化(auto_activate_base)はとりあえずoffとして(なので使う時はその都度conda activateする)、インストール終了後に$(HOME)/anaconda3/bin/conda init。これにより$(HOME)/.bashrcが書き換えられるので、一旦ログアウトするなどしてから次の作業へ進みます。
あとは(Step3の手順を忘れずに実行してから)PyTorchのIntel GPU Supportの手順に従って進めていきます。PyTorch Prerequisites for Intel GPUs instructions.についてはここまでやってきたことになりますので、この後にあるGet the PyTorch Source以降の作業になります。
apt-get install intel-oclocしていることを確認してから(これが無いとocloc関連のツールが見つからないとエラーになります)、以下の環境変数をexportで設定してからpython setup.py developしました。
- _GLIBCXX_USE_CXX11_ABI=1
- Intel XPU使用時はnew C++ ABI専用になるため
- USE_XPU=1
- 嫌な予感がしたので念のため
- TORCH_XPU_ARCH_LIST="ats-m150"
- Intel Arcを使うため(Lunar Lake内蔵NPUを使う場合はTORCH_XPU_ARCH_LIST="lnl-m"になるかも)
- USE_KINETO=0
- #include <level_zero/layers/zel_tracing_api.h>が見つからないというエラーの回避(intel-level-zero-gpu-devをインストールしても回避できません)
python setup.py developを実行し一晩放置してみたところエラーが出ていたので、再度python setup.py developを実行してみたらFinished processing dependencies for torch==2.6.0a0+gitd622b49と表示されたのですがこれで良いんでしょうかね?PyTorchのビルドと一緒にCaffe2のビルドも行われていますが、使うかどうか分からない物を突っ込まれても…という気もします。
python setup.py cleanでビルド済みのオブジェクトを一掃し、export BUILD_CAFFE2=0やexport BUILD_CAFFE2=OFFを追加してpython setup.py developでやり直してもCaffe2をビルドしようとする状況は変わりません。無効化する方法を探す必要がありそうです(無いのかも)。56.3kg(07:05)
24-Nov-2024補足:Installing Client GPUs on Ubuntu Desktop 24.04 LTSのHowever, if you plan to build PyTorch, install libze-dev and intel-ocloc additionally.にあるように、intel-oclocだけでなくlibze-devのインストールも必要です(libze-devに<level_zero/layers/zel_tracing_api.h>が含まれています)。これによりUSE_KINETO=0の設定を行わずに、エラー無くビルドを終わらせることができています。