[wasi-nn] Add a new wasi-nn backend openvino (#3603)

This commit is contained in:
liang.he
2024-07-22 17:16:41 +08:00
committed by GitHub
parent 50f28495a1
commit 058bc47102
12 changed files with 1037 additions and 147 deletions

View File

@ -3,13 +3,30 @@
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
# Find tensorflow-lite
find_package(tensorflow_lite REQUIRED)
if(WAMR_BUILD_WASI_NN_TFLITE EQUAL 1)
# Find tensorflow-lite
find_package(tensorflow_lite REQUIRED)
endif()
set(WASI_NN_ROOT ${CMAKE_CURRENT_LIST_DIR}/..)
if(WAMR_BUILD_WASI_NN_OPENVINO EQUAL 1)
if(NOT DEFINED ENV{OpenVINO_DIR})
message(FATAL_ERROR
"OpenVINO_DIR is not defined. "
"Please follow https://docs.openvino.ai/2024/get-started/install-openvino.html,"
"install openvino, and set environment variable OpenVINO_DIR."
"Like OpenVINO_DIR=/usr/lib/openvino-2023.2/ cmake ..."
"Or OpenVINO_DIR=/opt/intel/openvino/ cmake ..."
)
endif()
list(APPEND CMAKE_MODULE_PATH $ENV{OpenVINO_DIR})
# Find OpenVINO
find_package(OpenVINO REQUIRED COMPONENTS Runtime)
endif()
#
# wasi-nn general
set(WASI_NN_ROOT ${CMAKE_CURRENT_LIST_DIR}/..)
add_library(
wasi-nn-general
SHARED
@ -37,20 +54,34 @@ target_compile_definitions(
#
# wasi-nn backends
add_library(
wasi-nn-tflite
SHARED
${WASI_NN_ROOT}/src/wasi_nn_tensorflowlite.cpp
)
#target_link_options(
# wasi-nn-tflite
# PRIVATE
# -Wl,--whole-archive libwasi-nn-general.a
# -Wl,--no-whole-archive
#)
target_link_libraries(
wasi-nn-tflite
PUBLIC
tensorflow-lite
wasi-nn-general
)
# - tflite
if(WAMR_BUILD_WASI_NN_TFLITE EQUAL 1)
add_library(
wasi-nn-tflite
SHARED
${WASI_NN_ROOT}/src/wasi_nn_tensorflowlite.cpp
)
target_link_libraries(
wasi-nn-tflite
PUBLIC
tensorflow-lite
wasi-nn-general
)
endif()
# - openvino
if(WAMR_BUILD_WASI_NN_OPENVINO EQUAL 1)
add_library(
wasi-nn-openvino
SHARED
${WASI_NN_ROOT}/src/wasi_nn_openvino.c
)
target_link_libraries(
wasi-nn-openvino
PUBLIC
openvino::runtime
openvino::runtime::c
wasi-nn-general
)
endif()