|
|
| (8 intermediate revisions by the same user not shown) |
| Line 19: |
Line 19: |
|
| |
|
| <syntaxhighlight lang="bash"> | | <syntaxhighlight lang="bash"> |
| # install required headers
| | sudo apt install libvulkan-dev glslc spirv-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 -G Ninja \ | | cmake -B build/vulkan -G Ninja \ |
| -DGGML_SYCL=ON \ | | -DCMAKE_BUILD_TYPE=Release \ |
| -DGGML_SYCL_TARGET=INTEL \
| | -DGGML_VULKAN=ON \ |
| -DGGML_SYCL_DNN=ON \ | | -DGGML_NATIVE=ON \ |
| -DGGML_SYCL_F16=ON \ | | -DGGML_VULKAN_CHECK_RESULTS=OFF \ |
| -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_BUILD_TYPE=Release \ |
| -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" | | -DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib" |
|
| |
|
| # build | | # build |
| # !!! don't use option --parallel
| | cmake --build build/vulkan --parallel |
| cmake --build build/sycl --parallel | |
|
| |
|
| # install | | # install |
| cmake --install build/sycl --prefix ~/llama.cpp/sycl | | cmake --install build/vulkan --prefix ~/llama.cpp/vulkan |
|
| |
|
| # clean | | # clean |
| rm -rf build-sycl | | rm -rf build |
|
| |
|
| # test GPU | | # test GPU |
| cd ~/llama.cpp/sycl/bin | | cd ~/llama.cpp/vulkan/bin |
| ./llama-cli --list-devices | | ./llama-cli --list-devices |
| </syntaxhighlight> | | </syntaxhighlight> |
| Line 61: |
Line 50: |
| 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> | | </pre> |
|
| |
| TODO: optimized
| |
|
| |
| <syntaxhighlight lang="bash">
| |
| cmake -B build/sycl -G Ninja \
| |
| -DGGML_SYCL=ON \
| |
| -DGGML_SYCL_TARGET=INTEL \
| |
| -DGGML_SYCL_DNN=ON \
| |
| -DGGML_SYCL_F16=ON \
| |
| -DGGML_SYCL_DEVICE_ARCH=bmg-g31 \
| |
| -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" \
| |
| -DGGML_SYCL_TURBO_QUANT=OFF
| |
|
| |
| # some warnings appeared
| |
| cmake -B build/sycl -G Ninja \
| |
| -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>
| |
|
| |
| == References ==
| |
|
| |
| https://sergiiob.dev/posts/intel-arc-pro-b70-full-recipe-llama-cpp-sycl/
| |
Download source
sudo apt install git cmake
sudo apt install libssl-dev openssl
mkdir -p ~/llama.cpp/src
git clone https://github.com/TheTom/llama-cpp-turboquant ~/llama.cpp/src-tbq
List available options
grep -rn "option(GGML_SYCL" CMakeLists.txt ggml/CMakeLists.txt
grep -rn "SYCL" CMakeLists.txt ggml/CMakeLists.txt
Build
sudo apt install libvulkan-dev glslc spirv-headers
# set options
cmake -B build/vulkan -G Ninja \
-DCMAKE_BUILD_TYPE=Release \
-DGGML_VULKAN=ON \
-DGGML_NATIVE=ON \
-DGGML_VULKAN_CHECK_RESULTS=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_RPATH="\$ORIGIN/../lib"
# build
cmake --build build/vulkan --parallel
# install
cmake --install build/vulkan --prefix ~/llama.cpp/vulkan
# clean
rm -rf build
# test GPU
cd ~/llama.cpp/vulkan/bin
./llama-cli --list-devices
Got It!
Available devices:
SYCL0: Intel(R) Arc(TM) Pro B70 Graphics (32656 MiB, 32128 MiB free)