はじめに
以前IPEX-LLMを使ってIntel Arc A770でText2Imageを行いました。touch-sp.hatenablog.com
今回はIntel Extension for PyTorchを使ってみます。
github.com
IPEX-LLMと似たようなもので別物のようです。詳細な違いはよくわかりません。
今回使用するIntel Extension for PyTorchの方が開発が活発のようです。
IPEX-LLMの時より環境構築ははるかに簡単です。
PC
2個の環境で動作確認できています。Ubuntu 22.04 Python 3.10 Intel Arc A770
Ubuntu 24.04 Python 3.11 Intel Arc A770
環境構築
Intel OneAPI Basekitのインストールは必要ないようです。グラフィックドライバーのインストール
こちらに従いました。PyTorchのインストール
こちらに従いました。実行
pip install diffusers[torch] pip install transformers peft
from diffusers import AutoPipelineForText2Image import torch import intel_extension_for_pytorch as ipex pipeline = AutoPipelineForText2Image.from_pretrained( "stabilityai/stable-diffusion-xl-base-1.0", variant="fp16", torch_dtype=torch.bfloat16 ).to("xpu") prompt = "an insect robot preparing a delicious meal, anime style" generator = torch.Generator(device="cpu").manual_seed(0) image = pipeline( prompt=prompt, num_inference_steps=25, guidance_scale=7.0, generator=generator, ).images[0] image.save("result.jpg")
結果
モデルのロードを含めて18秒程度で画像が生成されました。モデルのロードを除けば15秒程度でした。