Description
Git commit
Operating systems
Linux
GGML backends
Vulkan
Problem description & steps to reproduce
When I try to cross compile llama.cpp with vulkan backend support on x86-64 ubuntu, and the cmd as below:
cmake -DGGML_OPENMP=OFF -DGGML_LLAMAFILE=OFF -DGGML_VULKAN=ON -DVulkan_LIBRARY=/home/andy/sysroot/usr/lib/aarch64-linux-gnu/libvulkan.so -DVulkan_INCLUDE_DIR=/home/andy/sysroot/usr/include -DVulkan_GLSLC_EXECUTABLE=/home/andy/andywork/sdk-android/Sdk/ndk/25.1.8937393/shader-tools/linux-x86_64/glslc -DBUILD_SHARED_LIBS=OFF -DCMAKE_SYSROOT=/home/andy/sysroot -DCMAKE_C_COMPILER=/home/andy/tools/gcc/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc -DCMAKE_CXX_COMPILER=/home/andy/tools/gcc/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ -DGGML_NATIVE=OFF -DGGML_AVX=off -DGGML_AVX2=off -DGGML_AVX512=off -DGGML_FMA=off -DGGML_F16C=off -DGGML_CPU_ARM_ARCH=armv9-a+sve -DCMAKE_SYSTEM_PROCESSOR=armv9-a -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_NAME=Linux ..
But I think the glslc check logic is not solid in the cmd above, since the glslc is from x86,which cannot get the features for the taeget arm64 soc gpu env.
So if we can add a cross compile check and use some build args for this?
First Bad Commit
No response
Compile command
cmake -DGGML_OPENMP=OFF -DGGML_LLAMAFILE=OFF -DGGML_VULKAN=ON -DVulkan_LIBRARY=/home/andy/sysroot/usr/lib/aarch64-linux-gnu/libvulkan.so -DVulkan_INCLUDE_DIR=/home/andy/sysroot/usr/include -DVulkan_GLSLC_EXECUTABLE=/home/andy/andywork/sdk-android/Sdk/ndk/25.1.8937393/shader-tools/linux-x86_64/glslc -DBUILD_SHARED_LIBS=OFF -DCMAKE_SYSROOT=/home/andy/sysroot -DCMAKE_C_COMPILER=/home/andy/tools/gcc/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gcc -DCMAKE_CXX_COMPILER=/home/andy/tools/gcc/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/arm-gnu-toolchain-12.3.rel1-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-g++ -DGGML_NATIVE=OFF -DGGML_AVX=off -DGGML_AVX2=off -DGGML_AVX512=off -DGGML_FMA=off -DGGML_F16C=off -DGGML_CPU_ARM_ARCH=armv9-a+sve -DCMAKE_SYSTEM_PROCESSOR=armv9-a -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_NAME=Linux ..
Relevant log output
-- Found Vulkan: /home/andy/cix-linux-master-debian/output/cix_evb/sysroot/usr/lib/aarch64-linux-gnu/libvulkan.so (found version "1.3.239") found components: glslc glslangValidator
-- Vulkan found
-- GL_KHR_cooperative_matrix not supported by glslc
-- GL_NV_cooperative_matrix2 not supported by glslc
-- GL_EXT_integer_dot_product not supported by glslc