以前書いた記事では、「Ubuntu22.04で、linuxカーネルのビルド」→「pytorchのビルド」と説明しましたが、「Ubuntu22.04で、linuxカーネルのビルド」は必要ないことがわかりました。ごめんなさい。
ですので、記事を書き直します。
では、手順の説明をします。
pytorchのビルドの流れ
- 必要なファイルのインストール
- ドライバとoneAPIのインストール
- ffmpegのインストール
- minicondaのインストール
- pytorchのビルド
以上が、Ubuntu22.04でpytorchのビルドをする流れになります。
必要なファイルのインストール
sudo apt -y update
sudo apt install -y curl
sudo apt install -y build-essential
以前はLinuxカーネルのビルドをするために、必要なファイルはインストールされた状態でしたが、今回はカーネルのビルドはしませんので、上記のファイルを予めインストールしておきます。
ドライバとoneAPIのインストール
まずはドライバのインストール。
#!/bin/bash
# IntelグラフィックスGPG公開キーをインストールする
wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \
sudo gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg
# パッケージリポジトリを構成する
echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | \
sudo tee /etc/apt/sources.list.d/intel-gpu-jammy.list
sudo apt update -y
sudo apt install -y libze1 intel-level-zero-gpu intel-opencl-icd clinfo libze-dev intel-ocloc intel-level-zero-gpu-raytracing
sudo usermod -aG render $USER
sudo usermod -aG video $USER
次にoneAPIのベースツールキットのインストール。
#!/bin/bash
sudo apt update -y
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update -y
sudo apt install -y intel-oneapi-base-toolkit
ffmpegのインストール
どうもtorchvisionのビルドで必要になるようです。
sudo apt install ffmpeg
で良いのでインストールします。
ffmpeg -version
で「–enable-shared」が有効になっていることを確認しましょう。
minicondaのインストール
https://pytorch-extension.intel.com/installation?platform=gpu&version=v2.5.10%2Bxpu&os=linux%2Fwsl2&package=source
これによると、conda環境にてビルドするようにとのことですので、conda環境を構築します。
cd ~
mkdir -p install
cd install
curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh
ずっとenterキーで飛ばしていき、選択肢は「yes」「そのままenter」「no」でインストールを終えます。
echo "export PATH=~/miniconda3/bin:$PATH" >> "$HOME/.bashrc"
echo "source ~/miniconda3/etc/profile.d/conda.sh" >> "$HOME/.bashrc"
source ~/.bashrc
とりあえず、conda環境をアクティベートするための記述です。
次は環境を整えていきます。
#condaを最新にする
conda update -n base -c defaults conda
#conda-forgeをデフォルトチャネルに設定する
conda config --add channels conda-forge
conda config --set channel_priority strict
#conda環境を構築する
conda create -n env_test python=3.10
source activate env_test
conda update --all
stable diffusionはpython3.10で動作しますので、python3.10でビルドするよう整えます。
いよいよpytorchのビルドに
cd ~
mkdir -p pytorch_build
cd pytorch_build
#「.bashrc」に以下を書き込む
echo "source /opt/intel/oneapi/setvars.sh" >> "$HOME/.bashrc"
source ~/.bashrc
上記スクリプトを実行すると、conda環境がdeactivate状態になりますので
source activate env_test
もう一度、activateします。
wget https://github.com/intel/intel-extension-for-pytorch/raw/v2.5.10%2Bxpu/scripts/compile_bundle.sh
ビルドスクリプトをダウンロードして、
bash compile_bundle.sh /opt/intel/oneapi/compiler/latest /opt/intel/oneapi/mkl/latest /opt/intel/oneapi/ccl/latest /opt/intel/oneapi/mpi/latest /opt/intel/oneapi/pti/latest lnl-m 2> >(tee -a error_log.txt >&2)
上記スクリプトでビルド開始です。
ビルドの対象を「Lunar Lake(オプション「lnl-m」)」で。
ビルドが成功すると、「intel-extension-for-pytorch」「audio」「pytorch」「torch-ccl」「vision」の各フォルダに「dist」フォルダが作成されます。
そのなかに、バイナリファイルが作成されているはずですので、それらをubuntu24.10の環境でインストールします。

Ubuntu24.10に移行
pytorchのビルドが成功しwhlファイルができたら、USBメモリでもなんでもいいのでコピーして置きましょう。
ここからはUbuntu24.10でstable-diffusionをインストールしていきます。
手順を説明します。
Ubuntu24.10にstable-diffusionをインストールする流れ
・ドライバとoneAPIのインストール
・pyenvのインストール
・whlファイルのインストール
・stable diffusionのインストール
・whlファイルのインストール
・stable diffusion実行
以上です。
ドライバとoneAPIのインストール
ドライバのインストール。
#!/bin/bash
sudo apt -y update
sudo apt -y install software-properties-common
# Add the intel-graphics PPA for 24.10
sudo add-apt-repository -y ppa:kobuk-team/intel-graphics
# Install the compute-related packages
sudo apt install -y libze-intel-gpu1 libze1 intel-ocloc intel-opencl-icd clinfo intel-gsc
# Install the media-related packages
sudo apt install -y intel-media-va-driver-non-free libmfx1 libmfx-gen1 libvpl2 libvpl-tools libva-glx2 va-driver-all vainfo intel-level-zero-gpu-raytracing
sudo usermod -aG render $USER
sudo usermod -aG video $USER
oneAPIベースツールキットのインストール。
#!/bin/bash
sudo apt update -y
wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null
echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt update -y
sudo apt install -y intel-oneapi-base-toolkit
pyenvのインストール
ubuntu24.10は標準でpython3.12.8がインストールされていますが、これではstable diffusionは動きませんので、pyenvを用意します。
#!/bin/bash
sudo apt install git build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
cd ~/.pyenv && src/configure && make -C src
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc
pyenv install 3.10.16
pyenvのインストールが終わったら、
cd ~
mkdir -p AI_ARC
cd AI_ARC
pyenv local 3.10.16
フォルダの名前は、自分は「AI_ARC」にしてますけど別に何でもいいです。
pyenvのpythonバージョンは3.10.16にしてますけど「3.10」ならなんでも大丈夫でしょう。
whlファイルのインストール
先程コピーしたwhlファイルをインストールしていきます。
カレントディレクトリは「AI_ARC」になっていると思います。
そうしたらそのまま
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
上記スクリプトでstable diffusionをインストールします。そのフォルダのなかに先程完成した5つのwhlファイルをペーストします。

見た目がよろしくありませんが、気にせずに先へ進みましょう。
cd ./stable-diffusion-webui
sudo apt install git python3 python3-pip python3-venv
python3 -m venv venv
source ./venv/bin/activate
で,仮想環境を構築して
pip install ./intel_extension_for_pytorch-2.5.10+git2bca097-cp310-cp310-linux_x86_64.whl ./oneccl_bind_pt-2.5.0+xpu-cp310-cp310-linux_x86_64.whl ./torch-2.5.0a0+gita8d6afb-cp310-cp310-linux_x86_64.whl ./torchaudio-2.5.1a0+1661daf-cp310-cp310-linux_x86_64.whl ./torchvision-0.20.1a0+3ac97aa-cp310-cp310-linux_x86_64.whl
上記スクリプトでwhlファイルのインストール。
ただし、ファイル名はビルドした時期によって異なりますので、適宜変更してください。
済みましたら、
./webui.sh --use-ipex
で実行。

プロンプト「beach」のみで生成。
「v1-5-pruned-emaonly.safetensors」って著作権的にどうなんですかね。
問題があったら修正します。
とりあえず動作したときの画像です。

ハローアスカベンチの結果です。
Windowsとあまり変わらないですね。
pytorchのビルドにものすごく時間がかかる上に何度も失敗しますので、時間と気力のある方向けの情報です。
よかったら活用してみてください。
追記
「セグメンテーションフォルト」などと表示されて、どうしてもビルドに失敗する人は、メモリの設定に注目してください。
巷には「DDR5-5600」や「DDR5-6000」などというメモリが売られています。
そういう自分も「CrucialPro DDR5-6000 24GB x 2」という構成で「DDR5-6000」で動作させていましたが、どうにも失敗が続くので、「DDR5-4800」で試してみたところ、うまくいった経緯があります。
「DDR4」の場合はあまり聞いたことはありませんが、どうなんでしょう?
いろいろ手を尽くしてもできなかった時に思い出してください。
それでもダメな場合は・・・。
あきらめて、正式な対応を待ちましょう。
できないものはしかたありません。
追記2
https://mega.nz/folder/YGMxCBpZ#ldPu-OHAzeXH-2cb37H3gQ
上記リンクから「私の環境で」ビルドしたpytorchのバイナリファイルをダウンロードできます。
どうしてもビルドできない場合、試してみてください。
動作の保証はもちろんできません。
手順は「whlファイルのインストール」のところと同じです。
追記3
intel ARC B580でComfyUIを動作させる(Ubuntu編)
ComfyUIの動作もできました。
動画の生成がやりたい方は、こちらをどうぞ。
コメント