LM/llama.cpp for SYCL: Difference between revisions

From Fundamental Ramen
< LM
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 12: Line 12:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
grep -rn "option(GGML_SYCL" CMakeLists.txt ggml/CMakeLists.txt
grep -rn "option(GGML_SYCL" CMakeLists.txt ggml/CMakeLists.txt
grep -rn "SYCL" CMakeLists.txt ggml/CMakeLists.txt
</syntaxhighlight>
</syntaxhighlight>


Line 17: Line 18:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# install required headers
sudo apt install -y \
  intel-oneapi-mkl-devel \
  intel-oneapi-dnnl-devel \
  intel-oneapi-mkl-sycl-distributed-dft-devel \
  intel-oneapi-compiler-dpcpp-cpp \
  libze-dev
# set options
# set options
cmake -B build-sycl \
cmake -B build-sycl \
Line 23: Line 32:
   -DGGML_SYCL_DNN=ON \
   -DGGML_SYCL_DNN=ON \
   -DGGML_SYCL_F16=ON \
   -DGGML_SYCL_F16=ON \
  -DGGML_SYCL_DEVICE_ARCH=bmg-g31 \
   -DMKL_DIR=/opt/intel/oneapi/mkl/latest/lib/cmake/mkl \
   -DMKL_DIR=/opt/intel/oneapi/mkl/latest/lib/cmake/mkl \
   -DCMAKE_C_COMPILER=icx \
   -DCMAKE_C_COMPILER=icx \
Line 30: Line 40:


# build
# build
cmake -B build-sycl --config Release
# !!! don't use option --parallel
cmake --build build-sycl


# Install
# install
cmake --install build-sycl --prefix ~/llama.cpp/sycl
cmake --install build-sycl --prefix ~/llama.cpp/sycl


# clean
# clean
cmake -B build-sycl --target clean
rm -rf build-sycl


# test GPU
# test GPU
Line 48: Line 59:
Available devices:
Available devices:
   SYCL0: Intel(R) Arc(TM) Pro B70 Graphics (32656 MiB, 32128 MiB free)
   SYCL0: Intel(R) Arc(TM) Pro B70 Graphics (32656 MiB, 32128 MiB free)
</pre>
TODO: optimized
<syntaxhighlight lang="bash">
cmake -B build-sycl \
  -DGGML_SYCL=ON \
  -DGGML_SYCL_TARGET=INTEL \
  -DGGML_SYCL_DNN=ON \
  -DGGML_SYCL_F16=ON \
  -DGGML_SYCL_DEVICE_ARCH=bmg-g31 \
  -DGGML_LTO=ON \
  -DGGML_NATIVE=ON \
  -DMKL_DIR=/opt/intel/oneapi/mkl/latest/lib/cmake/mkl \
  -DCMAKE_C_COMPILER=icx \
  -DCMAKE_CXX_COMPILER=icpx \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" \
  -DCMAKE_CXX_FLAGS="-ffast-math -O3" \
  -DCMAKE_C_FLAGS="-ffast-math -O3"
</syntaxhighlight>
== Run ==
'''.bashrc'''
<syntaxhighlight lang="bash">
export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
export ZES_ENABLE_SYSMAN=1
</syntaxhighlight>
== List all oneAPI header packages ==
<syntaxhighlight lang="bash">
# list name only
apt list "intel-oneapi-*-devel"
# list name & description
apt search --names-only "^intel-oneapi-.+-devel$"
</syntaxhighlight>
<pre>
正在列出... 完成
intel-oneapi-ccl-devel/all 2022.1.1-3 amd64
intel-oneapi-daal-devel/all 2021.5.3-832 amd64
intel-oneapi-dal-devel/all 2026.1.0-7 amd64
intel-oneapi-dnnl-devel/all,now 2026.0.2-40 amd64 [已安裝]
intel-oneapi-ipp-devel/all 2026.0.1-51 amd64
intel-oneapi-ippcp-devel/all 2026.0.1-9 amd64
intel-oneapi-ishmem-devel/all 1.6.0-223 amd64
intel-oneapi-libdpstd-devel/all 2022.13.0-107 amd64
intel-oneapi-mkl-classic-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-cluster-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-core-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-devel/all,now 2026.1.0-236 amd64 [已安裝]
intel-oneapi-mkl-sycl-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-sycl-distributed-dft-devel/all,now 2026.1.0-236 amd64 [已安裝]
intel-oneapi-mpi-devel/all 2021.18.1-9 amd64
intel-oneapi-onevpl-devel/all 2023.1.0-43488 amd64
intel-oneapi-tbb-devel/all 2023.1.0-151 amd64
</pre>
</pre>



Latest revision as of 17:53, 13 August 2026

Download source

sudo apt install git cmake
sudo apt install libssl-dev openssl
mkdir -p ~/llama.cpp/src
git clone https://github.com/ggerganov/llama.cpp ~/llama.cpp/src

List available options

grep -rn "option(GGML_SYCL" CMakeLists.txt ggml/CMakeLists.txt
grep -rn "SYCL" CMakeLists.txt ggml/CMakeLists.txt

Build

# install required headers
sudo apt install -y \
  intel-oneapi-mkl-devel \
  intel-oneapi-dnnl-devel \
  intel-oneapi-mkl-sycl-distributed-dft-devel \
  intel-oneapi-compiler-dpcpp-cpp \
  libze-dev

# set options
cmake -B build-sycl \
  -DGGML_SYCL=ON \
  -DGGML_SYCL_TARGET=INTEL \
  -DGGML_SYCL_DNN=ON \
  -DGGML_SYCL_F16=ON \
  -DGGML_SYCL_DEVICE_ARCH=bmg-g31 \
  -DMKL_DIR=/opt/intel/oneapi/mkl/latest/lib/cmake/mkl \
  -DCMAKE_C_COMPILER=icx \
  -DCMAKE_CXX_COMPILER=icpx \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib"

# build
# !!! don't use option --parallel
cmake --build build-sycl

# install 
cmake --install build-sycl --prefix ~/llama.cpp/sycl

# clean
rm -rf build-sycl

# test GPU
cd ~/llama.cpp/sycl/bin
./llama-cli --list-devices

Got It!

Available devices:
  SYCL0: Intel(R) Arc(TM) Pro B70 Graphics (32656 MiB, 32128 MiB free)

TODO: optimized

cmake -B build-sycl \
  -DGGML_SYCL=ON \
  -DGGML_SYCL_TARGET=INTEL \
  -DGGML_SYCL_DNN=ON \
  -DGGML_SYCL_F16=ON \
  -DGGML_SYCL_DEVICE_ARCH=bmg-g31 \
  -DGGML_LTO=ON \
  -DGGML_NATIVE=ON \
  -DMKL_DIR=/opt/intel/oneapi/mkl/latest/lib/cmake/mkl \
  -DCMAKE_C_COMPILER=icx \
  -DCMAKE_CXX_COMPILER=icpx \
  -DCMAKE_BUILD_TYPE=Release \
  -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" \
  -DCMAKE_CXX_FLAGS="-ffast-math -O3" \
  -DCMAKE_C_FLAGS="-ffast-math -O3"

Run

.bashrc

export SYCL_PI_LEVEL_ZERO_USE_IMMEDIATE_COMMANDLISTS=1
export ZES_ENABLE_SYSMAN=1

List all oneAPI header packages

# list name only
apt list "intel-oneapi-*-devel"

# list name & description
apt search --names-only "^intel-oneapi-.+-devel$"
正在列出... 完成
intel-oneapi-ccl-devel/all 2022.1.1-3 amd64
intel-oneapi-daal-devel/all 2021.5.3-832 amd64
intel-oneapi-dal-devel/all 2026.1.0-7 amd64
intel-oneapi-dnnl-devel/all,now 2026.0.2-40 amd64 [已安裝]
intel-oneapi-ipp-devel/all 2026.0.1-51 amd64
intel-oneapi-ippcp-devel/all 2026.0.1-9 amd64
intel-oneapi-ishmem-devel/all 1.6.0-223 amd64
intel-oneapi-libdpstd-devel/all 2022.13.0-107 amd64
intel-oneapi-mkl-classic-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-cluster-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-core-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-devel/all,now 2026.1.0-236 amd64 [已安裝]
intel-oneapi-mkl-sycl-devel/all 2026.1.0-236 amd64
intel-oneapi-mkl-sycl-distributed-dft-devel/all,now 2026.1.0-236 amd64 [已安裝]
intel-oneapi-mpi-devel/all 2021.18.1-9 amd64
intel-oneapi-onevpl-devel/all 2023.1.0-43488 amd64
intel-oneapi-tbb-devel/all 2023.1.0-151 amd64

References

https://sergiiob.dev/posts/intel-arc-pro-b70-full-recipe-llama-cpp-sycl/