1cmake_minimum_required(VERSION 3.22.2)
 2project(ggml-htp C CXX ASM)
 3
 4include(${HEXAGON_SDK_ROOT}/build/cmake/hexagon_fun.cmake)
 5
 6include_directories(
 7    ${HEXAGON_SDK_ROOT}/incs
 8    ${HEXAGON_SDK_ROOT}/incs/stddef
 9    ${CMAKE_CURRENT_SOURCE_DIR}/../../../include
10    ${CMAKE_CURRENT_SOURCE_DIR}/../..
11    ${CMAKE_CURRENT_SOURCE_DIR}/..
12    ${CMAKE_CURRENT_SOURCE_DIR}
13    ${CMAKE_CURRENT_BINARY_DIR})
14
15set(HTP_LIB ggml-htp-${DSP_VERSION})
16
17add_library(${HTP_LIB} SHARED
18    main.c
19    htp_iface_skel.c
20    worker-pool.c
21    hex-dma.c
22    matmul-ops.c
23    binary-ops.c
24    unary-ops.c
25    sum-rows-ops.c
26    softmax-ops.c
27    act-ops.c
28    rope-ops.c
29    flash-attn-ops.c
30    set-rows-ops.c
31    get-rows-ops.c
32    cpy-ops.c
33    argsort-ops.c
34)
35
36target_compile_definitions(${HTP_LIB} PRIVATE
37    $<IF:$<BOOL:${HEXAGON_HTP_DEBUG}>,HTP_DEBUG=1,NDEBUG=1>
38    $<IF:$<BOOL:${HEXAGON_HTP_DEBUG}>,FARF_HIGH=1,>
39    FP32_QUANTIZE_GROUP_SIZE=${GGML_HEXAGON_FP32_QUANTIZE_GROUP_SIZE})
40
41build_idl(htp_iface.idl ${HTP_LIB})
42
43set_target_properties(${HTP_LIB} PROPERTIES EXPORT_COMPILE_COMMANDS ON)
44
45install(TARGETS ${HTP_LIB})