2026年03月15日 llama.cpp + qwen3.5 small + SYCL(level_zero:gpu) on Slackware64-current(i7-1195G7) [長年日記]
_ Intel(R) Graphics Compute Runtime for oneAPI Level Zero and OpenCL(TM) Driver
インテルのサイト(https://github.com/intel/compute-runtime/releases/tag/26.05.37020.3/)からdeb形式のバイナリを取得する。
$ mkdir neo $ cd neo $ wget https://github.com/intel/intel-graphics-compiler/releases/download/v2.28.4/intel-igc-core-2_2.28.4+20760_amd64.deb $ wget https://github.com/intel/intel-graphics-compiler/releases/download/v2.28.4/intel-igc-opencl-2_2.28.4+20760_amd64.deb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/intel-ocloc-dbgsym_26.05.37020.3-0_amd64.ddeb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/intel-ocloc_26.05.37020.3-0_amd64.deb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/intel-opencl-icd-dbgsym_26.05.37020.3-0_amd64.ddeb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/intel-opencl-icd_26.05.37020.3-0_amd64.deb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/libigdgmm12_22.9.0_amd64.deb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/libze-intel-gpu1-dbgsym_26.05.37020.3-0_amd64.ddeb $ wget https://github.com/intel/compute-runtime/releases/download/26.05.37020.3/libze-intel-gpu1_26.05.37020.3-0_amd64.deb
rootに成って、*.deb、*.ddebを展開する。
# for f in *.deb *.ddeb; do # ar x $f # tar xf data.tar.* # rm -f data.tar.* # done
格納先のディレクトリ(/opt/intel/compute-runtime)を作り、「etc」「usr」をコピーする。
# mkdir /opt/intel/compute-runtime # cp -r etc /opt/intel/compute-runtime/ # cp -r usr /opt/intel/compute-runtime/
/etc/ld.so.conf.d/intel-compute-runtime.conf を作成する。
/opt/intel/compute-runtime/usr/local/lib /opt/intel/compute-runtime/usr/lib/x86_64-linux-gnu /opt/intel/compute-runtime/usr/lib/x86_64-linux-gnu/intel-opencl
/opt/intel/compute-runtime/etc/OpenCL/vendors/intel.icd を修正する。
/opt/intel/compute-runtime/usr/lib/x86_64-linux-gnu/intel-opencl/libigdrcl.so
intel.icd のシンボリックリンクをはる。
# cd /etc/OpenCL/vendors/ # ln -s /opt/intel/compute-runtime/etc/OpenCL/vendors/intel.icd .
_ Intel® oneAPI Base Toolkit
インテルのサイト(https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html)からインストーラーシェルスクリプト(intel-oneapi-base-toolkit-2025.3.1.36_offline.sh)をダウンロードし、rootで実行する。 /opt/intel/oneapi/配下にインストールされる。
# chmod +x intel-oneapi-base-toolkit-2025.3.1.36_offline.sh # ./intel-oneapi-base-toolkit-2025.3.1.36_offline.sh
_ oneAPI Level Zero
github(https://github.com/oneapi-src/level-zero/releases/)より、deb形式のバイナリーを取得する。
$ wget https://github.com/oneapi-src/level-zero/releases/download/v1.28.0/level-zero_1.28.0+u24.04_amd64.deb
rootに成って、*.debを展開する。
# ar x level-zero_1.28.0+u24.04_amd64.deb # tar xvf data.tar.gz
格納先のディレクトリ(/opt/intel/level-zero/1.28.0)を作り、「usr」をコピーする。
# mkdir /opt/intel/level-zero # mkdir /opt/intel/level-zero/1.28.0 # cp -r usr /opt/intel/level-zero/1.28.0/
/etc/ld.so.conf.d/intel-compute-runtime.conf に設定行を追加する。
# echo /opt/intel/level-zero/1.28.0/usr/lib/x86_64-linux-gnu >>/etc/ld.so.conf.d/intel-compute-runtime.conf
追加したライブラリをOSに認識させる。
# ldconfig -v
ここまでの作業でlevel_zero:gpuを認識するか確認する。
$ source /opt/intel/oneapi/setvars.sh :: initializing oneAPI environment ... bash: BASH_VERSION = 5.3.9(1)-release args: Using "$@" for setvars.sh arguments: :: advisor -- latest :: ccl -- latest :: compiler -- latest :: dal -- latest :: debugger -- latest :: dev-utilities -- latest :: dnnl -- latest :: dpcpp-ct -- latest :: dpl -- latest :: ipp -- latest :: ippcp -- latest :: mkl -- latest :: mpi -- latest :: tbb -- latest :: umf -- latest :: vtune -- latest :: oneAPI environment initialized :: $ sycl-ls [level_zero:gpu][level_zero:0] Intel(R) oneAPI Unified Runtime over Level-Zero, Intel(R) Iris(R) Xe Graphics 12.0.0 [1.14.37020+3] [opencl:cpu][opencl:0] Intel(R) OpenCL, 11th Gen Intel(R) Core(TM) i7-1195G7 @ 2.90GHz OpenCL 3.0 (Build 0) [2026.20.1.0.12_160000] [opencl:gpu][opencl:1] Intel(R) OpenCL Graphics, Intel(R) Iris(R) Xe Graphics OpenCL 3.0 NEO [26.05.37020.3]
_ モデル(Qwen3.5-9B-GGUF 90億パラメータ,量子化4bit)の取得
生成AIモデルをHugging Face(https://huggingface.co/unsloth/Qwen3.5-9B-GGUF)から取得し、~/AI/models/Qwen3.5-4B-Q4_K_M.ggufに格納。
_ llama.cpp
github(https://github.com/ggml-org/llama.cpp/releases/)から最新版ソースを取得しビルドする。
$ tar xvf llama.cpp-b8352.tar.gz
$ cd llama.cpp-b8352
$ source /opt/intel/oneapi/setvars.sh
$ cmake -B build \
-DCMAKE_BUILD_TYPE=Release \
-DGGML_SYCL=ON \
-DGGML_NATIVE=ON \
-DGGML_LTO=ON \
-DGGML_AVX2=ON \
-DGGML_FMA=ON \
-DGGML_F16C=ON \
-DGGML_OPENMP=ON \
-DGGML_SYCL_F16=ON \
-DCMAKE_C_COMPILER=icx \
-DCMAKE_CXX_COMPILER=icpx \
-DGGML_SYCL_TARGET=INTEL
$ cmake --build build --config Release -j $(nproc) -v
ビルドしたOpenAIプロトコル互換のサーバを起動する。
$ cd build/bin
$ export SYCL_DEVICE_FILTER=level_zero:gpu
$ export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
$ export ZES_ENABLE_SYSMAN=1
$ export GGML_SYCL_ENABLE_FLASH_ATTN=1
$ ./llama-server -m ~/AI/models/Qwen3.5-9B-Q4_K_M.gguf \
--host 192.168.0.3 \
--ctx-size 8192 \
--threads 8 \
--n-gpu-layers 99 \
--temp 0.7 \
--top-p 0.8 \
--top-k 20 \
--min-p 0.00 \
--presence-penalty 0.6 \
--repeat-penalty 1.0 \
--chat-template-kwargs '{"enable-thinking": false}' \
--reasoning-budget 0