From 1ee8d721bd6c08d829b4a399e47ef1767e3bbb61 Mon Sep 17 00:00:00 2001 From: leo-pony Date: Wed, 20 Nov 2024 14:34:09 +0800 Subject: [PATCH] Add compile option soc type macro ASCEND_310P to ggml-cann lib --- ggml/src/ggml-cann/CMakeLists.txt | 14 ++++++++++++++ ggml/src/ggml-cann/kernels/CMakeLists.txt | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ggml/src/ggml-cann/CMakeLists.txt b/ggml/src/ggml-cann/CMakeLists.txt index c8e15c6d4..a0e152c9c 100644 --- a/ggml/src/ggml-cann/CMakeLists.txt +++ b/ggml/src/ggml-cann/CMakeLists.txt @@ -39,6 +39,20 @@ if (CANN_INSTALL_DIR) target_include_directories(ggml-cann PRIVATE . .. ${CANN_INCLUDE_DIRS}) target_link_directories(ggml-cann PRIVATE ${CANN_INSTALL_DIR}/lib64) + # set define macro for the special soc type, as function of some ascend kernel is different for different soc type. + set(SOC_VERSION "") + if(NOT SOC_TYPE) + detect_ascend_soc_type(SOC_VERSION) + set(SOC_TYPE "${SOC_VERSION}") + endif() + string(TOLOWER ${SOC_TYPE} SOC_VERSION) + string(FIND "${SOC_VERSION}" "ascend310p" FIRST_310P_INDEX) + if(FIRST_310P_INDEX GREATER -1) + #add_compile_definitions(ASCEND_310P) + target_compile_definitions(ggml-cann PRIVATE ASCEND_310P) + endif() + message(STATUS "CANN: Compile llama.cpp with ${SOC_TYPE}.") + message(STATUS "CANN: CANN_INCLUDE_DIRS = ${CANN_INCLUDE_DIRS}") message(STATUS "CANN: CANN_LIBRARIES = ${CANN_LIBRARIES}") else() diff --git a/ggml/src/ggml-cann/kernels/CMakeLists.txt b/ggml/src/ggml-cann/kernels/CMakeLists.txt index e2a5b1f75..d1e107fc9 100644 --- a/ggml/src/ggml-cann/kernels/CMakeLists.txt +++ b/ggml/src/ggml-cann/kernels/CMakeLists.txt @@ -2,7 +2,7 @@ set(SOC_VERSION "") function(detect_ascend_soc_type SOC_VERSION) execute_process( - COMMAND bash -c "npu-smi info|awk -F' ' 'NF > 0 && NR==7 {print $3}'" + COMMAND bash -c "npu-smi info|awk -F' ' 'NF > 0 && NR==7 {print $3}'" OUTPUT_VARIABLE npu_info RESULT_VARIABLE npu_result OUTPUT_STRIP_TRAILING_WHITESPACE