Compile bug: Vulkan Cross compile for arm64
Git commit
dc39a5e7a84815a90fa0c515ed8927870cf858c9
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