1- message (STATUS "Using QNN backend" )
1+ project (ggml-qnn)
2+ message (STATUS "Using HEXAGON backend" )
23message ("CMAKE_SYSTEM_NAME : ${CMAKE_SYSTEM_NAME} " )
34
45if (NOT DEFINED QNN_SDK_PATH)
@@ -9,8 +10,9 @@ if(NOT DEFINED HEXAGON_SDK_PATH)
910 message (FATAL_ERROR "HEXAGON_SDK_PATH not defined" )
1011endif ()
1112
12- message ("QNN_SDK_PATH: ${QNN_SDK_PATH} " )
13+ message ("QNN_SDK_PATH : ${QNN_SDK_PATH} " )
1314message ("HEXAGON_SDK_PATH: ${HEXAGON_SDK_PATH} " )
15+ message ("HTP_ARCH_VERSION: ${HTP_ARCH_VERSION} " )
1416
1517if (CMAKE_SYSTEM_NAME STREQUAL "Android" )
1618 find_library (LOG_LIB log )
@@ -37,7 +39,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android")
3739 include_directories (${HEXAGON_SDK_PATH} /libs/atomic/android_Debug_aarch64/ship)
3840 include_directories (${CMAKE_SOURCE_DIR} /ggml/src/ggml-qnn/)
3941 include_directories (${CMAKE_SOURCE_DIR} /ggml/src/ggml-qnn/kernels/)
40-
4142elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
4243 set (QNN_DEFAULT_LIB_SEARCH_PATH "C:\\ " CACHE STRING "customized library search path for QNN backend" )
4344else ()
@@ -55,3 +56,20 @@ target_link_libraries(ggml-qnn PRIVATE ${QNN_LINK_LIBRARIES})
5556
5657string (REGEX REPLACE "/$" "" QNN_DEFAULT_LIB_SEARCH_PATH "${QNN_DEFAULT_LIB_SEARCH_PATH} " )
5758target_compile_definitions (ggml-qnn PRIVATE QNN_DEFAULT_LIB_SEARCH_PATH="${QNN_DEFAULT_LIB_SEARCH_PATH} /" )
59+
60+ function (ggml_hexagon_build_kernel KNAME)
61+ message (STATUS "ggml_hexagon: build kernel ${KNAME} " )
62+
63+ add_custom_command (
64+ TARGET ${PROJECT_NAME}
65+ POST_BUILD
66+ COMMAND echo "current working path:`pwd`\n "
67+ COMMAND echo "${CMAKE_CURRENT_LIST_DIR} /kernels"
68+ COMMAND make -C ${CMAKE_CURRENT_LIST_DIR} /kernels/ clean
69+ COMMAND make -C ${CMAKE_CURRENT_LIST_DIR} /kernels/ HEXAGON_SDK_PATH=${HEXAGON_SDK_PATH} HTP_ARCH_VERSION=${HTP_ARCH_VERSION}
70+ COMMAND echo "`pwd`"
71+ COMMENT "build hexagon-kernel"
72+ )
73+ endfunction ()
74+
75+ ggml_hexagon_build_kernel("cdsp" )
0 commit comments