@@ -71,6 +71,7 @@ option(MNN_ENABLE_COVERAGE "Build with coverage enable" OFF)
7171option (MNN_BUILD_PROTOBUFFER "Build with protobuffer in MNN" ON )
7272option (MNN_BUILD_OPENCV "Build OpenCV api in MNN." OFF )
7373option (MNN_BUILD_LLM "Build llm library based MNN." OFF )
74+ option (MNN_BUILD_LLM_OMNI "If build llm library, build it with omni (support image / audio)" OFF )
7475option (MNN_BUILD_DIFFUSION "Build diffusion demo based MNN." OFF )
7576option (MNN_INTERNAL "Build with MNN internal features, such as model authentication, metrics logging" OFF )
7677option (MNN_JNI "Build MNN Jni for java to use" OFF )
@@ -104,6 +105,21 @@ IF (NOT DEFINED MNN_USE_SPARSE_COMPUTE)
104105 set (MNN_USE_SPARSE_COMPUTE ON )
105106ENDIF ()
106107
108+ IF (MNN_BUILD_LLM)
109+ set (MNN_LOW_MEMORY ON )
110+ set (MNN_SUPPORT_TRANSFORMER_FUSE ON )
111+ IF (MNN_BUILD_LLM_OMNI)
112+ set (MNN_BUILD_OPENCV ON )
113+ set (MNN_BUILD_AUDIO ON )
114+ ENDIF ()
115+ ENDIF ()
116+
117+ IF (MNN_BUILD_DIFFUSION)
118+ set (MNN_LOW_MEMORY ON )
119+ set (MNN_SUPPORT_TRANSFORMER_FUSE ON )
120+ set (MNN_BUILD_OPENCV ON )
121+ ENDIF ()
122+
107123IF (NOT MNN_BUILD_SHARED_LIBS AND MNN_SEP_BUILD)
108124 message (WARNING "Close MNN_SEP_BUILD for static library" )
109125 SET (MNN_SEP_BUILD OFF CACHE BOOL "<docstring>" FORCE)
@@ -244,11 +260,14 @@ option(MNN_KLEIDIAI "Enable KLEIDIAI" ON)
244260option (MNN_ONEDNN "Enable oneDNN" OFF )
245261option (MNN_AVX2 "Open AVX2 Compile for x86 if possible" ON )
246262option (MNN_AVX512 "Enable AVX512" OFF )
263+ option (MNN_USE_RVV "Enable RVV" OFF )
247264option (MNN_CUDA "Enable CUDA" OFF )
248265option (MNN_TENSORRT "Enable TensorRT" OFF )
249266option (MNN_COREML "Enable CoreML" OFF )
250267option (MNN_NNAPI "Enable NNAPI" OFF )
251- option (MNN_USE_RVV "Enable RVV" OFF )
268+ option (MNN_QNN "Enable QNN" OFF )
269+ option (MNN_QNN_ONLINE_FINALIZE "Enable QNN Online Finalize" ON )
270+
252271option (MNN_GPU_TIME_PROFILE "Enable time profiling for the OpenCL backend and Vulkan backend." OFF )
253272
254273option (MNN_CUDA_PROFILE "Enable CUDA profile" OFF )
@@ -257,6 +276,10 @@ if (NOT MNN_CUDA OR NOT CMAKE_SYSTEM_NAME MATCHES "^Linux")
257276 set (MNN_CUDA_PROFILE OFF )
258277endif ()
259278
279+ if (NOT MNN_QNN)
280+ set (MNN_QNN_ONLINE_FINALIZE OFF )
281+ endif ()
282+
260283if (MNN_USE_THREAD_POOL)
261284 message (STATUS "Use Threadpool, forbid openmp" )
262285 set (MNN_OPENMP OFF )
@@ -297,6 +320,7 @@ message(STATUS "\toneDNN: ${MNN_ONEDNN}")
297320message (STATUS "\t TensorRT: ${MNN_TENSORRT} " )
298321message (STATUS "\t CoreML: ${MNN_COREML} " )
299322message (STATUS "\t NNAPI: ${MNN_NNAPI} " )
323+ message (STATUS "\t QNN: ${MNN_QNN} " )
300324message (STATUS "\t CUDA: ${MNN_CUDA} " )
301325message (STATUS "\t OpenMP: ${MNN_OPENMP} " )
302326message (STATUS "\t BF16: ${MNN_SUPPORT_BF16} " )
@@ -518,6 +542,7 @@ ENDIF()
518542IF (MNN_BUILD_LLM)
519543 file (GLOB MNN_LLM_HDRS ${CMAKE_CURRENT_SOURCE_DIR} /transformers/llm/engine/include /llm/*)
520544 list (APPEND MNN_EXTRA_HEADERS ${CMAKE_CURRENT_SOURCE_DIR} /transformers/llm/engine/include /llm/llm.hpp)
545+ list (APPEND MNN_EXTRA_HEADERS ${CMAKE_CURRENT_SOURCE_DIR} /transformers/llm/engine/include /llm/reranker.hpp)
521546ENDIF ()
522547
523548IF (MNN_BUILD_DIFFUSION)
@@ -783,7 +808,6 @@ ENDIF()
783808ENDIF ()
784809
785810IF (MNN_BUILD_LLM)
786- # add_definitions(-DMNN_BUILD_LLM)
787811 include (${CMAKE_CURRENT_LIST_DIR} /transformers/llm/engine/CMakeLists.txt)
788812 IF (NOT MNN_SEP_BUILD)
789813 list (APPEND MNN_TARGETS llm)
0 commit comments