Git commit
[uccaoke@vind2 llama.cpp]$ git rev-parse HEAD
f44f793
Operating systems
Linux
GGML backends
zDNN
Problem description & steps to reproduce
I'm trying to compile llama.cpp on an IBM LinuxONE system running AlmaLinux 9.x with zDNN installed (from DNF). I've successfully compiled + linked other software with zDNN but when I try to build Llama.cpp I get the following link errors when trying to link libggml-zdnn.so into executables:
[ 28%] Linking CXX executable ../bin/test-tokenizer-0
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_get_nnpa_max_dim_idx_size()'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_init_pre_transformed_desc(zdnn_data_layouts, zdnn_data_types, zdnn_tensor_desc*, ...)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_is_nnpa_installed()'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_matmul_transpose_op(zdnn_ztensor const*, zdnn_ztensor const*, zdnn_ztensor const*, bool, bool, zdnn_matmul_ops, zdnn_ztensor*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_generate_transformed_desc(zdnn_tensor_desc const*, zdnn_tensor_desc*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_free_ztensor_buffer(zdnn_ztensor const*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_init_ztensor_with_malloc(zdnn_tensor_desc*, zdnn_tensor_desc*, zdnn_ztensor*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_transform_ztensor(zdnn_ztensor*, ...)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_transform_origtensor(zdnn_ztensor const*, void*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_is_nnpa_parmblk_fmt_installed(int, ...)'
collect2: error: ld returned 1 exit status
gmake[2]: *** [tests/CMakeFiles/test-tokenizer-0.dir/build.make:104: bin/test-tokenizer-0] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1917: tests/CMakeFiles/test-tokenizer-0.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
The cmake configure line I'm using is:
cmake -S . -B build_zdnn -DCMAKE_BUILD_TYPE=Release -DGGML_ZDNN=ON
zDNN is in /usr/lib64/libzdnn.so (and .a etc), the -devel packages for it are installed.
[uccaoke@vind2 llama.cpp]$ rpm -qa | grep zdnn
libzdnn-1.1.1-1.el9.s390x
libzdnn-devel-1.1.1-1.el9.s390x
libzdnn-static-1.1.1-1.el9.s390x
I suspect I need to modify some of the cmake stuff so that it explicitly links the libzdnn.so into executables but I'm not a cmake expert so not sure where to start? Any pointers would be appreciated!
First Bad Commit
No response
Compile command
cmake -S . -B build_zdnn -DCMAKE_BUILD_TYPE=Release -DGGML_ZDNN=ON
cmake --build build_zdnn --config Release
Relevant log output
[ 28%] Linking CXX executable ../bin/test-tokenizer-0
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_get_nnpa_max_dim_idx_size()'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_init_pre_transformed_desc(zdnn_data_layouts, zdnn_data_types, zdnn_tensor_desc*, ...)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_is_nnpa_installed()'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_matmul_transpose_op(zdnn_ztensor const*, zdnn_ztensor const*, zdnn_ztensor const*, bool, bool, zdnn_matmul_ops, zdnn_ztensor*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_generate_transformed_desc(zdnn_tensor_desc const*, zdnn_tensor_desc*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_free_ztensor_buffer(zdnn_ztensor const*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_init_ztensor_with_malloc(zdnn_tensor_desc*, zdnn_tensor_desc*, zdnn_ztensor*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_transform_ztensor(zdnn_ztensor*, ...)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_transform_origtensor(zdnn_ztensor const*, void*)'
/usr/bin/ld: ../bin/libggml-zdnn.so: undefined reference to `zdnn_is_nnpa_parmblk_fmt_installed(int, ...)'
collect2: error: ld returned 1 exit status
gmake[2]: *** [tests/CMakeFiles/test-tokenizer-0.dir/build.make:104: bin/test-tokenizer-0] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:1917: tests/CMakeFiles/test-tokenizer-0.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
Git commit
[uccaoke@vind2 llama.cpp]$ git rev-parse HEAD
f44f793
Operating systems
Linux
GGML backends
zDNN
Problem description & steps to reproduce
I'm trying to compile llama.cpp on an IBM LinuxONE system running AlmaLinux 9.x with zDNN installed (from DNF). I've successfully compiled + linked other software with zDNN but when I try to build Llama.cpp I get the following link errors when trying to link
libggml-zdnn.sointo executables:The cmake configure line I'm using is:
zDNN is in
/usr/lib64/libzdnn.so(and.aetc), the-develpackages for it are installed.I suspect I need to modify some of the cmake stuff so that it explicitly links the
libzdnn.sointo executables but I'm not a cmake expert so not sure where to start? Any pointers would be appreciated!First Bad Commit
No response
Compile command
cmake -S . -B build_zdnn -DCMAKE_BUILD_TYPE=Release -DGGML_ZDNN=ON cmake --build build_zdnn --config ReleaseRelevant log output