Skip to content

Commit 0c5fb75

Browse files
committed
add npu om backend to ultra_infer
1 parent 2b72192 commit 0c5fb75

File tree

12 files changed

+747
-3
lines changed

12 files changed

+747
-3
lines changed

libs/ultra-infer/CMakeLists.txt

+10-1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ option(ENABLE_SOPHGO_BACKEND "Whether to enable SOPHON backend." OFF)
7070
option(ENABLE_TVM_BACKEND "Whether to enable TVM backend." OFF)
7171
option(ENABLE_LITE_BACKEND "Whether to enable paddle lite backend." OFF)
7272
option(ENABLE_HORIZON_BACKEND "Whether to enable HORIZON backend." OFF)
73+
option(ENABLE_OM_BACKEND "Whether to enable OM backend." OFF)
7374
option(ENABLE_VISION "Whether to enable vision models usage." OFF)
7475
option(ENABLE_TEXT "Whether to enable text models usage." OFF)
7576
option(ENABLE_FLYCV "Whether to enable flycv to boost image preprocess." OFF)
@@ -171,6 +172,7 @@ file(GLOB_RECURSE DEPLOY_HORIZON_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ul
171172
file(GLOB_RECURSE DEPLOY_SOPHGO_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/runtime/backends/sophgo/*.cc)
172173
file(GLOB_RECURSE DEPLOY_TVM_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/runtime/backends/tvm/*.cc)
173174
file(GLOB_RECURSE DEPLOY_LITE_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/runtime/backends/lite/*.cc)
175+
file(GLOB_RECURSE DEPLOY_OM_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/runtime/backends/om/*.cc)
174176
file(GLOB_RECURSE DEPLOY_PIPELINE_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/pipeline/*.cc)
175177
file(GLOB_RECURSE DEPLOY_VISION_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/vision/*.cc)
176178
file(GLOB_RECURSE DEPLOY_TEXT_SRCS ${PROJECT_SOURCE_DIR}/${CSRCS_DIR_NAME}/ultra_infer/text/*.cc)
@@ -194,7 +196,7 @@ list(REMOVE_ITEM ALL_DEPLOY_SRCS ${DEPLOY_ORT_SRCS} ${DEPLOY_PADDLE_SRCS}
194196
${DEPLOY_PIPELINE_SRCS} ${DEPLOY_RKNPU2_SRCS}
195197
${DEPLOY_SOPHGO_SRCS}
196198
${DEPLOY_HORIZON_SRCS} ${DEPLOY_TVM_SRCS}
197-
${DEPLOY_PADDLE_CUSTOM_OP_SRCS})
199+
${DEPLOY_PADDLE_CUSTOM_OP_SRCS} ${DEPLOY_OM_SRCS})
198200

199201

200202
set(DEPEND_LIBS "")
@@ -328,6 +330,13 @@ if(ENABLE_POROS_BACKEND)
328330
execute_process(COMMAND ${Python_EXECUTABLE} ${PROJECT_SOURCE_DIR}/scripts/copy_directory.py ${TRT_DIRECTORY}/lib ${CMAKE_CURRENT_BINARY_DIR}/third_libs/install/tensorrt/lib)
329331
endif()
330332

333+
if(ENABLE_OM_BACKEND)
334+
add_definitions(-DENABLE_OM_BACKEND)
335+
list(APPEND ALL_DEPLOY_SRCS ${DEPLOY_OM_SRCS})
336+
include(${PROJECT_SOURCE_DIR}/cmake/om.cmake)
337+
list(APPEND DEPEND_LIBS ${NPU_libs})
338+
endif()
339+
331340
if(WITH_GPU)
332341
add_definitions(-DWITH_GPU)
333342
include_directories(${CUDA_DIRECTORY}/include)

libs/ultra-infer/UltraInfer.cmake.in

+27
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ set(ENABLE_PADDLE_BACKEND @ENABLE_PADDLE_BACKEND@)
3232
set(ENABLE_OPENVINO_BACKEND @ENABLE_OPENVINO_BACKEND@)
3333
set(ENABLE_POROS_BACKEND @ENABLE_POROS_BACKEND@)
3434
set(ENABLE_TRT_BACKEND @ENABLE_TRT_BACKEND@)
35+
set(ENABLE_OM_BACKEND @ENABLE_OM_BACKEND@)
3536
set(ENABLE_PADDLE2ONNX @ENABLE_PADDLE2ONNX@)
3637
set(BUILD_PADDLE2ONNX @BUILD_PADDLE2ONNX@)
3738

@@ -179,6 +180,32 @@ if(ENABLE_POROS_BACKEND)
179180
list(APPEND ULTRAINFER_INCS ${CMAKE_CURRENT_LIST_DIR}/third_libs/install/poros/include ${TORCH_INCLUDE})
180181
endif()
181182

183+
if(ENABLE_OM_BACKEND)
184+
set(LIB_PATH $ENV{NPU_HOST_LIB})
185+
if (NOT DEFINED ENV{NPU_HOST_LIB})
186+
set(LIB_PATH "/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/lib64")
187+
message(STATUS "set default LIB_PATH: ${LIB_PATH}")
188+
else()
189+
message(STATUS "set LIB_PATH: ${LIB_PATH}")
190+
endif ()
191+
192+
set(INC_PATH $ENV{DDK_PATH})
193+
if (NOT DEFINED ENV{DDK_PATH})
194+
set(INC_PATH "/usr/local/Ascend/ascend-toolkit/latest")
195+
message(STATUS "set default INC_PATH: ${INC_PATH}")
196+
else()
197+
message(STATUS "set INC_PATH: ${INC_PATH}")
198+
endif ()
199+
200+
set(NPU_libs ascendcl stdc++)
201+
202+
link_directories(${LIB_PATH})
203+
204+
list(APPEND ULTRAINFER_LIBS ${NPU_libs})
205+
206+
list(APPEND ULTRAINFER_INCS ${INC_PATH}/runtime/include/)
207+
endif()
208+
182209
if(WITH_GPU)
183210
if(NOT CUDA_DIRECTORY)
184211
set(CUDA_DIRECTORY "/usr/local/cuda")

libs/ultra-infer/cmake/om.cmake

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
set(CMAKE_CXX_FLAGS_DEBUG "-fPIC -O0 -g -Wall")
2+
set(CMAKE_CXX_FLAGS_RELEASE "-fPIC -O2 -Wall")
3+
4+
set(INC_PATH $ENV{DDK_PATH})
5+
if (NOT DEFINED ENV{DDK_PATH})
6+
set(INC_PATH "/usr/local/Ascend/ascend-toolkit/latest")
7+
message(STATUS "set default INC_PATH: ${INC_PATH}")
8+
else()
9+
message(STATUS "set INC_PATH: ${INC_PATH}")
10+
endif ()
11+
12+
set(LIB_PATH $ENV{NPU_HOST_LIB})
13+
if (NOT DEFINED ENV{NPU_HOST_LIB})
14+
set(LIB_PATH "/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/lib64")
15+
message(STATUS "set default LIB_PATH: ${LIB_PATH}")
16+
else()
17+
message(STATUS "set LIB_PATH: ${LIB_PATH}")
18+
endif ()
19+
20+
21+
set(NPU_libs ascendcl stdc++)
22+
23+
include_directories(
24+
${INC_PATH}/runtime/include/
25+
)
26+
27+
link_directories(
28+
${LIB_PATH}
29+
)

libs/ultra-infer/ultra_infer/core/config.h.in

+4
Original file line numberDiff line numberDiff line change
@@ -84,3 +84,7 @@
8484
#ifndef ENABLE_TVM_BACKEND
8585
#cmakedefine ENABLE_TVM_BACKEND
8686
#endif
87+
88+
#ifndef ENABLE_OM_BACKEND
89+
#cmakedefine ENABLE_OM_BACKEND
90+
#endif

0 commit comments

Comments
 (0)