Vulkanインストール
こちらの通りにしました。wget -qO - https://packages.lunarg.com/lunarg-signing-key-pub.asc | sudo apt-key add - sudo wget -qO /etc/apt/sources.list.d/lunarg-vulkan-1.4.304-noble.list https://packages.lunarg.com/vulkan/1.4.304/lunarg-vulkan-1.4.304-noble.list sudo apt update sudo apt install vulkan-sdk
確認方法
vulkaninfo | grep deviceName
GOのインストール
こちらの通りにしました。確認方法(再起動が必要)
go version
Ollamaのビルド
こちらの通りにしました。事前準備
sudo apt install git cmake build-essential libcap-dev
ビルド
git clone https://github.com/Dts0/ollama -b vulkan --depth 1 cd ollama # Build for CPU cmake --preset CPU cmake --build --parallel --preset CPU cmake --install build --component CPU --strip # Build for Vulkan cmake --preset Vulkan cmake --build --parallel --preset Vulkan cmake --install build --component Vulkan --strip # Build Ollama binary go build -trimpath -buildmode=pie -o dist/bin/ollama
実行
cd ollama/dist/bin sudo ./ollama serve
この後は別のターミナルを立ち上げるとollamaが使えます。
cd ollama/dist/bin ./ollama run phi4
モデルの保存先は以下になっていました。
/root/.ollama/models
結果
phi4を実行したときの結果です。確かにGPUが使われています。
llm_load_tensors: offloading 40 repeating layers to GPU llm_load_tensors: offloading output layer to GPU llm_load_tensors: offloaded 41/41 layers to GPU
ベンチマーク
使用したPCはこちらです。プロセッサ Intel(R) Core(TM) i7-11700 実装 RAM 64.0 GB GPU Intel Arc A770 (VRAM 16GB)
こちらの記事と同じ方法でベンチマークを取ってみました。
touch-sp.hatenablog.com
tokens per second: 10.01 tokens/second
残念ながら全く同じPCでipex-llm + oneAPIを使った時の半分以下の速度しか出せませんでした。