diff --git a/mindspore/lite/java/build_aar.sh b/mindspore/lite/java/build_aar.sh deleted file mode 100644 index 537fe6d20d..0000000000 --- a/mindspore/lite/java/build_aar.sh +++ /dev/null @@ -1,109 +0,0 @@ -#!/usr/bin/env bash - -set -e -BASE_PATH=$(cd "$(dirname $0)"; pwd) -TOP_PATH="${BASE_PATH}/../../.." - -get_version() { - VERSION_MAJOR=`grep "const int ms_version_major =" ../include/version.h | tr -dc "[0-9]"` - VERSION_MINOR=`grep "const int ms_version_minor =" ../include/version.h | tr -dc "[0-9]"` - VERSION_REVISION=`grep "const int ms_version_revision =" ../include/version.h | tr -dc "[0-9]"` - VERSION_STR=${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION} -} - -build_mslite_arm64() { - # build mindspore-lite arm64 - cd ${TOP_PATH} - bash build.sh -I arm64 - COMPILE_RET=$? - - if [[ "${COMPILE_RET}" -ne 0 ]]; then - echo "---------------- mindspore lite arm64: build failed ----------------" - exit - fi - # copy arm64 so - cd ${TOP_PATH}/output/ - rm -rf mindspore-lite-${VERSION_STR}-runtime-arm64-cpu - tar -zxvf mindspore-lite-${VERSION_STR}-runtime-arm64-cpu.tar.gz - mkdir -p ${BASE_PATH}/java/app/libs/arm64-v8a/ - rm -rf ${BASE_PATH}/java/app/libs/arm64-v8a/* - cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm64-cpu/lib/libmindspore-lite.so ${BASE_PATH}/java/app/libs/arm64-v8a/ - cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm64-cpu/lib/libmindspore-lite-fp16.so ${BASE_PATH}/java/app/libs/arm64-v8a/ - cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm64-cpu/lib/libmindspore-lite-optimize.so ${BASE_PATH}/java/app/libs/arm64-v8a/ - cp ${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so ${BASE_PATH}/java/app/libs/arm64-v8a/ -} - -build_mslite_arm32() { - # build mindspore-lite arm32 - cd ${TOP_PATH} - bash build.sh -I arm32 - COMPILE_RET=$? - - if [[ "${COMPILE_RET}" -ne 0 ]]; then - echo "---------------- mindspore lite arm32: build failed ----------------" - exit - fi - # copy arm32 so - cd ${TOP_PATH}/output/ - rm -rf mindspore-lite-${VERSION_STR}runtime-arm32-cpu - tar -zxvf mindspore-lite-${VERSION_STR}-runtime-arm32-cpu.tar.gz - mkdir -p ${BASE_PATH}/java/app/libs/armeabi-v7a/ - rm -rf ${BASE_PATH}/java/app/libs/armeabi-v7a/* - cp ${TOP_PATH}/output/mindspore-lite-${VERSION_STR}-runtime-arm32-cpu/lib/libmindspore-lite.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ - cp ${ANDROID_NDK}/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a/libc++_shared.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ -} - -build_jni_arm64() { - # build jni so - cd ${BASE_PATH}/java/app/src/main/native - rm -rf build - mkdir build - cd build - 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="c++_shared" -DCMAKE_BUILD_TYPE=Debug .. - VERBOSE=2 make -j8 - mkdir -p ${BASE_PATH}/java/app/libs/arm64-v8a/ - cp ${BASE_PATH}/java/app/src/main/native/build/libmindspore-lite-jni.so ${BASE_PATH}/java/app/libs/arm64-v8a/ -} - -build_jni_arm32() { - # build jni so - cd ${BASE_PATH}/java/app/src/main/native - rm -rf build - mkdir build - cd build - cmake -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" \ - -DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=Debug .. - VERBOSE=2 make -j8 - mkdir -p ${BASE_PATH}/java/app/libs/armeabi-v7a/ - cp ${BASE_PATH}/java/app/src/main/native/build/libmindspore-lite-jni.so ${BASE_PATH}/java/app/libs/armeabi-v7a/ -} - -build_aar() { - # build aar - ## check sdk gradle - cd ${BASE_PATH}/java - rm -rf .gradle build gradle gradlew gradlew.bat build app/build - - gradle init - gradle wrapper - ./gradlew build -} - -copy_output() { - # copy output - cd ${BASE_PATH}/ - rm -rf output - mkdir -pv output - cp ${BASE_PATH}/java/app/build/outputs/aar/mindspore-lite.aar ${BASE_PATH}/output/ -} - -get_version -build_mslite_arm64 -build_mslite_arm32 -build_jni_arm64 -build_jni_arm32 -build_aar -copy_output diff --git a/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/CpuBindMode.java b/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/CpuBindMode.java index ebdeeadb1d..57413b96f6 100644 --- a/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/CpuBindMode.java +++ b/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/CpuBindMode.java @@ -17,7 +17,7 @@ package com.mindspore.lite.config; public class CpuBindMode { - public static final int MID_CPU = -1; + public static final int MID_CPU = 2; public static final int HIGHER_CPU = 1; public static final int NO_BIND = 0; } diff --git a/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/MSConfig.java b/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/MSConfig.java index 549725e33d..0b2c9c0164 100644 --- a/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/MSConfig.java +++ b/mindspore/lite/java/java/app/src/main/java/com/mindspore/lite/config/MSConfig.java @@ -23,8 +23,13 @@ public class MSConfig { this.msConfigPtr = 0; } + public boolean init(int deviceType, int threadNum, int cpuBindMode, boolean enable_float16) { + this.msConfigPtr = createMSConfig(deviceType, threadNum, cpuBindMode, enable_float16); + return this.msConfigPtr != 0; + } + public boolean init(int deviceType, int threadNum, int cpuBindMode) { - this.msConfigPtr = createMSConfig(deviceType, threadNum, cpuBindMode); + this.msConfigPtr = createMSConfig(deviceType, threadNum, cpuBindMode ,false); return this.msConfigPtr != 0; } @@ -49,7 +54,7 @@ public class MSConfig { return msConfigPtr; } - private native long createMSConfig(int deviceType, int threadNum, int cpuBindMode); + private native long createMSConfig(int deviceType, int threadNum, int cpuBindMode, boolean enable_float16); private native void free(long msConfigPtr); } diff --git a/mindspore/lite/java/java/app/src/main/native/CMakeLists.txt b/mindspore/lite/java/java/app/src/main/native/CMakeLists.txt index 5aa1ada0db..6ac4430964 100644 --- a/mindspore/lite/java/java/app/src/main/native/CMakeLists.txt +++ b/mindspore/lite/java/java/app/src/main/native/CMakeLists.txt @@ -1,6 +1,9 @@ cmake_minimum_required(VERSION 3.14) project (Lite-java) +set(BUILD_LITE "on") +set(PLATFORM_ARM "on") + set(MS_VERSION_MAJOR ${MS_VERSION_MAJOR}) set(MS_VERSION_MINOR ${MS_VERSION_MINOR}) set(MS_VERSION_REVISION ${MS_VERSION_REVISION}) @@ -19,10 +22,17 @@ if (PLATFORM_ARM64) add_compile_definitions(ENABLE_ARM64) endif () -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../) ## lite include -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../core/) ## core include -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../../third_party/flatbuffers/include) ## third_party +set(TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../../../../../../..) +set(LITE_DIR ${TOP_DIR}/mindspore/lite) + +include(${TOP_DIR}/cmake/utils.cmake) +include(${TOP_DIR}/cmake/external_libs/flatbuffers.cmake) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${LITE_DIR}) ## lite include +include_directories(${TOP_DIR}/mindspore/core/) ## core include +include_directories(${LITE_DIR}/build) + link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${ANDROID_ABI}/) add_library(mindspore-lite-jni SHARED diff --git a/mindspore/lite/java/java/app/src/main/native/runtime/ms_config.cpp b/mindspore/lite/java/java/app/src/main/native/runtime/ms_config.cpp index 68be956bd8..cd7619986e 100644 --- a/mindspore/lite/java/java/app/src/main/native/runtime/ms_config.cpp +++ b/mindspore/lite/java/java/app/src/main/native/runtime/ms_config.cpp @@ -22,7 +22,8 @@ extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_config_MSConfig_createMSConfig(JNIEnv *env, jobject thiz, jint device_type, jint thread_num, - jint cpu_bind_mode) { + jint cpu_bind_mode, + jboolean enable_float16) { auto *context = new (std::nothrow) mindspore::lite::Context(); if (context == nullptr) { MS_LOGE("new Context fail!"); @@ -43,20 +44,21 @@ extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_config_MSConfig_creat return (jlong)context; } switch (cpu_bind_mode) { - case -1: - context->cpu_bind_mode_ = mindspore::lite::MID_CPU; - break; case 0: context->cpu_bind_mode_ = mindspore::lite::NO_BIND; break; case 1: context->cpu_bind_mode_ = mindspore::lite::HIGHER_CPU; break; + case 2: + context->cpu_bind_mode_ = mindspore::lite::MID_CPU; + break; default: MS_LOGE("Invalid cpu_bind_mode : %d", cpu_bind_mode); return (jlong)context; } context->thread_num_ = thread_num; + context->enable_float16_ = enable_float16; return (jlong)context; }