char-fork/llama.cpp
git clone https://git.t4t.associates/char-fork/llama.cpp
bf0040e15
char/aliceai-t5-moe
1ggml_add_backend_library ( ggml-zendnn 2ggml-zendnn.cpp ) 3 4if ( NOT DEFINED ZENDNN_ROOTOR ZENDNN_ROOTSTREQUAL "" ) 5set ( ZENDNN_ROOT " $ ENV { ZENDNN_ROOT } " ) 6endif () 7 8if ( BUILD_SHARED_LIBS) 9set ( ZENDNN_SHARED_LIB ON ) 10set ( ZENDNN_ARCHIVE_LIB OFF ) 11else () 12set ( ZENDNN_SHARED_LIB OFF ) 13set ( ZENDNN_ARCHIVE_LIB ON ) 14endif () 15 16# Download and build ZenDNN if not provided 17if ( NOT ZENDNN_ROOTOR ZENDNN_ROOTSTREQUAL "" OR ZENDNN_ROOTSTREQUAL "OFF" ) 18message ( STATUS "ZENDNN_ROOT not set. Automatically downloading and building ZenDNN..." ) 19message ( STATUS "This will take several minutes on first build..." ) 20 21include ( ExternalProject ) 22 23set ( ZENDNN_PREFIX ${ CMAKE_BINARY_DIR } /_deps/zendnn-prefix ) 24set ( ZENDNN_SOURCE_DIR ${ ZENDNN_PREFIX } /src/zendnn ) 25set ( ZENDNN_BUILD_DIR ${ ZENDNN_PREFIX } /build ) 26set ( ZENDNN_INSTALL_DIR ${ ZENDNN_BUILD_DIR } /install ) 27 28ExternalProject_Add ( 29zendnn 30GIT_REPOSITORY https://github.com/amd/ZenDNN.git 31GIT_TAG 1f399a75cc0993778374a51bea49b64a57879595 # ZenDNN-2026-WW28 32PREFIX ${ ZENDNN_PREFIX } 33SOURCE_DIR ${ ZENDNN_SOURCE_DIR } 34BINARY_DIR ${ ZENDNN_BUILD_DIR } 35CMAKE_ARGS 36-DCMAKE_BUILD_TYPE=Release 37-DCMAKE_INSTALL_PREFIX= ${ ZENDNN_INSTALL_DIR } 38-DZENDNNL_BUILD_EXAMPLES=OFF 39-DZENDNNL_BUILD_DOXYGEN=OFF 40-DZENDNNL_BUILD_GTEST=OFF 41-DZENDNNL_BUILD_BENCHDNN=OFF 42-DZENDNNL_DEPENDS_FBGEMM=OFF 43-DZENDNNL_LIB_BUILD_ARCHIVE= ${ ZENDNN_ARCHIVE_LIB } 44-DZENDNNL_LIB_BUILD_SHARED= ${ ZENDNN_SHARED_LIB } 45-DZENDNNL_DEPENDS_AOCLDLP=ON 46-DZENDNNL_DEPENDS_ONEDNN=ON 47-DZENDNNL_DEPENDS_LIBXSMM=ON 48BUILD_COMMAND ${ CMAKE_COMMAND } --build ${ ZENDNN_BUILD_DIR } --target zendnnl 49INSTALL_COMMAND ${ CMAKE_COMMAND } --build ${ ZENDNN_BUILD_DIR } --target install 50BUILD_ALWAYS OFF 51LOG_DOWNLOAD ON 52LOG_CONFIGURE ON 53LOG_BUILD ON 54LOG_INSTALL ON 55) 56 57add_dependencies ( ggml-zendnn zendnn ) 58set ( ZENDNN_ROOT ${ ZENDNN_INSTALL_DIR }) 59message ( STATUS "ZenDNN will be built to: ${ ZENDNN_ROOT } " ) 60else () 61message ( STATUS "Using custom ZenDNN installation at: ${ ZENDNN_ROOT } " ) 62endif () 63 64target_include_directories ( ggml-zendnn PRIVATE 65${ ZENDNN_ROOT } /zendnnl/include 66${ ZENDNN_ROOT } /deps/json/include 67${ ZENDNN_ROOT } /deps/aoclutils/include 68${ ZENDNN_ROOT } /deps/aocldlp/include 69${ ZENDNN_ROOT } /deps/onednn/include 70${ ZENDNN_ROOT } /deps/libxsmm/include ) 71 72if ( ZENDNN_SHARED_LIB) 73target_link_directories ( ggml-zendnn PRIVATE ${ ZENDNN_ROOT } /zendnnl/lib ) 74target_link_libraries ( ggml-zendnn PRIVATE zendnnl ) 75elseif ( ZENDNN_ARCHIVE_LIB) 76target_link_libraries ( ggml-zendnn PRIVATE 77${ ZENDNN_ROOT } /zendnnl/lib/libzendnnl_archive.a 78${ ZENDNN_ROOT } /deps/aoclutils/ ${ CMAKE_INSTALL_LIBDIR } /libaoclutils.a 79${ ZENDNN_ROOT } /deps/aoclutils/ ${ CMAKE_INSTALL_LIBDIR } /libau_cpuid.a 80${ ZENDNN_ROOT } /deps/aocldlp/lib/libaocl-dlp.a 81${ ZENDNN_ROOT } /deps/onednn/ ${ CMAKE_INSTALL_LIBDIR } /libdnnl.a 82${ ZENDNN_ROOT } /deps/libxsmm/lib/libxsmm.a 83${ ZENDNN_ROOT } /deps/libxsmm/lib/libxsmmext.a 84${ ZENDNN_ROOT } /deps/libxsmm/lib/libxsmmnoblas.a ) 85endif () 86 87target_link_libraries ( ggml-zendnn PRIVATE m pthread ) 88 89if ( GGML_OPENMP_ENABLED) 90target_link_libraries ( ggml-zendnn PRIVATE ${ GGML_OPENMP_TARGET_CXX }) 91endif ()