| @@ -4,6 +4,15 @@ mindspore/lib | |||||
| output | output | ||||
| *.ir | *.ir | ||||
| # mindspore lite java | |||||
| mindspore/lite/java/java/.gradle | |||||
| mindspore/lite/java/java/build | |||||
| mindspore/lite/java/java/gradle | |||||
| mindspore/lite/java/java/gradlew | |||||
| mindspore/lite/java/java/gradlew.bat | |||||
| mindspore/lite/java/java/app/build | |||||
| mindspore/lite/java/java/app/libs | |||||
| # flatbuffer | # flatbuffer | ||||
| mindspore/lite/tools/converter/parser/tflite/schema_generated.h | mindspore/lite/tools/converter/parser/tflite/schema_generated.h | ||||
| mindspore/lite/tools/converter/parser/caffe/caffe.pb.cc | mindspore/lite/tools/converter/parser/caffe/caffe.pb.cc | ||||
| @@ -0,0 +1,48 @@ | |||||
| #!/usr/bin/env bash | |||||
| set -e | |||||
| BASE_PATH=$(cd "$(dirname $0)"; pwd) | |||||
| TOP_PATH="${BASE_PATH}/../../.." | |||||
| # build mindspore-lite arm64 | |||||
| cd ${TOP_PATH} | |||||
| bash build.sh -I arm64 | |||||
| COMPILE_RET=$? | |||||
| if [[ "${COMPILE_RET}" -ne 0 ]]; then | |||||
| echo "---------------- mindspore lite: build failed ----------------" | |||||
| exit | |||||
| fi | |||||
| # copy arm64 so | |||||
| cd ${TOP_PATH}/output/ | |||||
| rm -rf MSLite-0.6.0-linux_arm64 | |||||
| tar -zxvf MSLite-0.6.0-linux_arm64.tar.gz | |||||
| cp ${TOP_PATH}/output/MSLite-0.6.0-linux_arm64/lib/libmindspore-lite.so ${BASE_PATH}/lib/ | |||||
| cp ${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so ${BASE_PATH}/lib/ | |||||
| # build jni so | |||||
| cd ${BASE_PATH}/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 | |||||
| cp ${BASE_PATH}/native/build/libmindspore-lite-jni.so ${BASE_PATH}/lib/ | |||||
| # build aar | |||||
| ## check sdk gradle | |||||
| cd ${BASE_PATH}/java | |||||
| rm -rf .gradle build gradle gradlew gradlew.bat build app/build | |||||
| rm -rf ${BASE_PATH}/java/app/libs/arm64-v8a/* | |||||
| cp ${BASE_PATH}/lib/*.so ${BASE_PATH}/java/app/libs/arm64-v8a/ | |||||
| gradle init | |||||
| gradle wrapper | |||||
| ./gradlew build | |||||
| # 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/ | |||||
| @@ -0,0 +1,45 @@ | |||||
| apply plugin: 'com.android.library' | |||||
| android { | |||||
| compileSdkVersion 30 | |||||
| buildToolsVersion "30.0.1" | |||||
| defaultConfig { | |||||
| minSdkVersion 19 | |||||
| targetSdkVersion 30 | |||||
| versionCode 1 | |||||
| versionName "1.0" | |||||
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | |||||
| externalNativeBuild { | |||||
| cmake { | |||||
| cppFlags "-std=c++17" | |||||
| } | |||||
| } | |||||
| ndk { | |||||
| abiFilters 'arm64-v8a' | |||||
| } | |||||
| } | |||||
| buildTypes { | |||||
| release { | |||||
| minifyEnabled false | |||||
| proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | |||||
| } | |||||
| sourceSets { | |||||
| main { | |||||
| jniLibs.srcDirs=['libs'] | |||||
| } | |||||
| } | |||||
| } | |||||
| android.libraryVariants.all { | |||||
| variant->variant.outputs.all { | |||||
| outputFileName = "mindspore-lite.aar" | |||||
| } | |||||
| } | |||||
| } | |||||
| dependencies { | |||||
| implementation fileTree(dir: "libs", include: ["*.jar"]) | |||||
| testImplementation 'junit:junit:4.12' | |||||
| } | |||||
| @@ -0,0 +1,21 @@ | |||||
| # Add project specific ProGuard rules here. | |||||
| # You can control the set of applied configuration files using the | |||||
| # proguardFiles setting in build.gradle. | |||||
| # | |||||
| # For more details, see | |||||
| # http://developer.android.com/guide/developing/tools/proguard.html | |||||
| # If your project uses WebView with JS, uncomment the following | |||||
| # and specify the fully qualified class name to the JavaScript interface | |||||
| # class: | |||||
| #-keepclassmembers class fqcn.of.javascript.interface.for.webview { | |||||
| # public *; | |||||
| #} | |||||
| # Uncomment this to preserve the line number information for | |||||
| # debugging stack traces. | |||||
| #-keepattributes SourceFile,LineNumberTable | |||||
| # If you keep the line number information, uncomment this to | |||||
| # hide the original source file name. | |||||
| #-renamesourcefileattribute SourceFile | |||||
| @@ -0,0 +1,4 @@ | |||||
| <?xml version="1.0" encoding="utf-8"?> | |||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" | |||||
| package="com.mindspore.lite"> | |||||
| </manifest> | |||||
| @@ -1,4 +1,4 @@ | |||||
| package cn.huawei.mindspore; | |||||
| package com.mindspore.lite; | |||||
| public class DataType { | public class DataType { | ||||
| public static final int kNumberTypeBool = 30; | public static final int kNumberTypeBool = 30; | ||||
| @@ -1,15 +1,13 @@ | |||||
| package cn.huawei.mindspore; | |||||
| package com.mindspore.lite; | |||||
| import cn.huawei.mindspore.context.Context; | |||||
| import java.io.File; | |||||
| import java.io.IOException; | |||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.Set; | import java.util.Set; | ||||
| import com.mindspore.lite.context.Context; | |||||
| public class LiteSession { | public class LiteSession { | ||||
| static { | static { | ||||
| System.loadLibrary("mindspore-lite-jni"); | System.loadLibrary("mindspore-lite-jni"); | ||||
| @@ -1,4 +1,4 @@ | |||||
| package cn.huawei.mindspore; | |||||
| package com.mindspore.lite; | |||||
| public class MSTensor { | public class MSTensor { | ||||
| private long tensorPtr; | private long tensorPtr; | ||||
| @@ -1,10 +1,9 @@ | |||||
| package cn.huawei.mindspore; | |||||
| package com.mindspore.lite; | |||||
| import android.content.Context; | import android.content.Context; | ||||
| import android.content.res.AssetFileDescriptor; | import android.content.res.AssetFileDescriptor; | ||||
| import android.util.Log; | import android.util.Log; | ||||
| import java.io.File; | |||||
| import java.io.FileInputStream; | import java.io.FileInputStream; | ||||
| import java.io.IOException; | import java.io.IOException; | ||||
| import java.nio.MappedByteBuffer; | import java.nio.MappedByteBuffer; | ||||
| @@ -1,4 +1,4 @@ | |||||
| package cn.huawei.mindspore.context; | |||||
| package com.mindspore.lite.context; | |||||
| public class Context { | public class Context { | ||||
| private long contextPtr; | private long contextPtr; | ||||
| @@ -1,4 +1,4 @@ | |||||
| package cn.huawei.mindspore.context; | |||||
| package com.mindspore.lite.context; | |||||
| public class CpuBindMode { | public class CpuBindMode { | ||||
| public static final int MID_CPU = -1; | public static final int MID_CPU = -1; | ||||
| @@ -1,4 +1,4 @@ | |||||
| package cn.huawei.mindspore.context; | |||||
| package com.mindspore.lite.context; | |||||
| public class DeviceType { | public class DeviceType { | ||||
| public static final int DT_CPU = 0; | public static final int DT_CPU = 0; | ||||
| @@ -0,0 +1,21 @@ | |||||
| // Top-level build file where you can add configuration options common to all sub-projects/modules. | |||||
| buildscript { | |||||
| repositories { | |||||
| google() | |||||
| jcenter() | |||||
| } | |||||
| dependencies { | |||||
| classpath "com.android.tools.build:gradle:4.0.0" | |||||
| } | |||||
| } | |||||
| allprojects { | |||||
| repositories { | |||||
| google() | |||||
| jcenter() | |||||
| } | |||||
| } | |||||
| task clean(type: Delete) { | |||||
| delete rootProject.buildDir | |||||
| } | |||||
| @@ -0,0 +1,11 @@ | |||||
| /* | |||||
| * This file was generated by the Gradle 'init' task. | |||||
| * | |||||
| * The settings file is used to specify which projects to include in your build. | |||||
| * | |||||
| * Detailed information about configuring a multi-project build in Gradle can be found | |||||
| * in the user manual at https://docs.gradle.org/6.6/userguide/multi_project_builds.html | |||||
| */ | |||||
| include ':app' | |||||
| rootProject.name = 'mindspore-lite-aar' | |||||
| @@ -0,0 +1,21 @@ | |||||
| cmake_minimum_required(VERSION 3.14) | |||||
| project (Lite-java) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../lite/) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../core/) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../../third_party/flatbuffers/include) | |||||
| link_directories(${CMAKE_CURRENT_SOURCE_DIR}/../lib) | |||||
| add_library(mindspore-lite-jni SHARED | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/common/ms_log.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/common/jni_utils.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/model.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/context.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/ms_tensor.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/lite_session.cpp | |||||
| ) | |||||
| find_library(log-lib log) | |||||
| target_link_libraries(mindspore-lite-jni mindspore-lite ${log-lib} ) | |||||
| @@ -20,7 +20,7 @@ | |||||
| #include "common/ms_log.h" | #include "common/ms_log.h" | ||||
| #include "include/context.h" | #include "include/context.h" | ||||
| extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_context_Context_createContext(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_context_Context_createContext(JNIEnv *env, jobject thiz, | |||||
| jint device_type, | jint device_type, | ||||
| jint thread_num, | jint thread_num, | ||||
| jint cpu_bind_mode) { | jint cpu_bind_mode) { | ||||
| @@ -57,7 +57,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_context_Context_crea | |||||
| return (jlong)context; | return (jlong)context; | ||||
| } | } | ||||
| extern "C" JNIEXPORT void JNICALL Java_cn_huawei_mindspore_context_Context_free(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT void JNICALL Java_com_mindspore_lite_context_Context_free(JNIEnv *env, jobject thiz, | |||||
| jlong context_ptr) { | jlong context_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(context_ptr); | auto *pointer = reinterpret_cast<void *>(context_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -22,7 +22,7 @@ | |||||
| #include "include/lite_session.h" | #include "include/lite_session.h" | ||||
| #include "include/errorcode.h" | #include "include/errorcode.h" | ||||
| extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_LiteSession_createSession(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_LiteSession_createSession(JNIEnv *env, jobject thiz, | |||||
| jlong context_ptr) { | jlong context_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(context_ptr); | auto *pointer = reinterpret_cast<void *>(context_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -38,7 +38,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_LiteSession_createSe | |||||
| return jlong(session); | return jlong(session); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_LiteSession_compileGraph(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jboolean JNICALL Java_com_mindspore_lite_LiteSession_compileGraph(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr, | jlong session_ptr, | ||||
| jlong model_ptr) { | jlong model_ptr) { | ||||
| auto *session_pointer = reinterpret_cast<void *>(session_ptr); | auto *session_pointer = reinterpret_cast<void *>(session_ptr); | ||||
| @@ -58,7 +58,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_LiteSession_compi | |||||
| return (jboolean)(ret == mindspore::lite::RET_OK); | return (jboolean)(ret == mindspore::lite::RET_OK); | ||||
| } | } | ||||
| extern "C" JNIEXPORT void JNICALL Java_cn_huawei_mindspore_LiteSession_bindThread(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT void JNICALL Java_com_mindspore_lite_LiteSession_bindThread(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr, jboolean if_bind) { | jlong session_ptr, jboolean if_bind) { | ||||
| auto *pointer = reinterpret_cast<void *>(session_ptr); | auto *pointer = reinterpret_cast<void *>(session_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -69,7 +69,7 @@ extern "C" JNIEXPORT void JNICALL Java_cn_huawei_mindspore_LiteSession_bindThrea | |||||
| lite_session_ptr->BindThread(if_bind); | lite_session_ptr->BindThread(if_bind); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_LiteSession_runGraph(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jboolean JNICALL Java_com_mindspore_lite_LiteSession_runGraph(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr) { | jlong session_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(session_ptr); | auto *pointer = reinterpret_cast<void *>(session_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -81,7 +81,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_LiteSession_runGr | |||||
| return (jboolean)(ret == mindspore::lite::RET_OK); | return (jboolean)(ret == mindspore::lite::RET_OK); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getInputs(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jobject JNICALL Java_com_mindspore_lite_LiteSession_getInputs(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr) { | jlong session_ptr) { | ||||
| jclass array_list = env->FindClass("java/util/ArrayList"); | jclass array_list = env->FindClass("java/util/ArrayList"); | ||||
| jmethodID array_list_construct = env->GetMethodID(array_list, "<init>", "()V"); | jmethodID array_list_construct = env->GetMethodID(array_list, "<init>", "()V"); | ||||
| @@ -104,7 +104,7 @@ extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getInp | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getInputsByName(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jobject JNICALL Java_com_mindspore_lite_LiteSession_getInputsByName(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr, | jlong session_ptr, | ||||
| jstring node_name) { | jstring node_name) { | ||||
| jclass array_list = env->FindClass("java/util/ArrayList"); | jclass array_list = env->FindClass("java/util/ArrayList"); | ||||
| @@ -128,7 +128,7 @@ extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getInp | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getOutputs(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jobject JNICALL Java_com_mindspore_lite_LiteSession_getOutputs(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr) { | jlong session_ptr) { | ||||
| jclass hash_map_clazz = env->FindClass("java/util/HashMap"); | jclass hash_map_clazz = env->FindClass("java/util/HashMap"); | ||||
| jmethodID hash_map_construct = env->GetMethodID(hash_map_clazz, "<init>", "()V"); | jmethodID hash_map_construct = env->GetMethodID(hash_map_clazz, "<init>", "()V"); | ||||
| @@ -160,7 +160,7 @@ extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getOut | |||||
| return hash_map; | return hash_map; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getOutputsByName(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jobject JNICALL Java_com_mindspore_lite_LiteSession_getOutputsByName(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr, | jlong session_ptr, | ||||
| jstring node_name) { | jstring node_name) { | ||||
| jclass array_list = env->FindClass("java/util/ArrayList"); | jclass array_list = env->FindClass("java/util/ArrayList"); | ||||
| @@ -184,7 +184,7 @@ extern "C" JNIEXPORT jobject JNICALL Java_cn_huawei_mindspore_LiteSession_getOut | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| extern "C" JNIEXPORT void JNICALL Java_cn_huawei_mindspore_LiteSession_free(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT void JNICALL Java_com_mindspore_lite_LiteSession_free(JNIEnv *env, jobject thiz, | |||||
| jlong session_ptr) { | jlong session_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(session_ptr); | auto *pointer = reinterpret_cast<void *>(session_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -20,7 +20,7 @@ | |||||
| #include "common/ms_log.h" | #include "common/ms_log.h" | ||||
| #include "include/model.h" | #include "include/model.h" | ||||
| extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_Model_loadModel(JNIEnv *env, jobject thiz, jobject buffer) { | |||||
| extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_Model_loadModel(JNIEnv *env, jobject thiz, jobject buffer) { | |||||
| MS_LOGD("Start getting buffer from java"); | MS_LOGD("Start getting buffer from java"); | ||||
| if (buffer == nullptr) { | if (buffer == nullptr) { | ||||
| MS_LOGE("Buffer from java is nullptr"); | MS_LOGE("Buffer from java is nullptr"); | ||||
| @@ -39,7 +39,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_Model_loadModel(JNIE | |||||
| return reinterpret_cast<jlong>(model); | return reinterpret_cast<jlong>(model); | ||||
| } | } | ||||
| extern "C" JNIEXPORT void JNICALL Java_cn_huawei_mindspore_Model_free(JNIEnv *env, jobject thiz, jlong model_ptr) { | |||||
| extern "C" JNIEXPORT void JNICALL Java_com_mindspore_lite_Model_free(JNIEnv *env, jobject thiz, jlong model_ptr) { | |||||
| auto *pointer = reinterpret_cast<void *>(model_ptr); | auto *pointer = reinterpret_cast<void *>(model_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| MS_LOGE("Model pointer from java is nullptr"); | MS_LOGE("Model pointer from java is nullptr"); | ||||
| @@ -21,7 +21,7 @@ | |||||
| #include "include/ms_tensor.h" | #include "include/ms_tensor.h" | ||||
| #include "ir/dtype/type_id.h" | #include "ir/dtype/type_id.h" | ||||
| extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_MSTensor_createMSTensor(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_MSTensor_createMSTensor(JNIEnv *env, jobject thiz, | |||||
| jint data_type, jintArray shape, | jint data_type, jintArray shape, | ||||
| jint shape_len) { | jint shape_len) { | ||||
| jboolean is_copy = false; | jboolean is_copy = false; | ||||
| @@ -39,7 +39,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_MSTensor_createMSTen | |||||
| return reinterpret_cast<jlong>(ms_tensor); | return reinterpret_cast<jlong>(ms_tensor); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jintArray JNICALL Java_cn_huawei_mindspore_MSTensor_getShape(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jintArray JNICALL Java_com_mindspore_lite_MSTensor_getShape(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr) { | jlong tensor_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -59,7 +59,7 @@ extern "C" JNIEXPORT jintArray JNICALL Java_cn_huawei_mindspore_MSTensor_getShap | |||||
| return shape; | return shape; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_MSTensor_setShape(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jboolean JNICALL Java_com_mindspore_lite_MSTensor_setShape(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr, jintArray shape, | jlong tensor_ptr, jintArray shape, | ||||
| jint shape_len) { | jint shape_len) { | ||||
| jboolean is_copy = false; | jboolean is_copy = false; | ||||
| @@ -78,7 +78,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_MSTensor_setShape | |||||
| return ret == shape_len; | return ret == shape_len; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jint JNICALL Java_cn_huawei_mindspore_MSTensor_getDataType(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jint JNICALL Java_com_mindspore_lite_MSTensor_getDataType(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr) { | jlong tensor_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -89,7 +89,7 @@ extern "C" JNIEXPORT jint JNICALL Java_cn_huawei_mindspore_MSTensor_getDataType( | |||||
| return jint(ms_tensor_ptr->data_type()); | return jint(ms_tensor_ptr->data_type()); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_MSTensor_setDataType(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jboolean JNICALL Java_com_mindspore_lite_MSTensor_setDataType(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr, jint data_type) { | jlong tensor_ptr, jint data_type) { | ||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -101,7 +101,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_MSTensor_setDataT | |||||
| return ret == data_type; | return ret == data_type; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jbyteArray JNICALL Java_cn_huawei_mindspore_MSTensor_getData(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jbyteArray JNICALL Java_com_mindspore_lite_MSTensor_getData(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr) { | jlong tensor_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -120,7 +120,7 @@ extern "C" JNIEXPORT jbyteArray JNICALL Java_cn_huawei_mindspore_MSTensor_getDat | |||||
| return ret; | return ret; | ||||
| } | } | ||||
| extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_MSTensor_setData(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jboolean JNICALL Java_com_mindspore_lite_MSTensor_setData(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr, jbyteArray data, | jlong tensor_ptr, jbyteArray data, | ||||
| jlong data_len) { | jlong data_len) { | ||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| @@ -140,7 +140,7 @@ extern "C" JNIEXPORT jboolean JNICALL Java_cn_huawei_mindspore_MSTensor_setData( | |||||
| return static_cast<jboolean>(true); | return static_cast<jboolean>(true); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_MSTensor_size(JNIEnv *env, jobject thiz, jlong tensor_ptr) { | |||||
| extern "C" JNIEXPORT jlong JNICALL Java_com_mindspore_lite_MSTensor_size(JNIEnv *env, jobject thiz, jlong tensor_ptr) { | |||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| MS_LOGE("Tensor pointer from java is nullptr"); | MS_LOGE("Tensor pointer from java is nullptr"); | ||||
| @@ -150,7 +150,7 @@ extern "C" JNIEXPORT jlong JNICALL Java_cn_huawei_mindspore_MSTensor_size(JNIEnv | |||||
| return ms_tensor_ptr->Size(); | return ms_tensor_ptr->Size(); | ||||
| } | } | ||||
| extern "C" JNIEXPORT jint JNICALL Java_cn_huawei_mindspore_MSTensor_elementsNum(JNIEnv *env, jobject thiz, | |||||
| extern "C" JNIEXPORT jint JNICALL Java_com_mindspore_lite_MSTensor_elementsNum(JNIEnv *env, jobject thiz, | |||||
| jlong tensor_ptr) { | jlong tensor_ptr) { | ||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| @@ -161,7 +161,7 @@ extern "C" JNIEXPORT jint JNICALL Java_cn_huawei_mindspore_MSTensor_elementsNum( | |||||
| return ms_tensor_ptr->ElementsNum(); | return ms_tensor_ptr->ElementsNum(); | ||||
| } | } | ||||
| extern "C" JNIEXPORT void JNICALL Java_cn_huawei_mindspore_MSTensor_free(JNIEnv *env, jobject thiz, jlong tensor_ptr) { | |||||
| extern "C" JNIEXPORT void JNICALL Java_com_mindspore_lite_MSTensor_free(JNIEnv *env, jobject thiz, jlong tensor_ptr) { | |||||
| auto *pointer = reinterpret_cast<void *>(tensor_ptr); | auto *pointer = reinterpret_cast<void *>(tensor_ptr); | ||||
| if (pointer == nullptr) { | if (pointer == nullptr) { | ||||
| MS_LOGE("Tensor pointer from java is nullptr"); | MS_LOGE("Tensor pointer from java is nullptr"); | ||||
| @@ -1,18 +0,0 @@ | |||||
| cmake_minimum_required(VERSION 3.4.1) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) | |||||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src) | |||||
| link_directories(${CMAKE_CURRENT_SOURCE_DIR}/libs/${ANDROID_ABI}) | |||||
| add_library(mindspore-lite-jni SHARED | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/common/ms_log.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/common/jni_utils.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/runtime/model.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/runtime/context.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/runtime/ms_tensor.cpp | |||||
| ${CMAKE_CURRENT_SOURCE_DIR}/src/runtime/lite_session.cpp | |||||
| ) | |||||
| find_library(log-lib log) | |||||
| target_link_libraries(mindspore-lite-jni mindspore-lite ${log-lib} ) | |||||