add build step of QNN backend at ggml
This commit is contained in:
parent
861bb9c580
commit
eed960575f
3 changed files with 31 additions and 1 deletions
|
@ -106,6 +106,7 @@ llama_option_depr(WARNING LLAMA_NATIVE GGML_NATIVE)
|
|||
llama_option_depr(WARNING LLAMA_RPC GGML_RPC)
|
||||
llama_option_depr(WARNING LLAMA_SYCL GGML_SYCL)
|
||||
llama_option_depr(WARNING LLAMA_SYCL_F16 GGML_SYCL_F16)
|
||||
llama_option_depr(WARNING LLAMA_QNN GGML_QNN)
|
||||
|
||||
#
|
||||
# build the library
|
||||
|
|
|
@ -145,6 +145,7 @@ option(GGML_SYCL "ggml: use SYCL"
|
|||
option(GGML_SYCL_F16 "ggml: use 16 bit floats for sycl calculations" OFF)
|
||||
set (GGML_SYCL_TARGET "INTEL" CACHE STRING
|
||||
"ggml: sycl target device")
|
||||
option(GGML_QNN "ggml: use QNN" OFF)
|
||||
|
||||
# extra artifacts
|
||||
option(GGML_BUILD_TESTS "ggml: build tests" ${GGML_STANDALONE})
|
||||
|
@ -157,7 +158,7 @@ option(GGML_BUILD_EXAMPLES "ggml: build examples" ${GGML_STANDALONE})
|
|||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED true)
|
||||
|
||||
if (GGML_SYCL)
|
||||
if (GGML_SYCL OR GGML_QNN)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
else()
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
|
|
|
@ -770,6 +770,33 @@ if (GGML_CPU_HBM)
|
|||
target_link_libraries(ggml PUBLIC memkind)
|
||||
endif()
|
||||
|
||||
if (GGML_QNN)
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Android")
|
||||
find_library(LOG_LIB log)
|
||||
find_library(ANDROID_LIB android)
|
||||
set(GGML_EXTRA_LIBS ${GGML_EXTRA_LIBS} ${LOG_LIB} ${ANDROID_LIB})
|
||||
else()
|
||||
message(FATAL_ERROR "QNN now only available on Android")
|
||||
endif()
|
||||
|
||||
if (NOT DEFINED GGML_QNN_SDK_PATH)
|
||||
# try read from environment variable
|
||||
if (DEFINED ENV{QNN_SDK_PATH})
|
||||
set(GGML_QNN_SDK_PATH $ENV{QNN_SDK_PATH})
|
||||
else()
|
||||
message(FATAL_ERROR "GGML_QNN_SDK_PATH not defined")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
message("QNN_SDK_PATH: ${GGML_QNN_SDK_PATH}")
|
||||
file(GLOB GGML_SOURCES_QNN "ggml-qnn/*.cpp")
|
||||
list(APPEND GGML_SOURCES_QNN "ggml-qnn.cpp")
|
||||
set(GGML_HEADERS_QNN ../include/ggml-qnn.h)
|
||||
set(QNN_INC_PATH ${GGML_QNN_SDK_PATH}/include/QNN)
|
||||
set(GGML_EXTRA_INCLUDES ${GGML_EXTRA_INCLUDES} ${QNN_INC_PATH} "ggml-qnn")
|
||||
list(APPEND GGML_CDEF_PUBLIC GGML_USE_QNN)
|
||||
endif()
|
||||
|
||||
function(get_flags CCID CCVER)
|
||||
set(C_FLAGS "")
|
||||
set(CXX_FLAGS "")
|
||||
|
@ -1184,6 +1211,7 @@ add_library(ggml
|
|||
${GGML_SOURCES_ROCM} ${GGML_HEADERS_ROCM}
|
||||
${GGML_SOURCES_BLAS} ${GGML_HEADERS_BLAS}
|
||||
${GGML_SOURCES_LLAMAFILE} ${GGML_HEADERS_LLAMAFILE}
|
||||
${GGML_SOURCES_QNN} ${GGML_HEADERS_QNN}
|
||||
ggml-aarch64.c ggml-aarch64.h
|
||||
)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue