forked from mindspore-Ecosystem/mindspore
!24631 [MS][LITE]Add himix100 build and fix build.sh
Merge pull request !24631 from gongdaguo/hi3559
This commit is contained in:
commit
8b42909722
|
@ -31,7 +31,7 @@ endif()
|
|||
|
||||
string(REPLACE "-fvisibility=hidden" "-fvisibility=default" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
|
||||
|
||||
if(NOT PLATFORM_ARM32)
|
||||
if(NOT PLATFORM_ARM32 AND NOT TARGET_HIMIX)
|
||||
list(APPEND SDOT_FILES ${SDOT_SRC})
|
||||
add_library(nnacl_optimize_mid OBJECT ${SDOT_FILES})
|
||||
add_dependencies(nnacl_optimize_mid fbs_src)
|
||||
|
|
|
@ -6,18 +6,6 @@ set(BUILD_LITE "on")
|
|||
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/secure_option.cmake)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/compile_link_option.cmake)
|
||||
|
||||
if(TOOLCHAIN_NAME STREQUAL "himix200")
|
||||
set(TARGET_HIMIX200 on)
|
||||
add_compile_definitions(SUPPORT_NNIE)
|
||||
elseif(TOOLCHAIN_NAME STREQUAL "ohos-lite")
|
||||
set(TARGET_OHOS_LITE on)
|
||||
SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0 AND NOT TARGET_HIMIX200)
|
||||
message(FATAL_ERROR "GCC version ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0")
|
||||
endif()
|
||||
|
||||
#Options that can be configured through environment variables or manually
|
||||
set(MSLITE_GPU_BACKEND "" CACHE STRING "enable gpu backend, \
|
||||
opencl only support arm64 and x86_64 , tensorrt only support x86_64, opencl/cuda/tensorrt/off")
|
||||
|
@ -28,9 +16,7 @@ option(MSLITE_ENABLE_AVX "enable AVX instruction set, only x86_64 support" off)
|
|||
option(MSLITE_ENABLE_CONVERTER "enable converter, only x86_64 support" on)
|
||||
option(MSLITE_ENABLE_TOOLS "enable tools" on)
|
||||
option(MSLITE_ENABLE_TESTCASES "enable testcase" off)
|
||||
option(MSLITE_ENABLE_NNIE "enable NNIE" off)
|
||||
option(MSLITE_ENABLE_RUNTIME_PASS "enable runtime pass" on)
|
||||
option(MSLITE_COMPILE_NNIE "compile NNIE" off)
|
||||
option(MSLITE_ENABLE_HIGH_PERFORMANCE "enable high performance" off)
|
||||
option(MSLITE_ENABLE_STRING_KERNEL "enable string kernel" on)
|
||||
option(MSLITE_ENABLE_CONTROLFLOW "enable control and tensorlist" on)
|
||||
|
@ -82,12 +68,6 @@ endif()
|
|||
if(DEFINED ENV{MSLITE_ENABLE_TESTCASES})
|
||||
set(MSLITE_ENABLE_TESTCASES $ENV{MSLITE_ENABLE_TESTCASES})
|
||||
endif()
|
||||
if(DEFINED ENV{MSLITE_ENABLE_NNIE})
|
||||
set(MSLITE_ENABLE_NNIE $ENV{MSLITE_ENABLE_NNIE})
|
||||
endif()
|
||||
if(DEFINED ENV{MSLITE_COMPILE_NNIE})
|
||||
set(MSLITE_COMPILE_NNIE $ENV{MSLITE_COMPILE_NNIE})
|
||||
endif()
|
||||
if(DEFINED ENV{MSLITE_ENABLE_RUNTIME_PASS})
|
||||
set(MSLITE_ENABLE_RUNTIME_PASS $ENV{MSLITE_ENABLE_RUNTIME_PASS})
|
||||
endif()
|
||||
|
@ -131,6 +111,23 @@ if(DEFINED ENV{MSLITE_ENABLE_MODEL_ENCRYPTION})
|
|||
set(MSLITE_ENABLE_MODEL_ENCRYPTION $ENV{MSLITE_ENABLE_MODEL_ENCRYPTION})
|
||||
endif()
|
||||
|
||||
if(TOOLCHAIN_NAME STREQUAL "himix200")
|
||||
set(TARGET_HIMIX on)
|
||||
set(TARGET_HIMIX200 on)
|
||||
add_compile_definitions(SUPPORT_NNIE)
|
||||
elseif(TOOLCHAIN_NAME STREQUAL "himix100")
|
||||
set(TARGET_HIMIX on)
|
||||
set(TARGET_HIMIX100 on)
|
||||
add_compile_definitions(SUPPORT_NNIE)
|
||||
elseif(TOOLCHAIN_NAME STREQUAL "ohos-lite")
|
||||
set(TARGET_OHOS_LITE on)
|
||||
SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0 AND NOT TARGET_HIMIX)
|
||||
message(FATAL_ERROR "GCC version ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0")
|
||||
endif()
|
||||
|
||||
if(NOT MSLITE_ENABLE_ACL)
|
||||
set(ENABLE_GLIBCXX ON)
|
||||
endif()
|
||||
|
@ -192,7 +189,7 @@ if(MSLITE_ENABLE_NPU)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
if(TARGET_HIMIX200 OR TARGET_OHOS_LITE)
|
||||
if(TARGET_HIMIX OR TARGET_OHOS_LITE)
|
||||
set(MSLITE_ENABLE_MINDRT off)
|
||||
endif()
|
||||
|
||||
|
@ -211,15 +208,15 @@ message(STATUS "\tMSLITE_ENABLE_TOOLS = \t${MSLITE_ENABLE_TOOLS}")
|
|||
message(STATUS "\tMSLITE_ENABLE_TESTCASES = \t${MSLITE_ENABLE_TESTCASES}")
|
||||
message(STATUS "\tMSLITE_ENABLE_HIGH_PERFORMANCE = \t${MSLITE_ENABLE_HIGH_PERFORMANCE}")
|
||||
message(STATUS "\tMSLITE_ENABLE_RUNTIME_PASS = \t${MSLITE_ENABLE_RUNTIME_PASS}")
|
||||
message(STATUS "\tMSLITE_ENABLE_STRING_KERNEL = \t${MSLITE_ENABLE_STRING_KERNEL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_CONTROLFLOW = \t${MSLITE_ENABLE_CONTROLFLOW}")
|
||||
message(STATUS "\tMSLITE_ENABLE_AUTO_PARALLEL = \t${MSLITE_ENABLE_AUTO_PARALLEL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_WEIGHT_DECODE = \t${MSLITE_ENABLE_WEIGHT_DECODE}")
|
||||
message(STATUS "\tMSLITE_ENABLE_CUSTOM_KERNEL = \t${MSLITE_ENABLE_CUSTOM_KERNEL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_STRING_KERNEL = \t${MSLITE_ENABLE_STRING_KERNEL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_CONTROLFLOW = \t${MSLITE_ENABLE_CONTROLFLOW}")
|
||||
message(STATUS "\tMSLITE_ENABLE_AUTO_PARALLEL = \t${MSLITE_ENABLE_AUTO_PARALLEL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_WEIGHT_DECODE = \t${MSLITE_ENABLE_WEIGHT_DECODE}")
|
||||
message(STATUS "\tMSLITE_ENABLE_CUSTOM_KERNEL = \t${MSLITE_ENABLE_CUSTOM_KERNEL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_MINDRT = \t${MSLITE_ENABLE_MINDRT}")
|
||||
message(STATUS "\tMSLITE_ENABLE_V0 = \t${MSLITE_ENABLE_V0}")
|
||||
message(STATUS "\tBUILD_MINDDATA = \t${BUILD_MINDDATA}")
|
||||
message(STATUS "\tMSLITE_ENABLE_DELEGATE = \t${MSLITE_ENABLE_DELEGATE}")
|
||||
message(STATUS "\tMSLITE_ENABLE_DELEGATE = \t${MSLITE_ENABLE_DELEGATE}")
|
||||
message(STATUS "\tMSLITE_ENABLE_ACL = \t${MSLITE_ENABLE_ACL}")
|
||||
message(STATUS "\tMSLITE_ENABLE_FP16 = \t${MSLITE_ENABLE_FP16}")
|
||||
message(STATUS "\tMSLITE_ENABLE_MODEL_ENCRYPTION = \t${MSLITE_ENABLE_MODEL_ENCRYPTION}")
|
||||
|
@ -294,7 +291,11 @@ if(NOT MSVC)
|
|||
endif()
|
||||
|
||||
if(PLATFORM_ARM64)
|
||||
set(RUNTIME_COMPONENT_NAME "android-aarch64")
|
||||
if(TARGET_HIMIX100)
|
||||
set(RUNTIME_COMPONENT_NAME "linux-aarch64")
|
||||
else()
|
||||
set(RUNTIME_COMPONENT_NAME "android-aarch64")
|
||||
endif()
|
||||
elseif(PLATFORM_ARM32)
|
||||
set(RUNTIME_COMPONENT_NAME "android-aarch32")
|
||||
if(TARGET_HIMIX200)
|
||||
|
@ -312,10 +313,6 @@ else()
|
|||
set(RUNTIME_COMPONENT_NAME "linux-x64")
|
||||
endif()
|
||||
|
||||
if(MSLITE_COMPILE_NNIE AND (NOT PLATFORM_ARM))
|
||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tools/converter/nnie)
|
||||
endif()
|
||||
|
||||
string(REPLACE "/mindspore/lite" "" TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(CORE_DIR ${TOP_DIR}/mindspore/core)
|
||||
set(CCSRC_DIR ${TOP_DIR}/mindspore/ccsrc)
|
||||
|
|
|
@ -38,6 +38,7 @@ write_commit_file() {
|
|||
}
|
||||
|
||||
build_lite_x86_64_jni_and_jar() {
|
||||
X86_JNI_CMAKE_ARGS=$1
|
||||
# copy x86 so
|
||||
local is_train=on
|
||||
cd ${BASEPATH}/output/tmp
|
||||
|
@ -63,8 +64,7 @@ build_lite_x86_64_jni_and_jar() {
|
|||
cd ${BASEPATH}/mindspore/lite/build
|
||||
rm -rf java/jni && mkdir -pv java/jni
|
||||
cd java/jni
|
||||
cmake -DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION} \
|
||||
$CMAKE_ARGS -DENABLE_VERBOSE=${ENABLE_VERBOSE} -DSUPPORT_TRAIN=${is_train} "${LITE_JAVA_PATH}/native/"
|
||||
cmake ${X86_JNI_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} "${LITE_JAVA_PATH}/native/"
|
||||
make -j$THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "---------------- mindspore lite: build jni x86_64 failed----------------"
|
||||
|
@ -113,8 +113,8 @@ build_lite_x86_64_jni_and_jar() {
|
|||
}
|
||||
|
||||
build_lite() {
|
||||
LITE_CMAKE_ARGS=${CMAKE_ARGS}
|
||||
[ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/output
|
||||
get_version
|
||||
echo "============ Start building MindSpore Lite ${VERSION_STR} ============"
|
||||
local local_lite_platform=${LITE_PLATFORM}
|
||||
if [[ "${LITE_ENABLE_AAR}" == "on" ]]; then
|
||||
|
@ -131,65 +131,72 @@ build_lite() {
|
|||
cd ${BASEPATH}/mindspore/lite/build
|
||||
write_commit_file
|
||||
|
||||
if [[ "${local_lite_platform}" == "arm32" ]]; then
|
||||
if [[ "${TOOLCHAIN_NAME}" == "ohos-lite" ]]; then
|
||||
COMPILE_MINDDATA_LITE="off"
|
||||
CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/ohos-lite.toolchain.cmake
|
||||
CMAKE_TOOLCHAIN_NAME="ohos-lite"
|
||||
elif [[ "${TOOLCHAIN_NAME}" == "himix200" ]]; then
|
||||
COMPILE_MINDDATA_LITE="off"
|
||||
CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/himix200.toolchain.cmake
|
||||
CMAKE_TOOLCHAIN_NAME="himix200"
|
||||
else
|
||||
CMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
ANDROID_NATIVE_API_LEVEL="19"
|
||||
CMAKE_ANDROID_NDK=${ANDROID_NDK}
|
||||
CMAKE_ANDROID_ABI="armeabi-v7a"
|
||||
CMAKE_ANDROID_TOOLCHAIN_NAME="clang"
|
||||
CMAKE_ANDROID_STL=${MSLITE_ANDROID_STL}
|
||||
MSLITE_ENABLE_FP16="on"
|
||||
fi
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DENABLE_ASAN=${ENABLE_ASAN} -DCMAKE_INSTALL_PREFIX=${BUILD_PATH}/output/tmp"
|
||||
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
LITE_CMAKE_ARGS=`echo $LITE_CMAKE_ARGS | sed 's/-DCMAKE_BUILD_TYPE=Debug/-DCMAKE_BUILD_TYPE=Release/g'`
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off -DMSLITE_ENABLE_NPU=off"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=off"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DENABLE_BITCODE=0 -G Xcode"
|
||||
CMAKE_TOOLCHAIN_FILE=${BASEPATH}/cmake/lite_ios.cmake
|
||||
fi
|
||||
|
||||
if [[ "${local_lite_platform}" == "arm64" ]]; then
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
pkg_name=mindspore-lite-${VERSION_STR}-ios-aarch64
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${BASEPATH}/cmake/lite_ios.cmake -DARCHS="arm64" -DENABLE_BITCODE=0 \
|
||||
-DCMAKE_BUILD_TYPE="Release" -DBUILD_MINDDATA="" -DPLATFORM_ARM64="on" -DENABLE_NEON="on" -DMSLITE_ENABLE_FP16="on" \
|
||||
-DMSLITE_ENABLE_TRAIN="off" -DMSLITE_GPU_BACKEND="off" -DMSLITE_ENABLE_NPU="off" \
|
||||
-DENABLE_ASAN=${ENABLE_ASAN} -DCMAKE_INSTALL_PREFIX=${BUILD_PATH}/output/tmp -G Xcode ..
|
||||
else
|
||||
checkndk
|
||||
echo "default link libc++_static.a, export MSLITE_ANDROID_STL=c++_shared to link libc++_shared.so"
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \
|
||||
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="arm64-v8a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \
|
||||
-DANDROID_STL=${MSLITE_ANDROID_STL} $CMAKE_ARGS -DBUILD_MINDDATA=${COMPILE_MINDDATA_LITE} \
|
||||
-DPLATFORM_ARM64="on" -DENABLE_NEON="on" -DMSLITE_ENABLE_FP16="on" -DCMAKE_INSTALL_PREFIX=${BASEPATH}/output/tmp \
|
||||
-DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION} \
|
||||
-DENABLE_ASAN=${ENABLE_ASAN} -DENABLE_VERBOSE=${ENABLE_VERBOSE} "${BASEPATH}/mindspore/lite"
|
||||
fi
|
||||
elif [[ "${local_lite_platform}" == "arm32" ]]; then
|
||||
if [[ "${local_lite_platform}" == "arm32" ]]; then
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_ARM32=on -DENABLE_NEON=on"
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
pkg_name=mindspore-lite-${VERSION_STR}-ios-aarch32
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${BASEPATH}/cmake/lite_ios.cmake -DARCHS="armv7;armv7s" -DENABLE_BITCODE=0 \
|
||||
-DCMAKE_BUILD_TYPE="Release" -DBUILD_MINDDATA="" -DPLATFORM_ARM32="on" -DENABLE_NEON="on" \
|
||||
-DMSLITE_ENABLE_TRAIN="off" -DMSLITE_GPU_BACKEND="off" -DMSLITE_ENABLE_NPU="off" \
|
||||
-DENABLE_ASAN=${ENABLE_ASAN} -DCMAKE_INSTALL_PREFIX=${BUILD_PATH}/output/tmp -G Xcode ..
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DARCHS=armv7;armv7s"
|
||||
elif [[ "${TOOLCHAIN_NAME}" == "ohos-lite" ]]; then
|
||||
CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/ohos-lite.toolchain.cmake
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=ohos-lite"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=off"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off"
|
||||
elif [[ "${TOOLCHAIN_NAME}" == "himix200" ]]; then
|
||||
CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/himix200.toolchain.cmake
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=himix200"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=off"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off"
|
||||
else
|
||||
checkndk
|
||||
echo "default link libc++_static.a, export MSLITE_ANDROID_STL=c++_shared to link libc++_shared.so"
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} -DTOOLCHAIN_NAME=${CMAKE_TOOLCHAIN_NAME} -DANDROID_NATIVE_API_LEVEL=${ANDROID_NATIVE_API_LEVEL} \
|
||||
-DANDROID_NDK=${CMAKE_ANDROID_NDK} -DANDROID_ABI=${CMAKE_ANDROID_ABI} -DANDROID_TOOLCHAIN_NAME=${CMAKE_ANDROID_TOOLCHAIN_NAME} \
|
||||
-DANDROID_STL=${CMAKE_ANDROID_STL} $CMAKE_ARGS -DBUILD_MINDDATA=${COMPILE_MINDDATA_LITE} \
|
||||
-DPLATFORM_ARM32="on" -DENABLE_NEON="on" -DMSLITE_ENABLE_FP16=${MSLITE_ENABLE_FP16} -DCMAKE_INSTALL_PREFIX=${BASEPATH}/output/tmp \
|
||||
-DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION} \
|
||||
-DENABLE_ASAN=${ENABLE_ASAN} -DENABLE_VERBOSE=${ENABLE_VERBOSE} "${BASEPATH}/mindspore/lite"
|
||||
CMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=lite_cv"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DANDROID_NATIVE_API_LEVEL=19 -DANDROID_NDK=${ANDROID_NDK} -DANDROID_ABI=armeabi-v7a -DANDROID_TOOLCHAIN_NAME=clang -DANDROID_STL=${MSLITE_ANDROID_STL}"
|
||||
fi
|
||||
elif [[ "${local_lite_platform}" == "arm64" ]]; then
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_ARM64=on -DENABLE_NEON=on"
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
pkg_name=mindspore-lite-${VERSION_STR}-ios-aarch64
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DARCHS=arm64"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on"
|
||||
elif [[ "${TOOLCHAIN_NAME}" == "himix100" ]]; then
|
||||
CMAKE_TOOLCHAIN_FILE=${BASEPATH}/mindspore/lite/cmake/himix100.toolchain.cmake
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DTOOLCHAIN_NAME=himix100"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=off"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=off -DMSLITE_ENABLE_TRAIN=off -DMSLITE_GPU_BACKEND=off"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_TOOLS=off"
|
||||
else
|
||||
checkndk
|
||||
CMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=lite_cv"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DMSLITE_ENABLE_FP16=on"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DANDROID_NATIVE_API_LEVEL=19 -DANDROID_NDK=${ANDROID_NDK} -DANDROID_ABI=arm64-v8a -DANDROID_TOOLCHAIN_NAME=aarch64-linux-android-clang -DANDROID_STL=${MSLITE_ANDROID_STL}"
|
||||
fi
|
||||
else
|
||||
cmake -DPLATFORM_X86_64=on $CMAKE_ARGS -DBUILD_MINDDATA=${COMPILE_MINDDATA_LITE} \
|
||||
-DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION} \
|
||||
-DENABLE_ASAN=${ENABLE_ASAN} -DCMAKE_INSTALL_PREFIX=${BASEPATH}/output/tmp -DENABLE_VERBOSE=${ENABLE_VERBOSE} "${BASEPATH}/mindspore/lite"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DBUILD_MINDDATA=lite_cv"
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DPLATFORM_X86_64=on"
|
||||
fi
|
||||
|
||||
if [[ "X$CMAKE_TOOLCHAIN_FILE" != "X" ]]; then
|
||||
LITE_CMAKE_ARGS="${LITE_CMAKE_ARGS} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
|
||||
fi
|
||||
|
||||
if [[ "${local_lite_platform}" == "arm64" || "${local_lite_platform}" == "arm32" ]]; then
|
||||
echo "default link libc++_static.a, export MSLITE_ANDROID_STL=c++_shared to link libc++_shared.so"
|
||||
fi
|
||||
echo "cmake ${LITE_CMAKE_ARGS} ${BASEPATH}/mindspore/lite"
|
||||
cmake ${LITE_CMAKE_ARGS} "${BASEPATH}/mindspore/lite"
|
||||
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
xcodebuild ONLY_ACTIVE_ARCH=NO -configuration Release -scheme mindspore-lite_static -target mindspore-lite_static -sdk iphoneos -quiet
|
||||
else
|
||||
|
@ -197,7 +204,7 @@ build_lite() {
|
|||
if [[ "${local_lite_platform}" == "x86_64" ]]; then
|
||||
if [ "${JAVA_HOME}" ]; then
|
||||
echo -e "\e[31mJAVA_HOME=$JAVA_HOME \e[0m"
|
||||
build_lite_x86_64_jni_and_jar
|
||||
build_lite_x86_64_jni_and_jar $1
|
||||
else
|
||||
echo -e "\e[31mJAVA_HOME is not set, so jni and jar packages will not be compiled \e[0m"
|
||||
echo -e "\e[31mIf you want to compile the JAR package, please set $JAVA_HOME. For example: export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 \e[0m"
|
||||
|
@ -233,21 +240,21 @@ build_lite() {
|
|||
fi
|
||||
|
||||
[ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/output/tmp/
|
||||
if [[ "${MSLITE_ENABLE_NNIE}" == "on" ]]; then
|
||||
compile_nnie_script=${BASEPATH}/mindspore/lite/tools/providers/NNIE/Hi3516D/compile_nnie.sh
|
||||
local compile_nnie_script=${BASEPATH}/mindspore/lite/tools/providers/NNIE/Hi3516D/compile_nnie.sh
|
||||
if [[ "${MSLITE_ENABLE_NNIE}" == "on" && "${local_lite_platform}" == "x86_64" ]]; then
|
||||
cd ${BASEPATH}/../
|
||||
if [[ "${local_lite_platform}" == "x86_64" ]]; then
|
||||
sh ${compile_nnie_script} -I x86_64 -b nnie_3516_master_dev -j $THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "compile x86_64 for nnie failed."
|
||||
exit 1
|
||||
fi
|
||||
elif [[ "${local_lite_platform}" == "arm32" ]]; then
|
||||
sh ${compile_nnie_script} -I arm32 -b nnie_3516_master_dev -j $THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "compile arm32 for nnie failed."
|
||||
exit 1
|
||||
fi
|
||||
sh ${compile_nnie_script} -I x86_64 -b nnie_3516_master -j $THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "compile x86_64 for nnie failed."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [[ "${TOOLCHAIN_NAME}" == "himix200" && "${local_lite_platform}" == "arm32" ]]; then
|
||||
cd ${BASEPATH}/../
|
||||
sh ${compile_nnie_script} -I arm32 -b nnie_3516_master -j $THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "compile arm32 for nnie failed."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
echo "---------------- mindspore lite: build success ----------------"
|
||||
|
@ -255,6 +262,7 @@ build_lite() {
|
|||
}
|
||||
|
||||
build_lite_arm64_and_jni() {
|
||||
local ARM64_CMAKE_ARGS=${CMAKE_ARGS}
|
||||
build_lite "arm64"
|
||||
# copy arm64 so
|
||||
local is_train=on
|
||||
|
@ -279,11 +287,10 @@ build_lite_arm64_and_jni() {
|
|||
# build jni so
|
||||
[ -n "${BASEPATH}" ] && rm -rf java/jni && mkdir -pv java/jni
|
||||
cd java/jni
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \
|
||||
cmake ${ARM64_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} -DPLATFORM_ARM64=on \
|
||||
-DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \
|
||||
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="arm64-v8a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \
|
||||
-DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION} \
|
||||
-DANDROID_STL=${MSLITE_ANDROID_STL} $CMAKE_ARGS -DENABLE_VERBOSE=${ENABLE_VERBOSE} \
|
||||
-DSUPPORT_TRAIN=${is_train} -DPLATFORM_ARM64=on "${LITE_JAVA_PATH}/native/"
|
||||
-DANDROID_STL=${MSLITE_ANDROID_STL} "${LITE_JAVA_PATH}/native/"
|
||||
make -j$THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "---------------- mindspore lite: build jni arm64 failed----------------"
|
||||
|
@ -298,6 +305,7 @@ build_lite_arm64_and_jni() {
|
|||
}
|
||||
|
||||
build_lite_arm32_and_jni() {
|
||||
local ARM32_CMAKE_ARGS=${CMAKE_ARGS}
|
||||
build_lite "arm32"
|
||||
# copy arm32 so
|
||||
local is_train=on
|
||||
|
@ -323,11 +331,10 @@ build_lite_arm32_and_jni() {
|
|||
# build jni so
|
||||
[ -n "${BASEPATH}" ] && rm -rf java/jni && mkdir -pv java/jni
|
||||
cd java/jni
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \
|
||||
cmake ${ARM32_CMAKE_ARGS} -DSUPPORT_TRAIN=${is_train} -DPLATFORM_ARM32=on \
|
||||
-DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" -DANDROID_NATIVE_API_LEVEL="19" \
|
||||
-DANDROID_NDK="${ANDROID_NDK}" -DANDROID_ABI="armeabi-v7a" -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" \
|
||||
-DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION} \
|
||||
-DANDROID_STL=${MSLITE_ANDROID_STL} $CMAKE_ARGS -DENABLE_VERBOSE=${ENABLE_VERBOSE} \
|
||||
-DSUPPORT_TRAIN=${is_train} -DPLATFORM_ARM32=on "${LITE_JAVA_PATH}/native"
|
||||
-DANDROID_STL=${MSLITE_ANDROID_STL} "${LITE_JAVA_PATH}/native"
|
||||
make -j$THREAD_NUM
|
||||
if [[ $? -ne 0 ]]; then
|
||||
echo "---------------- mindspore lite: build jni arm32 failed----------------"
|
||||
|
@ -342,7 +349,6 @@ build_lite_arm32_and_jni() {
|
|||
}
|
||||
|
||||
build_aar() {
|
||||
get_version
|
||||
if [[ "X${INC_BUILD}" == "Xoff" ]]; then
|
||||
[ -n "${BASEPATH}" ] && rm -rf ${BASEPATH}/mindspore/lite/build
|
||||
fi
|
||||
|
@ -401,6 +407,7 @@ if [[ "${MSLITE_ENABLE_ACL}" == "on" ]]; then
|
|||
update_submodule
|
||||
fi
|
||||
|
||||
CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_VERBOSE=${ENABLE_VERBOSE}"
|
||||
if [[ "${DEBUG_MODE}" == "on" ]]; then
|
||||
CMAKE_ARGS="-DCMAKE_BUILD_TYPE=Debug "
|
||||
else
|
||||
|
@ -410,6 +417,9 @@ if [[ "X$ENABLE_GITEE" = "Xon" ]]; then
|
|||
CMAKE_ARGS="${CMAKE_ARGS} -DENABLE_GITEE=ON"
|
||||
fi
|
||||
|
||||
get_version
|
||||
CMAKE_ARGS="${CMAKE_ARGS} -DMS_VERSION_MAJOR=${VERSION_MAJOR} -DMS_VERSION_MINOR=${VERSION_MINOR} -DMS_VERSION_REVISION=${VERSION_REVISION}"
|
||||
|
||||
if [[ "X$LITE_ENABLE_AAR" = "Xon" ]]; then
|
||||
build_aar
|
||||
elif [[ "X$LITE_PLATFORM" != "X" ]]; then
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
set(CMAKE_SYSTEM_NAME Linux)
|
||||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
|
||||
set(HISI_TOOLCHAIN_PATH "/opt")
|
||||
|
||||
if(DEFINED ENV{HISI_TOOLCHAIN_PATH})
|
||||
set(HISI_TOOLCHAIN_PATH $ENV{HISI_TOOLCHAIN_PATH})
|
||||
endif()
|
||||
set(CMAKE_C_COMPILER ${HISI_TOOLCHAIN_PATH}/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${HISI_TOOLCHAIN_PATH}/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++)
|
||||
|
||||
find_path(GCC_PATH gcc)
|
||||
find_path(GXX_PATH g++)
|
||||
if(NOT ${GCC_PATH} STREQUAL "GCC_PATH-NOTFOUND" AND NOT ${GXX_PATH} STREQUAL "GXX_PATH-NOTFOUND")
|
||||
set(FLATC_GCC_COMPILER ${GCC_PATH}/gcc)
|
||||
set(FLATC_GXX_COMPILER ${GXX_PATH}/g++)
|
||||
endif()
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CROSS_COMPILATION_ARM himix100)
|
||||
set(CROSS_COMPILATION_ARCHITECTURE armv8-a)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "-march=armv8-a ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
|
||||
|
||||
set(HIMIX_STRIP ${HISI_TOOLCHAIN_PATH}/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-strip)
|
|
@ -2,12 +2,12 @@ set(CMAKE_SYSTEM_NAME Linux)
|
|||
set(CMAKE_SYSTEM_PROCESSOR arm)
|
||||
|
||||
if(DEFINED ENV{HISI_TOOLCHAIN_PATH})
|
||||
set(HISI_TOOLCHAIN_PATH $ENV{HISI_TOOLCHAIN_PATH})
|
||||
set(TOOLCHAIN_PATH $ENV{HISI_TOOLCHAIN_PATH}/hisi-linux/x86_arm)
|
||||
else()
|
||||
message(FATAL_ERROR "ENV HISI_TOOLCHAIN_PATH not found")
|
||||
set(TOOLCHAIN_PATH "/opt/hisi-linux/x86-arm")
|
||||
endif()
|
||||
set(CMAKE_C_COMPILER ${HISI_TOOLCHAIN_PATH}/hisi-linux/x86_arm/arm-himix200-linux/bin/arm-himix200-linux-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${HISI_TOOLCHAIN_PATH}/hisi-linux/x86_arm/arm-himix200-linux/bin/arm-himix200-linux-g++)
|
||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PATH}/arm-himix200-linux/bin/arm-himix200-linux-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PATH}/arm-himix200-linux/bin/arm-himix200-linux-g++)
|
||||
|
||||
find_path(GCC_PATH gcc)
|
||||
find_path(GXX_PATH g++)
|
||||
|
@ -28,4 +28,4 @@ set(CMAKE_CXX_FLAGS "-march=armv7-a -mfloat-abi=softfp -mfpu=neon-vfpv4 ${CMAKE
|
|||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "c flags")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING "c++ flags")
|
||||
|
||||
set(HIMIX_STRIP ${HISI_TOOLCHAIN_PATH}/hisi-linux/x86_arm/arm-himix200-linux/bin/arm-himix200-linux-strip)
|
||||
set(HIMIX_STRIP ${TOOLCHAIN_PATH}/arm-himix200-linux/bin/arm-himix200-linux-strip)
|
||||
|
|
|
@ -6,10 +6,6 @@ set(BUILD_LITE "on")
|
|||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/secure_option.cmake)
|
||||
include(${CMAKE_CURRENT_SOURCE_DIR}/../../cmake/compile_link_option.cmake)
|
||||
|
||||
if(TARGET_HIMIX200)
|
||||
set(CMAKE_CXX_FLAGS "-Wno-error=maybe-uninitialized ${CMAKE_CXX_FLAGS}")
|
||||
endif()
|
||||
|
||||
if(PLATFORM_ARM64 OR PLATFORM_ARM32)
|
||||
set(PLATFORM_ARM "on")
|
||||
add_compile_definitions(PLATFORM_ARM)
|
||||
|
@ -22,9 +18,6 @@ if(PLATFORM_ARM32 OR PLATFORM_ARM64)
|
|||
-fdata-sections -ffast-math -fno-rtti -fno-exceptions")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fomit-frame-pointer -fstrict-aliasing -ffunction-sections \
|
||||
-fdata-sections -ffast-math -fno-rtti -fno-exceptions")
|
||||
if(TARGET_HIMIX200)
|
||||
string(REPLACE "-fno-rtti " "" CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
|
|
@ -68,9 +68,14 @@ void Conv2DINT8Coder::CheckSupportOptimize() {
|
|||
matmul_func_ = "NULL";
|
||||
break;
|
||||
case kARM64:
|
||||
#ifdef SUPPORT_NNIE
|
||||
support_optimize_ = false;
|
||||
tile_num_ = 8;
|
||||
#else
|
||||
// check support_optimize at runtime
|
||||
matmul_func_ = "MatMulRInt8_optimize_handler";
|
||||
tile_num_ = 8;
|
||||
#endif
|
||||
break;
|
||||
case kX86:
|
||||
support_optimize_ = true;
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
bool GetSupportOptFlag() {
|
||||
bool status = false;
|
||||
#ifdef ENABLE_ARM64
|
||||
#if (defined ENABLE_ARM64) && (!defined SUPPORT_NNIE)
|
||||
int hwcap_type = 16;
|
||||
// getHwCap
|
||||
const uint32_t hwcap = getauxval(hwcap_type);
|
||||
|
|
|
@ -309,7 +309,7 @@ if(SUPPORT_NPU)
|
|||
target_link_libraries(mindspore-lite npu_kernel_mid)
|
||||
target_link_libraries(mindspore-lite_static npu_kernel_mid)
|
||||
endif()
|
||||
if(PLATFORM_ARM32 OR PLATFORM_ARM64 AND NOT TARGET_HIMIX200 AND NOT TARGET_OHOS_LITE)
|
||||
if(PLATFORM_ARM32 OR PLATFORM_ARM64 AND NOT TARGET_HIMIX AND NOT TARGET_OHOS_LITE)
|
||||
target_link_libraries(mindspore-lite log)
|
||||
target_link_libraries(mindspore-lite_static log)
|
||||
endif()
|
||||
|
@ -335,7 +335,7 @@ endif()
|
|||
|
||||
########################## build optimize and float16 library #################################
|
||||
if(PLATFORM_ARM)
|
||||
if(PLATFORM_ARM64)
|
||||
if(PLATFORM_ARM64 AND NOT TARGET_HIMIX)
|
||||
target_link_libraries(mindspore-lite cpu_opt_kernel_mid nnacl_optimize_mid)
|
||||
target_link_libraries(mindspore-lite_static cpu_opt_kernel_mid nnacl_optimize_mid)
|
||||
endif()
|
||||
|
|
|
@ -139,14 +139,18 @@ void Convolution1x1Int8CPUKernel::FreeRunBuf() {
|
|||
void Convolution1x1Int8CPUKernel::CheckSupportOptimize() {
|
||||
support_optimize_ = false;
|
||||
matmul_func_ = MatMulInt8_4x16_r;
|
||||
#ifdef ENABLE_ARM64
|
||||
#if defined(ENABLE_ARM64)
|
||||
#if !defined(SUPPORT_NNIE)
|
||||
if (mindspore::lite::IsSupportSDot()) {
|
||||
support_optimize_ = true;
|
||||
matmul_func_ = MatMulDpInt8_optimize_handler;
|
||||
} else {
|
||||
#endif
|
||||
support_optimize_ = false;
|
||||
matmul_func_ = nullptr;
|
||||
#if !defined(SUPPORT_NNIE)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -34,14 +34,18 @@ void ConvolutionInt8CPUKernel::CheckSupportOptimize() {
|
|||
support_optimize_ = false;
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_ARM64
|
||||
#if defined(ENABLE_ARM64)
|
||||
#if !defined(SUPPORT_NNIE)
|
||||
if (mindspore::lite::IsSupportSDot()) {
|
||||
matmul_func_ = MatMulRInt8_optimize_handler;
|
||||
support_optimize_ = true;
|
||||
} else {
|
||||
#endif
|
||||
tile_num_ = 4;
|
||||
support_optimize_ = false;
|
||||
#if !defined(SUPPORT_NNIE)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
conv_param_->tile_num_ = tile_num_;
|
||||
}
|
||||
|
|
|
@ -117,13 +117,17 @@ void DeConvInt8CPUKernel::CheckSupportOptimize() {
|
|||
support_optimize_ = true;
|
||||
matmul_func_ = MatMulInt8_16x4;
|
||||
#ifdef ENABLE_ARM64
|
||||
#if !defined(SUPPORT_NNIE)
|
||||
if (mindspore::lite::IsSupportSDot()) {
|
||||
support_optimize_ = true;
|
||||
matmul_func_ = MatMulR4Int8_optimize_handler;
|
||||
} else {
|
||||
#endif
|
||||
support_optimize_ = false;
|
||||
matmul_func_ = MatMulR4Int8Neon64;
|
||||
#if !defined(SUPPORT_NNIE)
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -18,7 +18,7 @@ add_executable(benchmark
|
|||
|
||||
add_dependencies(benchmark fbs_src)
|
||||
|
||||
if((PLATFORM_ARM32 OR PLATFORM_ARM64) AND NOT TARGET_HIMIX200 AND NOT TARGET_OHOS_LITE)
|
||||
if((PLATFORM_ARM32 OR PLATFORM_ARM64) AND NOT TARGET_HIMIX AND NOT TARGET_OHOS_LITE)
|
||||
if(SUPPORT_NPU AND ANDROID_STL STREQUAL "c++_static")
|
||||
target_link_libraries(benchmark mindspore-lite mindspore::json c++_shared)
|
||||
else()
|
||||
|
|
Loading…
Reference in New Issue