@@ -36,6 +36,17 @@ if(NOT DEFINED HTP_ARCH_VERSION)
3636 set (HTP_ARCH_VERSION v75)
3737endif ()
3838
39+ #check whether user's specified htp arch is valid
40+ set (CHECK_HTP_ARCH "WRONG" )
41+ foreach (feat v68 v69 v73 v75 v79)
42+ if (${feat} STREQUAL ${HTP_ARCH_VERSION} )
43+ set (CHECK_HTP_ARCH "GOOD" )
44+ endif ()
45+ endforeach ()
46+ if (${CHECK_HTP_ARCH} STREQUAL "WRONG" )
47+ message (FATAL_ERROR "ggml-hexagon backend only support htp arch v68,v69,v73,v75,v79" )
48+ endif ()
49+
3950#cross compiling for hexagon kernels on cDSP side
4051set (HEXAGON_CC "${HEXAGON_SDK_PATH} /tools/HEXAGON_Tools/8.8.06/Tools/bin/hexagon-clang" )
4152set (HEXAGON_CXX "${HEXAGON_SDK_PATH} /tools/HEXAGON_Tools/8.8.06/Tools/bin/hexagon-clang" )
@@ -71,14 +82,14 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android")
7182elseif (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
7283 set (QNN_DEFAULT_LIB_SEARCH_PATH "C:\\ " CACHE STRING "customized library search path for QNN backend" )
7384else ()
74- message (FATAL_ERROR "QNN now only available on Android and Windows(Windows on ARM)" )
85+ message (FATAL_ERROR "ggml-hexagon now only available on Android and Windows(Windows on ARM)" )
7586endif ()
7687
7788set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGGML_USE_HEXAGON ${DEBUG_FLAG} " )
7889set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3" )
7990
80- file (GLOB QNN_SOURCES "${CMAKE_CURRENT_LIST_DIR} /*.cpp" "${CMAKE_CURRENT_LIST_DIR} /kernels/ggmlop_ap_skel.c" )
81- ggml_add_backend_library(ggml-hexagon ${QNN_SOURCES } )
91+ file (GLOB HEXAGON_SOURCES "${CMAKE_CURRENT_LIST_DIR} /*.cpp" "${CMAKE_CURRENT_LIST_DIR} /kernels/ggmlop_ap_skel.c" )
92+ ggml_add_backend_library(ggml-hexagon ${HEXAGON_SOURCES } )
8293
8394target_include_directories (ggml-hexagon PRIVATE ${QNN_SDK_PATH} /include /QNN ${HEXAGON_SDK_PATH} ${CMAKE_CURRENT_LIST_DIR} )
8495target_link_libraries (ggml-hexagon PRIVATE ${QNN_LINK_LIBRARIES} )
@@ -87,7 +98,7 @@ string(REGEX REPLACE "/$" "" QNN_DEFAULT_LIB_SEARCH_PATH "${QNN_DEFAULT_LIB_SEAR
8798target_compile_definitions (ggml-hexagon PRIVATE QNN_DEFAULT_LIB_SEARCH_PATH="${QNN_DEFAULT_LIB_SEARCH_PATH} /" )
8899
89100function (ggml_hexagon_build_kernel KNAME)
90- message (STATUS "ggml_hexagon: build kernel ${KNAME} " )
101+ message (STATUS "ggml_hexagon: build hexagon- kernel ${KNAME} " )
91102
92103 add_custom_command (
93104 TARGET ${PROJECT_NAME}
0 commit comments