Skip to content

Commit fafca74

Browse files
author
zhouwg
committed
ggml-hexagon: sync with branch self-build
1 parent c36159a commit fafca74

File tree

8 files changed

+242
-97
lines changed

8 files changed

+242
-97
lines changed

ggml/include/ggml-hexagon.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ enum hwaccel_approach_type {
3030
HWACCEL_CDSP = 2,
3131
};
3232

33-
GGML_BACKEND_API ggml_backend_t ggml_backend_hexagon_init(size_t dev_num, const char * qnn_lib_path);
33+
GGML_BACKEND_API ggml_backend_t ggml_backend_hexagon_init(size_t dev_num, const char * qnn_lib_path);
3434

35-
GGML_BACKEND_API bool ggml_backend_is_hexagon(ggml_backend_t backend);
35+
GGML_BACKEND_API bool ggml_backend_is_hexagon(ggml_backend_t backend);
3636

37-
GGML_BACKEND_API int ggml_backend_hexagon_get_device_count(void);
37+
GGML_BACKEND_API int ggml_backend_hexagon_get_device_count(void);
3838

3939
GGML_BACKEND_API ggml_backend_reg_t ggml_backend_hexagon_reg(void);
4040

41-
const char * ggml_backend_hexagon_get_devname(size_t dev_num);
41+
GGML_BACKEND_API const char * ggml_backend_hexagon_get_devname(size_t dev_num);
4242

43-
void set_hexagon_cfg(int new_hexagon_backend, int new_hwaccel_approach);
43+
GGML_BACKEND_API void ggml_backend_set_hexagon_cfg(int new_hexagon_backend, int new_hwaccel_approach);
4444

4545
#ifdef __cplusplus
4646
}

ggml/src/ggml-hexagon/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ function(ggml_hexagon_build_kernel KNAME)
113113
COMMAND make -C ${CMAKE_CURRENT_LIST_DIR}/kernels/ clean
114114
COMMAND make -C ${CMAKE_CURRENT_LIST_DIR}/kernels/ HEXAGON_SDK_PATH=${HEXAGON_SDK_PATH} HTP_ARCH_VERSION=${HTP_ARCH_VERSION} DEBUG_FLAG=${DEBUG_FLAG}
115115
COMMAND echo "current working path:`pwd`\n"
116-
COMMAND ls -l ../../../bin/libggmlop-skel.so
116+
COMMAND ls -l ../../../bin/libggmldsp-skel.so
117117
COMMENT "build hexagon-kernel"
118118
)
119119
endfunction()

ggml/src/ggml-hexagon/ggml-hexagon.cpp

Lines changed: 216 additions & 81 deletions
Large diffs are not rendered by default.

ggml/src/ggml-hexagon/kernels/Makefile

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ HEXAGON_COMPUTE=compute${HTP_ARCH_VERSION}
77
HEXAGON_CC=${HEXAGON_SDK_PATH}/tools/HEXAGON_Tools/8.8.06/Tools/bin/hexagon-clang
88
HEXAGON_CXX=${HEXAGON_SDK_PATH}/tools/HEXAGON_Tools/8.8.06/Tools/bin/hexagon-clang
99

10-
TARGET=libggmlop-skel.so
10+
TARGET=libggmldsp-skel.so
1111

1212
$(info HEXAGON_SDK_PATH:${HEXAGON_SDK_PATH})
1313
$(info HTP_ARCH_VERSION:${HTP_ARCH_VERSION})
@@ -28,13 +28,24 @@ ALL:$(OBJS)
2828
${HEXAGON_CC} ${LDFLAGS} -o ${TARGET} -Wl,--start-group ${OBJS} -Wl,--end-group
2929
@ls -l ${TARGET}
3030
/bin/cp -fv ${TARGET} ../../../../out/android/bin/
31-
/bin/cp -fv ${TARGET} ../../../../out/android/bin/libggmlop-skel${HTP_ARCH_VERSION}.so
31+
/bin/cp -fv ${TARGET} ../../../../out/android/bin/libggmldsp-skel${HTP_ARCH_VERSION}.so
3232
/bin/rm -f *.so
3333

3434
%.o:%.c
3535
@echo "${HEXAGON_CC} ${CFLAGS} ${DEBUG_FLAG} -D__FILENAME__=\"$<\" -o $@ -c $<"
3636
${HEXAGON_CC} ${CFLAGS} ${DEBUG_FLAG} -D__FILENAME__=\"$<\" -o $@ -c $<
3737
@echo "\n"
3838

39+
%.o:%.S
40+
@echo "${HEXAGON_CC} ${CFLAGS} ${DEBUG_FLAG} -D__FILENAME__=\"$<\" -o $@ -c $<"
41+
${HEXAGON_CC} ${CFLAGS} ${DEBUG_FLAG} -D__FILENAME__=\"$<\" -o $@ -c $<
42+
@echo "\n"
43+
44+
%.o:%.cpp
45+
@echo "${HEXAGON_CC} ${CFLAGS} ${DEBUG_FLAG} -D__FILENAME__=\"$<\" -o $@ -c $<"
46+
${HEXAGON_CC} ${CFLAGS} ${DEBUG_FLAG} -D__FILENAME__=\"$<\" -o $@ -c $<
47+
@echo "\n"
48+
3949
clean:
4050
rm -f *.o
51+
/bin/rm -f *.so

ggml/src/ggml-hexagon/kernels/skel.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -289,8 +289,8 @@ extern int adsp_mmap_fd_getinfo(int, uint32_t *);
289289
#ifdef __cplusplus
290290
extern "C" {
291291
#endif
292-
_ATTRIBUTE_VISIBILITY uint32_t ggmlop_skel_handle_invoke_qaic_version = 10048;
293-
_ATTRIBUTE_VISIBILITY char ggmlop_skel_handle_invoke_uri[77+1]="file:///libggmlop-skel.so?ggmlop_skel_handle_invoke&_modver=1.0&_idlver=0.0.1";
292+
_ATTRIBUTE_VISIBILITY uint32_t ggmldsp_skel_handle_invoke_qaic_version = 10048;
293+
_ATTRIBUTE_VISIBILITY char ggmldsp_skel_handle_invoke_uri[79+1]="file:///libggmldsp-skel.so?ggmldsp_skel_handle_invoke&_modver=1.0&_idlver=0.0.1";
294294
static __inline int _skel_pack(_ATTRIBUTE_UNUSED remote_arg* _praROutPost, _ATTRIBUTE_UNUSED remote_arg* _ppraROutPost[1], _ATTRIBUTE_UNUSED void* _primROut, _ATTRIBUTE_UNUSED uint32_t _rout0[1], _ATTRIBUTE_UNUSED uint32_t _rout1[4], _ATTRIBUTE_UNUSED uint32_t _rout2[4], _ATTRIBUTE_UNUSED uint32_t _rout3[1], _ATTRIBUTE_UNUSED uint32_t _rout4[16], _ATTRIBUTE_UNUSED uint32_t _rout5[1], _ATTRIBUTE_UNUSED char* _rout6[1], _ATTRIBUTE_UNUSED uint32_t _rout6Len[1]) {
295295
int _nErr = 0;
296296
remote_arg* _praROutPostStart = _praROutPost;
@@ -598,7 +598,7 @@ static __inline int _skel_method_3(int (*_pfn)(const char*, remote_handle64*), u
598598
_QAIC_CATCH(_nErr) {}
599599
return _nErr;
600600
}
601-
__QAIC_SKEL_EXPORT int __QAIC_SKEL(ggmlop_skel_handle_invoke)(remote_handle64 _h, uint32_t _sc, remote_arg* _pra) __QAIC_SKEL_ATTRIBUTE {
601+
__QAIC_SKEL_EXPORT int __QAIC_SKEL(ggmldsp_skel_handle_invoke)(remote_handle64 _h, uint32_t _sc, remote_arg* _pra) __QAIC_SKEL_ATTRIBUTE {
602602
switch(REMOTE_SCALARS_METHOD(_sc)){
603603
case 0:
604604
return _skel_method_3(__QAIC_IMPL(ggmlop_dsp_open), _sc, _pra);

ggml/src/ggml-hexagon/kernels/skel.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,9 +278,7 @@ __QAIC_HEADER_EXPORT int __QAIC_HEADER(ggmlop_dsp_mulmat)(remote_handle64 _h, co
278278
__QAIC_HEADER_EXPORT int __QAIC_HEADER(ggmlop_dsp_softmax)(remote_handle64 _h, const dsptensor* src0, const dsptensor* src1, dsptensor* dst) __QAIC_HEADER_ATTRIBUTE;
279279
__QAIC_HEADER_EXPORT int __QAIC_HEADER(ggmlop_dsp_rmsnorm)(remote_handle64 _h, const dsptensor* src0, const dsptensor* src1, dsptensor* dst) __QAIC_HEADER_ATTRIBUTE;
280280
__QAIC_HEADER_EXPORT int __QAIC_HEADER(ggmlop_dsp_pool2d)(remote_handle64 _h, const dsptensor* src0, const dsptensor* src1, dsptensor* dst) __QAIC_HEADER_ATTRIBUTE;
281-
#ifndef ggmlop_URI
282-
#define ggmlop_URI "file:///libggmlop-skel.so?ggmlop_skel_handle_invoke&_modver=1.0&_idlver=0.0.1"
283-
#endif /*ggmlop_URI*/
281+
284282
#ifdef __cplusplus
285283
}
286284
#endif

scripts/build-run-android.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ QNN_SDK_INSTALL_PATH=/opt/qcom/aistack/qairt
3030
QNN_SDK_VERSION=2.32.0.250228
3131
QNN_SDK_VERSION=2.33.0.250327
3232
QNN_SDK_VERSION=2.34.0.250424
33+
#QNN_SDK_VERSION=2.35.0.250530
3334
QNN_SDK_PATH=${QNN_SDK_INSTALL_PATH}/${QNN_SDK_VERSION}
3435

3536
#Hexagon SDK can be found at:
@@ -49,7 +50,7 @@ HTP_ARCH_VERSION=v79
4950
HTP_ARCH_VERSION_a=V79
5051

5152
#running_params=" -mg 2 -ngl 99 -t 8 -fa 1 "
52-
running_params=" -mg 2 -ngl 99 -t 8 "
53+
running_params=" -mg 3 -ngl 99 -t 8 -n 256 --no-warmup "
5354

5455
function dump_vars()
5556
{

scripts/ggml-hexagon.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[general]
22
#version of ggml-hexagon.cpp on ARM-AP side
3-
version = "1.09"
3+
version = "1.11"
44
#version of ggml-dsp.c on cDSP side
55
ggmldsp_version = "0.63"
66

0 commit comments

Comments
 (0)