@@ -35,14 +35,22 @@ if (LITE_WITH_XPU)
3535 ENDIF ()
3636endif ()
3737
38+ if (LITE_WITH_NNADAPTER)
39+ add_definitions (-DLITE_SUBGRAPH_WITH_NNADAPTER)
40+ if (NNADAPTER_WITH_HUAWEI_ASCEND_NPU)
41+ add_definitions (-DLITE_SUBGRAPH_WITH_NPU)
42+ set (NPU_SDK_ROOT "/usr/local/Ascend/ascend-toolkit/latest" CACHE STRING "default NPU SDK ROOT" )
43+ endif ()
44+ endif ()
45+
3846if (NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR )
3947 include (ExternalProject)
4048 set (LITE_PROJECT extern_lite)
4149 set (LITE_SOURCES_DIR ${THIRD_PARTY_PATH} /lite)
4250 set (LITE_INSTALL_DIR ${THIRD_PARTY_PATH} /install /lite)
4351
4452 if (NOT LITE_GIT_TAG)
45- set (LITE_GIT_TAG d3a3a6931b6d22d504d21ba32b3ae972770e9204 )
53+ set (LITE_GIT_TAG 4ab64daecc11fbf74fffdc6a4733f388472e7d5d )
4654 endif ()
4755
4856 if (NOT CUDA_ARCH_NAME)
@@ -67,6 +75,9 @@ if (NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
6775 -DLITE_WITH_XPU=${LITE_WITH_XPU}
6876 -DXPU_SDK_URL=${XPU_BASE_URL}
6977 -DXPU_SDK_ENV=${XPU_SDK_ENV}
78+ -DLITE_WITH_NNADAPTER=${LITE_WITH_NNADAPTER}
79+ -DNNADAPTER_WITH_HUAWEI_ASCEND_NPU=${NNADAPTER_WITH_HUAWEI_ASCEND_NPU}
80+ -DNNADAPTER_HUAWEI_ASCEND_NPU_SDK_ROOT=${NPU_SDK_ROOT}
7081 -DLITE_WITH_CODE_META_INFO=OFF
7182 -DLITE_WITH_ARM=ON )
7283 ExternalProject_Add(
@@ -110,6 +121,9 @@ if (NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
110121 -DLITE_WITH_XPU=${LITE_WITH_XPU}
111122 -DXPU_SDK_URL=${XPU_BASE_URL}
112123 -DXPU_SDK_ENV=${XPU_SDK_ENV}
124+ -DLITE_WITH_NNADAPTER=${LITE_WITH_NNADAPTER}
125+ -DNNADAPTER_WITH_HUAWEI_ASCEND_NPU=${NNADAPTER_WITH_HUAWEI_ASCEND_NPU}
126+ -DNNADAPTER_HUAWEI_ASCEND_NPU_SDK_ROOT=${NPU_SDK_ROOT}
113127 -DLITE_WITH_CODE_META_INFO=OFF
114128 -DLITE_WITH_ARM=OFF )
115129
@@ -120,6 +134,7 @@ if (NOT LITE_SOURCE_DIR OR NOT LITE_BINARY_DIR)
120134 GIT_TAG ${LITE_GIT_TAG}
121135 PREFIX ${LITE_SOURCES_DIR}
122136 UPDATE_COMMAND ""
137+ PATCH_COMMAND sed -i "s?NNadapter_bridges_path = os.path.abspath('..')+\"\/ lite\/ kernels\/ nnadapter\/ bridges\/ paddle_use_bridges.h\" ?NNadapter_bridges_path = os.path.abspath(\' ..\' )+\"\/ extern_lite\/ lite\/ kernels\/ nnadapter\/ bridges\/ paddle_use_bridges.h\" ?" ${LITE_SOURCES_DIR} /src/extern_lite//lite/tools/cmake_tools/record_supported_kernel_op.py && sed -i "/general::ssa::ConvertToSSA(cpp_prog)$<SEMICOLON>/d" ${LITE_SOURCES_DIR} /src/extern_lite/lite/model_parser/model_parser.cc
123138 BUILD_COMMAND ${LITE_BUILD_COMMAND}
124139 INSTALL_COMMAND ""
125140 CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
@@ -146,6 +161,11 @@ endif()
146161if (WITH_ARM)
147162 if (LITE_WITH_XPU)
148163 set (LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8.xpu)
164+ elseif (LITE_WITH_NNADAPTER)
165+ message ("Enable LITE_WITH_NNADAPTER" )
166+ if (NNADAPTER_WITH_HUAWEI_ASCEND_NPU)
167+ set (LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8.nnadapter)
168+ endif ()
149169 else ()
150170 set (LITE_OUTPUT_BIN_DIR inference_lite_lib.armlinux.armv8)
151171 endif ()
@@ -174,5 +194,16 @@ endfunction()
174194external_lite_libs(lite_full_static ${LITE_BINARY_DIR} /${LITE_OUTPUT_BIN_DIR} /cxx/lib/libpaddle_full_api_shared.so)
175195set (LITE_SHARED_LIB ${LITE_BINARY_DIR} /${LITE_OUTPUT_BIN_DIR} /cxx/lib/libpaddle_full_api_shared.so)
176196
197+ if (LITE_WITH_NNADAPTER)
198+ set (LITE_NNADAPTER_LIB ${LITE_BINARY_DIR} /${LITE_OUTPUT_BIN_DIR} /cxx/lib/libnnadapter.so)
199+ if (NNADAPTER_WITH_HUAWEI_ASCEND_NPU)
200+ external_lite_libs(lite_nnadapter ${LITE_BINARY_DIR} /${LITE_OUTPUT_BIN_DIR} /cxx/lib/libnnadapter.so ${LITE_BINARY_DIR} /${LITE_OUTPUT_BIN_DIR} /cxx/lib/libhuawei_ascend_npu.so)
201+ set (LITE_DEPS lite_full_static lite_nnadapter)
202+ set (LITE_NNADAPTER_NPU_LIB ${LITE_BINARY_DIR} /${LITE_OUTPUT_BIN_DIR} /cxx/lib/libhuawei_ascend_npu.so)
203+ endif ()
204+ else ()
205+ set (LITE_DEPS lite_full_static)
206+ endif ()
207+
177208add_definitions (-DPADDLE_WITH_LITE)
178209add_definitions (-DLITE_WITH_LOG)
0 commit comments