@@ -17,6 +17,22 @@ message("QNN_SDK_PATH : ${QNN_SDK_PATH}")
1717message ("HEXAGON_SDK_PATH: ${HEXAGON_SDK_PATH} " )
1818message ("HTP_ARCH_VERSION: ${HTP_ARCH_VERSION} " )
1919
20+ #v68 --- Snapdragon 888
21+ #v69 --- Snapdragon 8 Gen1
22+ #v73 --- Snapdragon 8 Gen2
23+ #v75 --- Snapdragon 8 Gen3
24+ #v79 --- Snapdragon 8 Elite(aka Gen4)
25+ if (NOT DEFINED HTP_ARCH_VERSION)
26+ #set default HTP_ARCH_VERSION to v75
27+ set (HTP_ARCH_VERSION v75)
28+ endif ()
29+
30+ #cross compiling for hexagon kernels on cDSP side
31+ set (HEXAGON_CC "${HEXAGON_SDK_PATH} /tools/HEXAGON_Tools/8.8.06/Tools/bin/hexagon-clang" )
32+ set (HEXAGON_CXX "${HEXAGON_SDK_PATH} /tools/HEXAGON_Tools/8.8.06/Tools/bin/hexagon-clang" )
33+ set (HEXAGON_TARGET libggmlop_skel${HTP_ARCH_VERSION} .so)
34+ set (HEXAGON_KERNELS_PATH "${CMAKE_CURRENT_LIST_DIR} /kernels" )
35+
2036if (CMAKE_SYSTEM_NAME STREQUAL "Android" )
2137 find_library (LOG_LIB log )
2238
@@ -67,10 +83,10 @@ function(ggml_hexagon_build_kernel KNAME)
6783 TARGET ${PROJECT_NAME}
6884 POST_BUILD
6985 COMMAND echo "current working path:`pwd`\n "
70- COMMAND echo " ${CMAKE_CURRENT_LIST_DIR} /kernels"
71- COMMAND make -C ${CMAKE_CURRENT_LIST_DIR} /kernels/ clean
72- COMMAND make -C ${CMAKE_CURRENT_LIST_DIR} /kernels/ HEXAGON_SDK_PATH= ${HEXAGON_SDK_PATH} HTP_ARCH_VERSION= ${HTP_ARCH_VERSION}
73- COMMAND echo "`pwd`"
86+ COMMAND ${HEXAGON_CC} -o ${HEXAGON_KERNELS_PATH} /ggml-dsp.o -c ${HEXAGON_KERNELS_PATH} /ggml-dsp.c -m ${HTP_ARCH_VERSION} -c -Ofast -Wall -Wstrict-prototypes -fno-zero-initialized-in-bss -fdata-sections -fpic -D__V_DYNAMIC__ -mhvx -mhvx- length =128B -I ${HEXAGON_SDK_PATH} /incs -I ${HEXAGON_SDK_PATH} /libs/qprintf/inc -I ${HEXAGON_SDK_PATH} /incs/stddef -I ${HEXAGON_SDK_PATH} /ipc/fastrpc/incs -I ${HEXAGON_SDK_PATH} /ipc/fastrpc/rpcmem/inc -I ${HEXAGON_SDK_PATH} /utils/examples -I ${HEXAGON_SDK_PATH} /ipc/fastrpc/rtld/ship/inc -I ${HEXAGON_SDK_PATH} /libs/atomic/inc -I ${HEXAGON_SDK_PATH} /utils/sim_utils/inc
87+ COMMAND ${HEXAGON_CC} -o ${HEXAGON_KERNELS_PATH} /ggmlop_cdsp_skel.o -c ${HEXAGON_KERNELS_PATH} /ggmlop_cdsp_skel.c -m ${HTP_ARCH_VERSION} -c -Ofast -Wall -Wstrict-prototypes -fno-zero-initialized-in-bss -fdata-sections -fpic -D__V_DYNAMIC__ -mhvx -mhvx- length =128B -I ${HEXAGON_SDK_PATH} /incs -I ${HEXAGON_SDK_PATH} /libs/qprintf/inc -I ${HEXAGON_SDK_PATH} /incs/stddef -I ${HEXAGON_SDK_PATH} /ipc/fastrpc/incs -I ${HEXAGON_SDK_PATH} /ipc/fastrpc/rpcmem/inc -I ${HEXAGON_SDK_PATH} /utils/examples -I ${HEXAGON_SDK_PATH} /ipc/fastrpc/rtld/ship/inc -I ${HEXAGON_SDK_PATH} /libs/atomic/inc -I ${HEXAGON_SDK_PATH} /utils/sim_utils/inc
88+ COMMAND ${HEXAGON_CC} -m ${HTP_ARCH_VERSION} -Wl,--defsym=ISDB_TRUSTED_FLAG=2 -Wl,--defsym=ISDB_SECURE_FLAG=2 -Wl,-- no -threads -fpic -shared -Wl,-Bsymbolic -Wl,--wrap=malloc -Wl,--wrap=calloc -Wl,--wrap=free -Wl,--wrap=realloc -Wl,--wrap=memalign -lc -Wl,-soname= ${HEXAGON_TARGET} -o ${HEXAGON_KERNELS_PATH} / ${HEXAGON_TARGET} -Wl,-- start -group ${HEXAGON_KERNELS_PATH} /ggmlop_cdsp_skel.o ${HEXAGON_KERNELS_PATH} /ggml-dsp.o -Wl,-- end -group
89+ COMMAND ls -l ${HEXAGON_KERNELS_PATH} / ${HEXAGON_TARGET}
7490 COMMENT "build hexagon-kernel"
7591 )
7692endfunction ()
0 commit comments