| @@ -4,6 +4,20 @@ mindspore/lib | |||
| output | |||
| *.ir | |||
| # flatbuffer | |||
| 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.h | |||
| mindspore/lite/tools/converter/parser/onnx/onnx.pb.h | |||
| mindspore/lite/tools/converter/parser/onnx/onnx.pb.h | |||
| mindspore/lite/tools/converter/schema/*.h | |||
| mindspore/lite/tools/converter/schema/inner | |||
| mindspore/lite/schema/*.h | |||
| mindspore/lite/schema/inner | |||
| mindspore/lite/src/runtime/kernel/opencl/cl/fp16/*.inc | |||
| mindspore/lite/src/runtime/kernel/opencl/cl/fp32/*.inc | |||
| # Cmake files | |||
| CMakeFiles/ | |||
| cmake_install.cmake | |||
| @@ -71,5 +85,3 @@ test_temp_summary_event_file/ | |||
| mindspore/version.py | |||
| mindspore/default_config.py | |||
| mindspore/.commit_id | |||
| onnx.proto | |||
| mindspore/ccsrc/onnx.proto | |||
| @@ -1,6 +1,7 @@ | |||
| [submodule "third_party/flatbuffers"] | |||
| path = third_party/flatbuffers | |||
| url = https://github.com/google/flatbuffers.git | |||
| ignore = all | |||
| [submodule "third_party/googletest"] | |||
| path = third_party/googletest | |||
| url = https://github.com/google/googletest.git | |||
| @@ -10,9 +11,16 @@ | |||
| [submodule "third_party/protobuf"] | |||
| path = third_party/protobuf | |||
| url = https://github.com/protocolbuffers/protobuf.git | |||
| ignore = all | |||
| [submodule "akg"] | |||
| path = akg | |||
| url = https://gitee.com/mindspore/akg.git | |||
| [submodule "graphengine"] | |||
| path = graphengine | |||
| url = https://gitee.com/mindspore/graphengine.git | |||
| [submodule "third_party/OpenCL-CLHPP"] | |||
| path = third_party/OpenCL-CLHPP | |||
| url = https://github.com/KhronosGroup/OpenCL-CLHPP.git | |||
| [submodule "third_party/OpenCL-Headers"] | |||
| path = third_party/OpenCL-Headers | |||
| url = https://github.com/KhronosGroup/OpenCL-Headers.git | |||
| @@ -25,7 +25,8 @@ usage() | |||
| echo "Usage:" | |||
| echo "bash build.sh [-d] [-r] [-v] [-c on|off] [-t on|off] [-g on|off] [-h] [-b ge] [-m infer|train] \\" | |||
| echo " [-a on|off] [-Q on|off] [-p on|off] [-i] [-L] [-R] [-D on|off] [-j[n]] [-e gpu|d|cpu] \\" | |||
| echo " [-P on|off] [-z [on|off]] [-M on|off] [-V 9.2|10.1] [-I] [-K] [-B on|off] [-w on|off] [-E] [-l on|off]" | |||
| echo " [-P on|off] [-z [on|off]] [-M on|off] [-V 9.2|10.1] [-I arm64|arm32|x86_64] [-K] \\" | |||
| echo " [-B on|off] [-w on|off] [-E] [-l on|off]" | |||
| echo "" | |||
| echo "Options:" | |||
| echo " -d Debug mode" | |||
| @@ -51,7 +52,7 @@ usage() | |||
| echo " -z Compile dataset & mindrecord, default on" | |||
| echo " -M Enable MPI and NCCL for GPU training, gpu default on" | |||
| echo " -V Specify the minimum required cuda version, default CUDA 10.1" | |||
| echo " -I Compile predict, default off" | |||
| echo " -I Compile lite" | |||
| echo " -K Compile with AKG, default on" | |||
| echo " -s Enable serving module, default off" | |||
| echo " -w Enable acl module, default off" | |||
| @@ -93,9 +94,10 @@ checkopts() | |||
| COMPILE_MINDDATA="on" | |||
| ENABLE_MPI="off" | |||
| CUDA_VERSION="10.1" | |||
| COMPILE_PREDICT="off" | |||
| COMPILE_LITE="off" | |||
| LITE_PLATFORM="" | |||
| SUPPORT_TRAIN="off" | |||
| USE_GLOG="on" | |||
| PREDICT_PLATFORM="" | |||
| ENABLE_AKG="on" | |||
| ENABLE_SERVING="off" | |||
| ENABLE_ACL="off" | |||
| @@ -240,13 +242,16 @@ checkopts() | |||
| fi | |||
| ;; | |||
| I) | |||
| COMPILE_PREDICT="on" | |||
| COMPILE_LITE="on" | |||
| if [[ "$OPTARG" == "arm64" ]]; then | |||
| PREDICT_PLATFORM="arm64" | |||
| LITE_PLATFORM="arm64" | |||
| elif [[ "$OPTARG" == "arm32" ]]; then | |||
| LITE_PLATFORM="arm32" | |||
| elif [[ "$OPTARG" == "x86_64" ]]; then | |||
| PREDICT_PLATFORM="x86_64" | |||
| ENABLE_CONVERTER="on" | |||
| LITE_PLATFORM="x86_64" | |||
| else | |||
| echo "-I parameter must be arm64 or x86_64" | |||
| echo "-I parameter must be arm64、arm32 or x86_64" | |||
| exit 1 | |||
| fi | |||
| ;; | |||
| @@ -382,128 +387,247 @@ build_mindspore() | |||
| echo "success to build mindspore project!" | |||
| } | |||
| build_predict() | |||
| { | |||
| git submodule update --init --recursive third_party/incubator-tvm | |||
| echo "start build predict project" | |||
| checkndk() { | |||
| if [ "${ANDROID_NDK}" ]; then | |||
| echo -e "\e[31mANDROID_NDK_PATH=$ANDROID_NDK \e[0m" | |||
| else | |||
| echo -e "\e[31mplease set ANDROID_NDK_PATH in environment variable for example: export ANDROID_NDK=/root/usr/android-ndk-r20b/ \e[0m" | |||
| exit 1 | |||
| fi | |||
| } | |||
| git submodule update --init --recursive third_party/flatbuffers | |||
| git submodule update --init --recursive third_party/googletest | |||
| git submodule update --init --recursive third_party/protobuf | |||
| gene_flatbuffer() { | |||
| FLAT_DIR="${BASEPATH}/mindspore/lite/schema" | |||
| cd ${FLAT_DIR} && rm -rf "${FLAT_DIR}/inner" && mkdir -p "${FLAT_DIR}/inner" | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b --reflect-types --gen-mutable --reflect-names --gen-object-api -o "${FLAT_DIR}/inner" | |||
| rm -rf "${BASEPATH}/predict/build" | |||
| mkdir -pv "${BASEPATH}/predict/build" | |||
| rm -rf "${BASEPATH}/predict/output" | |||
| mkdir -pv "${BASEPATH}/predict/output" | |||
| FLAT_DIR="${BASEPATH}/mindspore/lite/tools/converter/parser/tflite" | |||
| cd ${FLAT_DIR} | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b --reflect-types --gen-mutable --reflect-names --gen-object-api -o "${FLAT_DIR}/" | |||
| } | |||
| if [[ "$PREDICT_PLATFORM" == "arm64" ]]; then | |||
| if [ "${ANDROID_NDK}" ]; then | |||
| echo -e "\e[31mANDROID_NDK_PATH=$ANDROID_NDK \e[0m" | |||
| else | |||
| echo -e "\e[31mplease set ANDROID_NDK_PATH in environment variable for example: export ANDROID_NDK=/root/usr/android-ndk-r16b/ \e[0m" | |||
| exit 1 | |||
| fi | |||
| build_flatbuffer() { | |||
| cd ${BASEPATH} | |||
| FLATC="${BASEPATH}"/third_party/flatbuffers/build/flatc | |||
| if [[ ! -f "${FLATC}" ]]; then | |||
| git submodule update --init --recursive third_party/flatbuffers | |||
| cd ${BASEPATH}/third_party/flatbuffers | |||
| rm -rf build && mkdir -pv build && cd build && cmake .. && make -j$THREAD_NUM | |||
| gene_flatbuffer | |||
| fi | |||
| if [[ "${INC_BUILD}" == "off" ]]; then | |||
| gene_flatbuffer | |||
| fi | |||
| } | |||
| #build flatbuf | |||
| cd "${BASEPATH}/third_party/flatbuffers" | |||
| rm -rf build && mkdir -p build && cd build && cmake .. && make -j$THREAD_NUM | |||
| FLATC="${BASEPATH}"/third_party/flatbuffers/build/flatc | |||
| cd "${BASEPATH}"/predict/schema && mkdir -p "${BASEPATH}"/predict/schema/inner | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b --reflect-types --gen-mutable --reflect-names --gen-object-api -o ${BASEPATH}/predict/schema/inner | |||
| gene_protobuf() { | |||
| PROTO_SRC_DIR="${BASEPATH}/mindspore/lite/tools/converter/parser/caffe" | |||
| find ${PROTO_SRC_DIR} -name "*.proto" -print0 | xargs -0 "${PROTOC}" -I"${PROTO_SRC_DIR}" --cpp_out="${PROTO_SRC_DIR}" | |||
| PROTO_SRC_DIR="${BASEPATH}/mindspore/lite/tools/converter/parser/onnx" | |||
| find ${PROTO_SRC_DIR} -name "*.proto" -print0 | xargs -0 "${PROTOC}" -I"${PROTO_SRC_DIR}" --cpp_out="${PROTO_SRC_DIR}" | |||
| } | |||
| # check LLVM_PATH | |||
| if [ "${LLVM_PATH}" == "" ]; then | |||
| echo "Please set LLVM_PATH in env for example export LLVM_PATH=/xxxx/bin/llvm-config" | |||
| exit | |||
| build_protobuf() { | |||
| cd ${BASEPATH} | |||
| PROTOC="${BASEPATH}"/third_party/protobuf/build/bin/protoc | |||
| if [[ ! -f "${PROTOC}" ]]; then | |||
| git submodule update --init --recursive third_party/protobuf | |||
| cd ${BASEPATH}/third_party/protobuf | |||
| rm -rf build && mkdir -pv build && ./autogen.sh | |||
| ./configure --prefix=${BASEPATH}/third_party/protobuf/build | |||
| make clean && make -j$THREAD_NUM && make install | |||
| gene_protobuf | |||
| fi | |||
| if [[ "${INC_BUILD}" == "off" ]]; then | |||
| gene_protobuf | |||
| fi | |||
| } | |||
| #build tvm | |||
| tvm_open_source="${BASEPATH}/third_party/incubator-tvm" | |||
| tvm_kernel_build="${BASEPATH}/predict/module/tvm_kernel" | |||
| if [ ! -f "${tvm_kernel_build}"/incubator-tvm/build/libtvm.so ]; then | |||
| rm -fr "${tvm_kernel_build}"/incubator-tvm | |||
| cp -fr "${tvm_open_source}" "${tvm_kernel_build}" | |||
| mkdir -p "${tvm_kernel_build}"/incubator-tvm/build | |||
| patch -d "${tvm_kernel_build}"/incubator-tvm -p1 < "${BASEPATH}"/third_party/patch/predict/0001-RetBugFix-CustomRuntime_v06.patch | |||
| cp "${tvm_kernel_build}"/lite/src/codegen/llvm/lite_rtfunc_reset.cc "${tvm_kernel_build}"/incubator-tvm/src/codegen/llvm/ | |||
| cp "${tvm_open_source}"/cmake/config.cmake "${tvm_kernel_build}"/incubator-tvm | |||
| if [ "${LLVM_PATH}" ]; then | |||
| sed -i "s#set(USE_LLVM .*)#set(USE_LLVM \"${LLVM_PATH}\")#g" "${tvm_kernel_build}"/incubator-tvm/config.cmake | |||
| else | |||
| echo "need set LLVM_PATH in env for example export LLVM_PATH=/xxxx/bin/llvm-config" | |||
| build_gtest() { | |||
| cd ${BASEPATH} | |||
| git submodule update --init --recursive third_party/googletest | |||
| } | |||
| gene_clhpp() { | |||
| CL_SRC_DIR="${BASEPATH}/mindspore/lite/src/runtime/kernel/opencl/cl" | |||
| for sub_dir in "${CL_SRC_DIR}"/* | |||
| do | |||
| data_type="$(basename ${sub_dir})" | |||
| if [ ! -d ${CL_SRC_DIR}/${data_type} ]; then | |||
| continue | |||
| fi | |||
| cd "${tvm_kernel_build}"/incubator-tvm/build | |||
| cmake .. | |||
| make -j$THREAD_NUM | |||
| cd ${CL_SRC_DIR}/${data_type} | |||
| rm -rf *.inc | |||
| echo "$(cd "$(dirname $0)"; pwd)" | |||
| for file_path in "${CL_SRC_DIR}/${data_type}"/* | |||
| do | |||
| file="$(basename ${file_path})" | |||
| inc_file=`echo ${CL_SRC_DIR}/${data_type}/${file} | sed 's/$/.inc/'` | |||
| sed 's/^/\"/;s/$/ \\n\" \\/' ${CL_SRC_DIR}/${data_type}/${file} > ${inc_file} | |||
| kernel_name=`echo ${file} | sed s'/.\{3\}$//'` | |||
| sed -i "1i\static const char *${kernel_name}_source_${data_type} =\"\\n\" \\" ${inc_file} | |||
| sed -i '$a\;' ${inc_file} | |||
| done | |||
| done | |||
| } | |||
| gene_ocl_program() { | |||
| CL_SRC_DIR="${BASEPATH}/mindspore/lite/src/runtime/kernel/opencl/cl" | |||
| SPIRV_DIR=build/spirv | |||
| rm -rf ${SPIRV_DIR} | |||
| mkdir -pv ${SPIRV_DIR} | |||
| for sub_dir in "${CL_SRC_DIR}"/* | |||
| do | |||
| data_type="$(basename ${sub_dir})" | |||
| if [ ! -d ${CL_SRC_DIR}/${data_type} ]; then | |||
| continue | |||
| fi | |||
| #echo $(cd "$(dirname $0)"; pwd) | |||
| for file_path in "${CL_SRC_DIR}/${data_type}"/* | |||
| do | |||
| file="$(basename ${file_path})" | |||
| if [ "${file##*.}" != "cl" ]; then | |||
| continue | |||
| fi | |||
| clang -Xclang -finclude-default-header -cl-std=CL2.0 --target=spir64-unknown-unknown -emit-llvm \ | |||
| -c -O0 -o ${SPIRV_DIR}/${file%.*}.bc ${CL_SRC_DIR}/${data_type}/${file} | |||
| done | |||
| done | |||
| bcs=`ls ${SPIRV_DIR}/*.bc` | |||
| llvm-link ${bcs} -o ${SPIRV_DIR}/program.bc | |||
| llvm-spirv -o ${SPIRV_DIR}/program.spv ${SPIRV_DIR}/program.bc | |||
| CL_PROGRAM_PATH="${BASEPATH}/mindspore/lite/src/runtime/kernel/opencl/cl/program.inc" | |||
| echo "#include <vector>" > ${CL_PROGRAM_PATH} | |||
| echo "std::vector<unsigned char> g_program_binary = {" >> ${CL_PROGRAM_PATH} | |||
| #hexdump -v -e '16/1 "0x%02x, " "\n"' ${SPIRV_DIR}/program.spv >> ${CL_PROGRAM_PATH} | |||
| hexdump -v -e '1/1 "0x%02x, "' ${SPIRV_DIR}/program.spv >> ${CL_PROGRAM_PATH} | |||
| echo "};" >> ${CL_PROGRAM_PATH} | |||
| echo "Compile SPIRV done" | |||
| } | |||
| build_opencl() { | |||
| cd ${BASEPATH} | |||
| git submodule update --init third_party/OpenCL-Headers | |||
| git submodule update --init third_party/OpenCL-CLHPP | |||
| if [[ "${OPENCL_OFFLINE_COMPILE}" == "on" ]]; then | |||
| gene_ocl_program | |||
| else | |||
| cd "${tvm_kernel_build}"/incubator-tvm/build | |||
| make -j$THREAD_NUM | |||
| gene_clhpp | |||
| fi | |||
| } | |||
| #gen op | |||
| predict_tvm_op_lib_path="${BASEPATH}/predict/module/tvm_kernel/build/lib_x86" | |||
| predict_platform="x86" | |||
| if [[ "$PREDICT_PLATFORM" == "arm64" ]]; then | |||
| predict_tvm_op_lib_path="${BASEPATH}/predict/module/tvm_kernel/build/lib_arm64" | |||
| predict_platform="arm64" | |||
| fi | |||
| build_lite() | |||
| { | |||
| echo "start build mindspore lite project" | |||
| need_get_libs=true | |||
| if [ -d "${predict_tvm_op_lib_path}" ]; then | |||
| file_list=$(ls "${predict_tvm_op_lib_path}") | |||
| if [ -n "${file_list}" ]; then | |||
| libstime=$(stat -c %Y "${predict_tvm_op_lib_path}"/* | sort -u | tail -n1) | |||
| pythontime=$(find "${BASEPATH}"/predict/module/tvm_kernel/lite/python/ -name "*.py" -exec stat -c %Y {} \; | | |||
| sort -u | tail -n1) | |||
| if [ "${libstime}" -ge "${pythontime}" ]; then | |||
| need_get_libs=false | |||
| else | |||
| rm -fr "${predict_tvm_op_lib_path}" | |||
| fi | |||
| fi | |||
| if [[ "${ENABLE_GPU}" == "on" ]]; then | |||
| build_opencl | |||
| fi | |||
| if $need_get_libs; then | |||
| PYTHONPATH_OLD=${PYTHONPATH} | |||
| export PYTHONPATH="${tvm_kernel_build}/incubator-tvm/python:${tvm_kernel_build}/incubator-tvm/topi/python:${tvm_kernel_build}/incubator-tvm/nnvm/python:${tvm_kernel_build}/lite/python:" | |||
| cd "${BASEPATH}"/predict/module/tvm_kernel/lite/python/at_ops | |||
| python3 at_gen_strip.py ${predict_platform} | |||
| export PYTHONPATH=${PYTHONPATH_OLD} | |||
| if [[ "${LITE_PLATFORM}" == "x86_64" ]]; then | |||
| build_protobuf | |||
| fi | |||
| build_flatbuffer | |||
| build_gtest | |||
| cd "${BASEPATH}/predict/build" | |||
| if [[ "$PREDICT_PLATFORM" == "arm64" ]]; then | |||
| cmake -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK}/build/cmake/android.toolchain.cmake" \ | |||
| -DANDROID_NATIVE_API_LEVEL=android-19 -DANDROID_NDK="${ANDROID_NDK}" \ | |||
| -DANDROID_TOOLCHAIN_NAME="aarch64-linux-android-clang" -DANDROID_STL="c++_shared" \ | |||
| -DANDROID_ABI="arm64-v8a" -DENABLE_PREDICT_ARM64=ON -DANDROID_ALLOW_UNDEFINED_SYMBOLS=TRUE .. | |||
| elif [[ "$PREDICT_PLATFORM" == "x86_64" ]]; then | |||
| cmake .. | |||
| cd "${BASEPATH}/mindspore/lite" | |||
| mkdir -pv build | |||
| cd build | |||
| BUILD_TYPE="Release" | |||
| if [[ "${DEBUG_MODE}" == "on" ]]; then | |||
| BUILD_TYPE="Debug" | |||
| fi | |||
| make ${VERBOSE} -j$THREAD_NUM | |||
| if [[ "$PREDICT_PLATFORM" == "x86_64" ]]; then | |||
| cd "${BASEPATH}/predict/build/test" && ./run_tests.sh | |||
| if [[ "${LITE_PLATFORM}" == "arm64" ]]; then | |||
| checkndk | |||
| 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=${BUILD_TYPE} -DSUPPORT_TRAIN=${SUPPORT_TRAIN} \ | |||
| -DBUILD_DEVICE=on -DPLATFORM_ARM64=on -DBUILD_CONVERTER=off -DENABLE_NEON=on -DENABLE_FP16="off" \ | |||
| -DSUPPORT_GPU=${ENABLE_GPU} -DOFFLINE_COMPILE=${OPENCL_OFFLINE_COMPILE} "${BASEPATH}/mindspore/lite" | |||
| elif [[ "${LITE_PLATFORM}" == "arm32" ]]; then | |||
| checkndk | |||
| 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="clang" \ | |||
| -DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |||
| -DBUILD_DEVICE=on -DPLATFORM_ARM32=on -DENABLE_NEON=on -DSUPPORT_TRAIN=${SUPPORT_TRAIN} -DBUILD_CONVERTER=off \ | |||
| -DSUPPORT_GPU=${ENABLE_GPU} -DOFFLINE_COMPILE=${OPENCL_OFFLINE_COMPILE} "${BASEPATH}/mindspore/lite" | |||
| else | |||
| cmake -DBUILD_DEVICE=on -DPLATFORM_ARM64=off -DBUILD_CONVERTER=${ENABLE_CONVERTER} -DSUPPORT_TRAIN=${SUPPORT_TRAIN} \ | |||
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DSUPPORT_GPU=${ENABLE_GPU} -DOFFLINE_COMPILE=${OPENCL_OFFLINE_COMPILE} "${BASEPATH}/mindspore/lite" | |||
| fi | |||
| VERBOSE=2 make -j$THREAD_NUM | |||
| COMPILE_RET=$? | |||
| # copy securec include files | |||
| mkdir -p "${BASEPATH}/predict/output/include/securec/include" | |||
| cp "${BASEPATH}"/third_party/securec/include/* "${BASEPATH}"/predict/output/include/securec/include | |||
| cd "${BASEPATH}/predict/output/" | |||
| if [[ "$PREDICT_PLATFORM" == "x86_64" ]]; then | |||
| tar -cf MSPredict-0.5.0-linux_x86_64.tar.gz include/ lib/ --warning=no-file-changed | |||
| elif [[ "$PREDICT_PLATFORM" == "arm64" ]]; then | |||
| tar -cf MSPredict-0.5.0-linux_aarch64.tar.gz include/ lib/ --warning=no-file-changed | |||
| if [[ "${COMPILE_RET}" -ne 0 ]]; then | |||
| echo "---------------- mindspore lite: build failed ----------------" | |||
| else | |||
| mkdir -pv ${BASEPATH}/mindspore/lite/output/ | |||
| if [[ "$LITE_PLATFORM" == "x86_64" ]]; then | |||
| OUTPUT_DIR=${BASEPATH}/mindspore/lite/output/MSLite-0.5.0-linux_x86_64 | |||
| rm -rf ${OUTPUT_DIR} && mkdir -p ${OUTPUT_DIR} && cd ${OUTPUT_DIR} | |||
| mkdir -p ${OUTPUT_DIR}/converter && mkdir -p ${OUTPUT_DIR}/time_profile | |||
| mkdir -p ${OUTPUT_DIR}/benchmark && mkdir -p ${OUTPUT_DIR}/include && mkdir -p ${OUTPUT_DIR}/lib | |||
| mkdir -p ${OUTPUT_DIR}/third_party | |||
| cp ${BASEPATH}/mindspore/lite/build/tools/converter/converter_lite ${OUTPUT_DIR}/converter/ | |||
| cp ${BASEPATH}/mindspore/lite/build/tools/benchmark/benchmark ${OUTPUT_DIR}/benchmark/ | |||
| cp ${BASEPATH}/mindspore/lite/include/*.h ${OUTPUT_DIR}/include/ | |||
| mkdir -p ${OUTPUT_DIR}/include/ir/dtype/ | |||
| cp ${BASEPATH}/mindspore/core/ir/dtype/type_id.h ${OUTPUT_DIR}/include/ir/dtype/ | |||
| mkdir -p ${OUTPUT_DIR}/include/schema/ | |||
| cp ${BASEPATH}/mindspore/lite/schema/*.h ${OUTPUT_DIR}/include/schema/ | |||
| cp ${BASEPATH}/mindspore/lite/build/src/libmindspore-lite.so ${OUTPUT_DIR}/lib/ | |||
| mkdir -p ${OUTPUT_DIR}/third_party/protobuf/lib | |||
| cp -r ${BASEPATH}/third_party/protobuf/build/include/ ${OUTPUT_DIR}/third_party/protobuf/ | |||
| cp -r ${BASEPATH}/third_party/protobuf/build/lib/libprotobuf.so.19 ${OUTPUT_DIR}/third_party/protobuf/lib/ | |||
| cp -r ${BASEPATH}/third_party/protobuf/build/lib/libprotobuf.so.19.0.0 ${OUTPUT_DIR}/third_party/protobuf/lib/ | |||
| mkdir -p ${OUTPUT_DIR}/third_party/flatbuffers | |||
| cp -r ${BASEPATH}/third_party/flatbuffers/include/ ${OUTPUT_DIR}/third_party/flatbuffers/ | |||
| cd .. | |||
| tar -cf MSLite-0.5.0-linux_x86_64.tar.gz MSLite-0.5.0-linux_x86_64/ --warning=no-file-changed | |||
| elif [[ "$LITE_PLATFORM" == "arm64" ]]; then | |||
| OUTPUT_DIR=${BASEPATH}/mindspore/lite/output/MSLite-0.5.0-linux_arm64 | |||
| rm -rf ${OUTPUT_DIR} && mkdir -p ${OUTPUT_DIR} && cd ${OUTPUT_DIR} | |||
| mkdir -p ${OUTPUT_DIR}/time_profile && mkdir -p ${OUTPUT_DIR}/benchmark | |||
| mkdir -p ${OUTPUT_DIR}/include && mkdir -p ${OUTPUT_DIR}/lib | |||
| mkdir -p ${OUTPUT_DIR}/third_party | |||
| cp ${BASEPATH}/mindspore/lite/build/tools/benchmark/benchmark ${OUTPUT_DIR}/benchmark/ | |||
| cp ${BASEPATH}/mindspore/lite/include/*.h ${OUTPUT_DIR}/include/ | |||
| mkdir -p ${OUTPUT_DIR}/include/ir/dtype/ | |||
| cp ${BASEPATH}/mindspore/core/ir/dtype/type_id.h ${OUTPUT_DIR}/include/ir/dtype/ | |||
| mkdir -p ${OUTPUT_DIR}/include/schema/ | |||
| cp ${BASEPATH}/mindspore/lite/schema/*.h ${OUTPUT_DIR}/include/schema/ | |||
| cp ${BASEPATH}/mindspore/lite/build/src/libmindspore-lite.so ${OUTPUT_DIR}/lib/ | |||
| mkdir -p ${OUTPUT_DIR}/third_party/flatbuffers | |||
| cp -r ${BASEPATH}/third_party/flatbuffers/include/ ${OUTPUT_DIR}/third_party/flatbuffers/ | |||
| cd .. | |||
| tar -cf MSLite-0.5.0-linux_arm64.tar.gz MSLite-0.5.0-linux_arm64/ --warning=no-file-changed | |||
| elif [[ "$LITE_PLATFORM" == "arm32" ]]; then | |||
| OUTPUT_DIR=${BASEPATH}/mindspore/lite/output/MSLite-0.5.0-linux_arm32 | |||
| rm -rf ${OUTPUT_DIR} && mkdir -p ${OUTPUT_DIR} && cd ${OUTPUT_DIR} | |||
| mkdir -p ${OUTPUT_DIR}/time_profile && mkdir -p ${OUTPUT_DIR}/benchmark | |||
| mkdir -p ${OUTPUT_DIR}/include && mkdir -p ${OUTPUT_DIR}/lib | |||
| mkdir -p ${OUTPUT_DIR}/third_party | |||
| cp ${BASEPATH}/mindspore/lite/build/tools/benchmark/benchmark ${OUTPUT_DIR}/benchmark/ | |||
| cp ${BASEPATH}/mindspore/lite/include/*.h ${OUTPUT_DIR}/include/ | |||
| mkdir -p ${OUTPUT_DIR}/include/ir/dtype/ | |||
| cp ${BASEPATH}/mindspore/core/ir/dtype/type_id.h ${OUTPUT_DIR}/include/ir/dtype/ | |||
| mkdir -p ${OUTPUT_DIR}/include/schema/ | |||
| cp ${BASEPATH}/mindspore/lite/schema/*.h ${OUTPUT_DIR}/include/schema/ | |||
| cp ${BASEPATH}/mindspore/lite/build/src/libmindspore-lite.so ${OUTPUT_DIR}/lib/ | |||
| mkdir -p ${OUTPUT_DIR}/third_party/flatbuffers | |||
| cp -r ${BASEPATH}/third_party/flatbuffers/include/ ${OUTPUT_DIR}/third_party/flatbuffers/ | |||
| cd .. | |||
| tar -cf MSLite-0.5.0-linux_arm32.tar.gz MSLite-0.5.0-linux_arm32/ --warning=no-file-changed | |||
| fi | |||
| echo "---------------- mindspore lite: build success ----------------" | |||
| fi | |||
| echo "success to build predict project!" | |||
| } | |||
| if [[ "X$COMPILE_PREDICT" = "Xon" ]]; then | |||
| build_predict | |||
| echo "---------------- mindspore: build end ----------------" | |||
| if [[ "X$COMPILE_LITE" = "Xon" ]]; then | |||
| build_lite | |||
| exit | |||
| else | |||
| build_mindspore | |||
| @@ -1,7 +1,3 @@ | |||
| file(GLOB_RECURSE _IR_SRC_LIST ./*.cc dtype/*.cc) | |||
| file(GLOB_RECURSE _IR_LITE_SRC_FILES | |||
| ./lite/tensor.cc | |||
| ) | |||
| list(REMOVE_ITEM _IR_SRC_LIST ${_IR_LITE_SRC_FILES}) | |||
| set_property(SOURCE ${_IR_SRC_LIST} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_IR) | |||
| add_library(_mindspore_ir_obj OBJECT ${_IR_SRC_LIST}) | |||
| @@ -1,88 +0,0 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include <vector> | |||
| #include <utility> | |||
| #include "ir/lite/tensor.h" | |||
| #include "securec/include/securec.h" | |||
| namespace mindspore { | |||
| namespace tensor { | |||
| #define kMaxMallocSize 1024 * 1024 * 100 | |||
| Tensor::Tensor(const TypeId data_type, const std::vector<int> &shape) : MetaTensor(data_type, shape) {} | |||
| Tensor::Tensor(const TypePtr &type_ptr, const std::vector<int> &shape) : MetaTensor(type_ptr, shape) {} | |||
| Tensor::Tensor(const Tensor &tensor) : MetaTensor(tensor) { | |||
| this->data_type_ = tensor.data_type_; | |||
| this->shape_ = tensor.shape_; | |||
| auto ret = CopyTensorData(tensor); | |||
| if (0 != ret) { | |||
| MS_LOG(EXCEPTION) << "CopyTensorData error"; | |||
| } | |||
| } | |||
| int Tensor::CopyTensorData(const Tensor &srcTensor) { | |||
| if (srcTensor.data_ == nullptr) { | |||
| MS_LOG(ERROR) << "data of srcTensor is nullptr"; | |||
| return -1; | |||
| } | |||
| size_t data_size = this->Size(); | |||
| MS_ASSERT(data_size == tensor.Size()); | |||
| if (this->data_ == nullptr) { | |||
| if (data_size > kMaxMallocSize) { | |||
| MS_LOG(ERROR) << "Malloc size is too big while coping data, " << data_size << " bytes"; | |||
| return -1; | |||
| } | |||
| this->data_ = malloc(data_size); | |||
| } | |||
| memcpy_s(this->data_, data_size, tensor.data_, tensor.Size()); | |||
| return 0; | |||
| } | |||
| Tensor::~Tensor() { | |||
| if (nullptr != this->data_) { | |||
| free(this->data_); | |||
| } | |||
| } | |||
| Tensor &Tensor::operator=(const Tensor &tensor) { | |||
| if (&tensor == this) { | |||
| return *this; | |||
| } | |||
| this->shape_ = tensor.shape_; | |||
| this->data_type_ = tensor.data_type_; | |||
| auto ret = CopyTensorData(tensor); | |||
| if (0 != ret) { | |||
| MS_LOG(EXCEPTION) << "CopyTensorData error"; | |||
| } | |||
| return *this; | |||
| } | |||
| bool Tensor::operator==(const Tensor &tensor) { | |||
| return data_ == tensor.data_ && shape_ == tensor.shape_ && data_type_ == tensor.data_type_; | |||
| } | |||
| bool Tensor::operator==(const Value &other) const { | |||
| if (other.isa<Tensor>()) { | |||
| auto other_ = static_cast<const Tensor &>(other); | |||
| return *this == other_; | |||
| } else { | |||
| return false; | |||
| } | |||
| } | |||
| } // namespace tensor | |||
| } // namespace mindspore | |||
| @@ -1,61 +0,0 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_CORE_IR_LITE_TENSOR_H_ | |||
| #define MINDSPORE_CORE_IR_LITE_TENSOR_H_ | |||
| #include <memory> | |||
| #include <vector> | |||
| #include "ir/meta_tensor.h" | |||
| #include "ir/dtype/type.h" | |||
| namespace mindspore { | |||
| namespace tensor { | |||
| class Tensor : public MetaTensor { | |||
| public: | |||
| Tensor() : MetaTensor() {} | |||
| Tensor(const TypeId data_type, const std::vector<int> &shape); | |||
| Tensor(const TypePtr &type_ptr, const std::vector<int> &shape); | |||
| Tensor(const Tensor &tensor); | |||
| ~Tensor(); | |||
| int CopyTensorData(const Tensor &srcTensor); | |||
| MS_DECLARE_PARENT(Tensor, MetaTensor) | |||
| virtual Tensor &operator=(const Tensor &tensor); | |||
| virtual bool operator==(const Tensor &tensor); | |||
| bool operator==(const Value &other) const override; | |||
| size_t Size() const { return MetaTensor::ElementsNum() * GetTypeByte(TypeIdToType(this->data_type_)); } | |||
| void *Data() const { return data_; } | |||
| protected: | |||
| void *data_; | |||
| }; | |||
| using TensorPtr = std::shared_ptr<Tensor>; | |||
| } // namespace tensor | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_CORE_IR_LITE_TENSOR_H_ | |||
| @@ -75,8 +75,6 @@ int MetaTensor::ElementsNum() const { | |||
| return std::accumulate(shape_.begin(), shape_.end(), 1LL, std::multiplies<int>()); | |||
| } | |||
| TypePtr MetaTensor::Dtype() const { return TypeIdToType(data_type_); } | |||
| TypePtr MetaTensor::SetDtype(const TypePtr type_ptr) { | |||
| if (type_ptr == nullptr) { | |||
| MS_LOG(ERROR) << "Dtype to be set is nullptr."; | |||
| @@ -37,5 +37,7 @@ abstract::AbstractBasePtr MetaTensor::ToAbstract() { | |||
| abs_tensor->set_value(shared_from_base<MetaTensor>()); | |||
| return abs_tensor; | |||
| } | |||
| TypePtr MetaTensor::Dtype() const { return TypeIdToType(data_type_); } | |||
| } // namespace tensor | |||
| } // namespace mindspore | |||
| @@ -31,7 +31,7 @@ class ParamValue { | |||
| ParamValue(const ParamValue &other) = default; | |||
| ~ParamValue() = default; | |||
| virtual ~ParamValue() = default; | |||
| tensor::MetaTensorPtr value() const { return value_; } | |||
| void set_value(const tensor::MetaTensorPtr &value) { value_ = value; } | |||
| @@ -17,11 +17,15 @@ | |||
| #include "utils/log_adapter.h" | |||
| #include <unistd.h> | |||
| #include <sys/time.h> | |||
| #include <map> | |||
| #ifndef USE_ANDROID_LOG | |||
| #include "debug/trace.h" | |||
| #endif | |||
| // namespace to support utils module definition | |||
| namespace mindspore { | |||
| #ifndef USE_ANDROID_LOG | |||
| #ifdef USE_GLOG | |||
| static std::string GetTime() { | |||
| #define BUFLEN 80 | |||
| @@ -125,6 +129,7 @@ static int GetSlogLevel(MsLogLevel level) { | |||
| } | |||
| } | |||
| #endif | |||
| #endif | |||
| static std::string ExceptionTypeToString(ExceptionType type) { | |||
| #define _TO_STRING(x) #x | |||
| @@ -184,7 +189,24 @@ static const char *GetSubModuleName(SubModuleId module_id) { | |||
| return sub_module_names[module_id % NUM_SUBMODUES]; | |||
| } | |||
| const char *EnumStrForMsLogLevel(MsLogLevel level) { | |||
| if (level == DEBUG) { | |||
| return "DEBUG"; | |||
| } else if (level == INFO) { | |||
| return "INFO"; | |||
| } else if (level == WARNING) { | |||
| return "WARNING"; | |||
| } else if (level == ERROR) { | |||
| return "ERROR"; | |||
| } else if (level == EXCEPTION) { | |||
| return "EXCEPTION"; | |||
| } else { | |||
| return "NO_LEVEL"; | |||
| } | |||
| } | |||
| void LogWriter::OutputLog(const std::ostringstream &msg) const { | |||
| #ifndef USE_ANDROID_LOG | |||
| #ifdef USE_GLOG | |||
| auto submodule_name = GetSubModuleName(submodule_); | |||
| google::LogMessage("", 0, GetGlogLevel(log_level_)).stream() | |||
| @@ -197,6 +219,10 @@ void LogWriter::OutputLog(const std::ostringstream &msg) const { | |||
| Dlog(static_cast<int>(slog_module_id), GetSlogLevel(log_level_), "[%s:%d] %s] %s", location_.file_, location_.line_, | |||
| location_.func_, str_msg.c_str()); | |||
| #endif | |||
| #else | |||
| printf("%s [%s:%d] %s] %s\n:", EnumStrForMsLogLevel(log_level_), location_.file_, location_.line_, location_.func_, | |||
| msg.str().c_str()); | |||
| #endif | |||
| } | |||
| void LogWriter::operator<(const LogStream &stream) const noexcept { | |||
| @@ -218,8 +244,10 @@ void LogWriter::operator^(const LogStream &stream) const { | |||
| } | |||
| oss << msg.str(); | |||
| #ifndef USE_ANDROID_LOG | |||
| trace::TraceGraphEval(); | |||
| trace::GetEvalStackInfo(oss); | |||
| #endif | |||
| if (exception_handler_ != nullptr) { | |||
| exception_handler_(exception_type_, oss.str()); | |||
| @@ -25,11 +25,13 @@ | |||
| #include <functional> | |||
| #include "utils/overload.h" | |||
| #include "./securec.h" | |||
| #ifndef USE_ANDROID_LOG | |||
| #ifdef USE_GLOG | |||
| #include "glog/logging.h" | |||
| #else | |||
| #include "toolchain/slog.h" | |||
| #endif | |||
| #endif | |||
| // NOTICE: when relative path of 'log_adapter.h' changed, macro 'LOG_HDR_FILE_REL_PATH' must be changed | |||
| #define LOG_HDR_FILE_REL_PATH "mindspore/core/utils/log_adapter.h" | |||
| @@ -129,6 +131,8 @@ enum SubModuleId : int { | |||
| #define SUBMODULE_ID mindspore::SubModuleId::SM_ME | |||
| #endif | |||
| const char *EnumStrForMsLogLevel(MsLogLevel level); | |||
| #if defined(_WIN32) || defined(_WIN64) | |||
| extern int g_ms_submodule_log_levels[] __attribute__((dllexport)); | |||
| #else | |||
| @@ -0,0 +1,119 @@ | |||
| cmake_minimum_required(VERSION 3.14) | |||
| project (Lite) | |||
| if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3.0) | |||
| message(FATAL_ERROR "GCC vesion ${CMAKE_CXX_COMPILER_VERSION} must not be less than 7.3.0") | |||
| endif () | |||
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") | |||
| set(TOP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../..) | |||
| set(CORE_DIR ${TOP_DIR}/mindspore/core) | |||
| set(CCSRC_DIR ${TOP_DIR}/mindspore/ccsrc) | |||
| include_directories(${TOP_DIR}) | |||
| include_directories(${CORE_DIR}) | |||
| include_directories(${CCSRC_DIR}) | |||
| include_directories(${CMAKE_CURRENT_SOURCE_DIR}) | |||
| include_directories(${TOP_DIR}/third_party) | |||
| include_directories(${TOP_DIR}/third_party/flatbuffers/include) | |||
| include(${TOP_DIR}/cmake/utils.cmake) | |||
| include(${TOP_DIR}/cmake/external_libs/json.cmake) | |||
| include(${TOP_DIR}/cmake/dependency_securec.cmake) | |||
| set(CMAKE_VERBOSE_MAKEFILE on) | |||
| add_compile_definitions(USE_ANDROID_LOG) | |||
| add_compile_definitions(NO_DLIB) | |||
| add_compile_options(-fPIC) | |||
| option(BUILD_DEVICE "if build device" on) | |||
| option(SUPPORT_TRAIN "if build for on-device train" off) | |||
| option(PLATFORM_ARM64 "if build device for arm64" off) | |||
| option(PLATFORM_ARM32 "if build device for arm32" off) | |||
| option(BUILD_CONVERTER "if build converter" on) | |||
| option(ENABLE_FP16 "if build fp16 ops" off) | |||
| option(SUPPORT_GPU "if support gpu" off) | |||
| option(OFFLINE_COMPILE "if offline compile OpenCL kernel" off) | |||
| if (BUILD_DEVICE) | |||
| add_compile_definitions(BUILD_DEVICE) | |||
| endif() | |||
| if (SUPPORT_TRAIN) | |||
| add_compile_definitions(SUPPORT_TRAIN) | |||
| endif() | |||
| if (ENABLE_NEON) | |||
| add_compile_definitions(ENABLE_NEON) | |||
| endif () | |||
| if (ENABLE_FP16) | |||
| add_compile_definitions(ENABLE_FP16) | |||
| endif () | |||
| if (SUPPORT_GPU) | |||
| add_definitions(-DUSE_OPENCL_WRAPPER) | |||
| add_definitions(-DMS_OPENCL_PROFILE=false) | |||
| add_definitions(-DCL_HPP_TARGET_OPENCL_VERSION=200) | |||
| add_compile_definitions(SUPPORT_GPU) | |||
| if(OFFLINE_COMPILE) | |||
| add_compile_definitions(PROGRAM_WITH_IL) | |||
| endif() | |||
| include_directories(${TOP_DIR}/third_party/OpenCL-Headers) | |||
| include_directories(${TOP_DIR}/third_party/OpenCL-CLHPP/include) | |||
| endif() | |||
| set(ANF_SRC | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/../core/ir/meta_tensor.cc | |||
| ${CCSRC_DIR}/gvar/logging_level.cc | |||
| ${CCSRC_DIR}/gvar/typeid_manager.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/../core/base/base.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/../core/utils/log_adapter.cc | |||
| ) | |||
| if (BUILD_CONVERTER) | |||
| if (PLATFORM_ARM64 OR PLATFORM_ARM32) | |||
| MESSAGE(FATAL_ERROR "Cannot build converter in arm platform") | |||
| endif() | |||
| find_package(Python3 3.7 COMPONENTS Interpreter Development) | |||
| if(Python3_FOUND) | |||
| set(PYTHON_INCLUDE_DIRS "${Python3_INCLUDE_DIRS}") | |||
| set(PYTHON_LIBRARIES "${Python3_LIBRARIES}") | |||
| if (WIN32) | |||
| if (Python3_DIR) | |||
| message("Python3_DIR set already: " ${Python3_DIR}) | |||
| else() | |||
| string(LENGTH ${PYTHON_LIBRARIES} PYTHON_LIBRARIES_LEN) | |||
| string(LENGTH "libpythonxx.a" Python3_NAME_LEN) | |||
| math(EXPR Python3_DIR_LEN ${PYTHON_LIBRARIES_LEN}-${Python3_NAME_LEN}) | |||
| string(SUBSTRING ${Python3_LIBRARIES} 0 ${Python3_DIR_LEN} Python3_DIR) | |||
| message("Python3_DIR: " ${Python3_DIR}) | |||
| endif() | |||
| link_directories(${Python3_DIR}) | |||
| endif() | |||
| else() | |||
| find_python_package(py_inc py_lib) | |||
| set(PYTHON_INCLUDE_DIRS "${py_inc}") | |||
| set(PYTHON_LIBRARIES "${py_lib}") | |||
| endif() | |||
| include_directories(${PYTHON_INCLUDE_DIRS}) | |||
| include(${TOP_DIR}/cmake/external_libs/pybind11.cmake) | |||
| include(${TOP_DIR}/cmake/external_libs/eigen.cmake) | |||
| include_directories(${TOP_DIR}/third_party/protobuf/build/include) | |||
| link_directories(${TOP_DIR}/third_party/protobuf/build/lib) | |||
| add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tools/converter) | |||
| add_subdirectory(src/common/anf_exporter) | |||
| endif() | |||
| if (BUILD_DEVICE) | |||
| if (PLATFORM_ARM32 OR PLATFORM_ARM64) | |||
| if (NOT DEFINED ENV{ANDROID_NDK}) | |||
| message(FATAL_ERROR "env ANDROID_NDK should be setted for ARM compile") | |||
| endif() | |||
| add_compile_definitions(ENABLE_ARM) | |||
| endif() | |||
| if (PLATFORM_ARM32) | |||
| add_definitions(-mfloat-abi=softfp -mfpu=neon) | |||
| add_compile_definitions(ENABLE_ARM32) | |||
| endif() | |||
| if (PLATFORM_ARM64) | |||
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=armv8.2-a+dotprod+fp16") | |||
| add_compile_definitions(ENABLE_ARM64) | |||
| endif() | |||
| add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/src) | |||
| add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/tools/benchmark) | |||
| # add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/test) | |||
| endif() | |||
| @@ -0,0 +1,272 @@ | |||
| #!/usr/bin/env bash | |||
| set -e | |||
| CUR_DIR=$(cd "$(dirname $0)"; pwd) | |||
| BASE_DIR=${CUR_DIR}/../../ | |||
| usage() | |||
| { | |||
| echo "Usage:" | |||
| echo "bash build.sh [-d] [-a arm64|arm32] [-j[n]] [-m] [-f] [-g] [-c] [-s] [-o]" | |||
| echo "" | |||
| echo "Options:" | |||
| echo " -d Enable Debug" | |||
| echo " -c Enable compile converter, default off" | |||
| echo " -m Enable Incremental compilation" | |||
| echo " -a Select ARM platform, default off" | |||
| echo " -j[n] Set the threads when building, default: -j8" | |||
| echo " -f Compile fp16 ops" | |||
| echo " -g Enable gpu compile" | |||
| echo " -s Support train" | |||
| echo " -o Offline compile OpenCL kernel" | |||
| } | |||
| checkopts() | |||
| { | |||
| # Init default values of build options | |||
| THREAD_NUM="8" | |||
| BUILD_TYPE="Release" | |||
| BUILD_DEVICE_PLATFORM="off" | |||
| MAKE_ONLY="off" | |||
| ENABLE_FP16="off" | |||
| ENABLE_GPU="off" | |||
| ENABLE_CONVERTER="off" | |||
| SUPPORT_TRAIN="off" | |||
| OFFLINE_COMPILE="off" | |||
| # Process the options | |||
| while getopts 'j:da:mfcsgo' opt | |||
| do | |||
| OPTARG=$(echo ${OPTARG} | tr '[A-Z]' '[a-z]') | |||
| case "${opt}" in | |||
| m) | |||
| MAKE_ONLY="on" | |||
| echo "Incremental compilation" | |||
| ;; | |||
| d) | |||
| BUILD_TYPE="Debug" | |||
| echo "Build Debug version" | |||
| ;; | |||
| j) | |||
| THREAD_NUM=$OPTARG | |||
| ;; | |||
| a) | |||
| if [[ "X$OPTARG" == "Xarm64" ]]; then | |||
| BUILD_DEVICE_PLATFORM="arm64" | |||
| echo "Enable arm64" | |||
| elif [[ "X$OPTARG" == "Xarm32" ]]; then | |||
| BUILD_DEVICE_PLATFORM="arm32" | |||
| echo "Enable arm32" | |||
| else | |||
| echo "-I parameter must be arm64 or arm32" | |||
| exit 1 | |||
| fi | |||
| ;; | |||
| c) | |||
| ENABLE_CONVERTER="on" | |||
| echo "Enable converter" | |||
| ;; | |||
| s) | |||
| SUPPORT_TRAIN="on" | |||
| echo "Support train" | |||
| ;; | |||
| f) | |||
| ENABLE_FP16="on" | |||
| echo "Enable fp16" | |||
| ;; | |||
| g) | |||
| ENABLE_GPU="on" | |||
| echo "Enable gpu" | |||
| ;; | |||
| o) | |||
| OFFLINE_COMPILE="on" | |||
| echo "OpenCL kernel offline compile" | |||
| ;; | |||
| *) | |||
| echo "Unknown option ${opt}!" | |||
| usage | |||
| exit 1 | |||
| esac | |||
| done | |||
| } | |||
| checkndk() { | |||
| if [ "${ANDROID_NDK}" ]; then | |||
| echo -e "\e[31mANDROID_NDK_PATH=$ANDROID_NDK \e[0m" | |||
| else | |||
| echo -e "\e[31mplease set ANDROID_NDK_PATH in environment variable for example: export ANDROID_NDK=/root/usr/android-ndk-r16b/ \e[0m" | |||
| exit 1 | |||
| fi | |||
| } | |||
| gene_flatbuffer() { | |||
| FLAT_DIR="${BASE_DIR}/mindspore/lite/schema" | |||
| cd ${FLAT_DIR} && rm -rf "${FLAT_DIR}/inner" && mkdir -p "${FLAT_DIR}/inner" | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b --reflect-types --gen-mutable --reflect-names --gen-object-api -o "${FLAT_DIR}/inner" | |||
| FLAT_DIR="${BASE_DIR}/mindspore/lite/tools/converter/parser/tflite" | |||
| cd ${FLAT_DIR} | |||
| find . -name "*.fbs" -print0 | xargs -0 "${FLATC}" -c -b --reflect-types --gen-mutable --reflect-names --gen-object-api -o "${FLAT_DIR}/" | |||
| } | |||
| build_flatbuffer() { | |||
| cd ${BASE_DIR} | |||
| FLATC="${BASE_DIR}"/third_party/flatbuffers/build/flatc | |||
| if [[ ! -f "${FLATC}" ]]; then | |||
| git submodule update --init --recursive third_party/flatbuffers | |||
| cd ${BASE_DIR}/third_party/flatbuffers | |||
| rm -rf build && mkdir -pv build && cd build && cmake .. && make -j$THREAD_NUM | |||
| gene_flatbuffer | |||
| fi | |||
| if [[ "${MAKE_ONLY}" == "off" ]]; then | |||
| gene_flatbuffer | |||
| fi | |||
| } | |||
| gene_protobuf() { | |||
| PROTO_SRC_DIR="${BASE_DIR}/mindspore/lite/tools/converter/parser/caffe" | |||
| find ${PROTO_SRC_DIR} -name "*.proto" -print0 | xargs -0 "${PROTOC}" -I"${PROTO_SRC_DIR}" --cpp_out="${PROTO_SRC_DIR}" | |||
| PROTO_SRC_DIR="${BASE_DIR}/mindspore/lite/tools/converter/parser/onnx" | |||
| find ${PROTO_SRC_DIR} -name "*.proto" -print0 | xargs -0 "${PROTOC}" -I"${PROTO_SRC_DIR}" --cpp_out="${PROTO_SRC_DIR}" | |||
| } | |||
| build_protobuf() { | |||
| cd ${BASE_DIR} | |||
| PROTOC="${BASE_DIR}"/third_party/protobuf/build/bin/protoc | |||
| if [[ ! -f "${PROTOC}" ]]; then | |||
| git submodule update --init --recursive third_party/protobuf | |||
| cd ${BASE_DIR}/third_party/protobuf | |||
| rm -rf build && mkdir -pv build && ./autogen.sh | |||
| ./configure --prefix=${BASE_DIR}/third_party/protobuf/build | |||
| make clean && make -j$THREAD_NUM && make install | |||
| gene_protobuf | |||
| fi | |||
| if [[ "${MAKE_ONLY}" == "off" ]]; then | |||
| gene_protobuf | |||
| fi | |||
| } | |||
| build_gtest() { | |||
| cd ${BASE_DIR} | |||
| git submodule update --init --recursive third_party/googletest | |||
| } | |||
| gene_clhpp() { | |||
| CL_SRC_DIR="${BASE_DIR}/mindspore/lite/src/runtime/kernel/opencl/cl" | |||
| for sub_dir in "${CL_SRC_DIR}"/* | |||
| do | |||
| data_type="$(basename ${sub_dir})" | |||
| if [ ! -d ${CL_SRC_DIR}/${data_type} ]; then | |||
| continue | |||
| fi | |||
| cd ${CL_SRC_DIR}/${data_type} | |||
| rm -rf *.inc | |||
| echo "$(cd "$(dirname $0)"; pwd)" | |||
| for file_path in "${CL_SRC_DIR}/${data_type}"/* | |||
| do | |||
| file="$(basename ${file_path})" | |||
| inc_file=`echo ${CL_SRC_DIR}/${data_type}/${file} | sed 's/$/.inc/'` | |||
| sed 's/^/\"/;s/$/ \\n\" \\/' ${CL_SRC_DIR}/${data_type}/${file} > ${inc_file} | |||
| kernel_name=`echo ${file} | sed s'/.\{3\}$//'` | |||
| sed -i "1i\static const char *${kernel_name}_source_${data_type} =\"\\n\" \\" ${inc_file} | |||
| sed -i '$a\;' ${inc_file} | |||
| done | |||
| done | |||
| } | |||
| gene_ocl_program() { | |||
| CL_SRC_DIR="${BASE_DIR}/mindspore/lite/src/runtime/kernel/opencl/cl" | |||
| SPIRV_DIR=build/spirv | |||
| rm -rf ${SPIRV_DIR} | |||
| mkdir -pv ${SPIRV_DIR} | |||
| for sub_dir in "${CL_SRC_DIR}"/* | |||
| do | |||
| data_type="$(basename ${sub_dir})" | |||
| if [ ! -d ${CL_SRC_DIR}/${data_type} ]; then | |||
| continue | |||
| fi | |||
| #echo $(cd "$(dirname $0)"; pwd) | |||
| for file_path in "${CL_SRC_DIR}/${data_type}"/* | |||
| do | |||
| file="$(basename ${file_path})" | |||
| if [ "${file##*.}" != "cl" ]; then | |||
| continue | |||
| fi | |||
| clang -Xclang -finclude-default-header -cl-std=CL2.0 --target=spir64-unknown-unknown -emit-llvm \ | |||
| -c -O0 -o ${SPIRV_DIR}/${file%.*}.bc ${CL_SRC_DIR}/${data_type}/${file} | |||
| done | |||
| done | |||
| bcs=`ls ${SPIRV_DIR}/*.bc` | |||
| llvm-link ${bcs} -o ${SPIRV_DIR}/program.bc | |||
| llvm-spirv -o ${SPIRV_DIR}/program.spv ${SPIRV_DIR}/program.bc | |||
| CL_PROGRAM_PATH="${BASE_DIR}/mindspore/lite/src/runtime/kernel/opencl/cl/program.inc" | |||
| echo "#include <vector>" > ${CL_PROGRAM_PATH} | |||
| echo "std::vector<unsigned char> g_program_binary = {" >> ${CL_PROGRAM_PATH} | |||
| #hexdump -v -e '16/1 "0x%02x, " "\n"' ${SPIRV_DIR}/program.spv >> ${CL_PROGRAM_PATH} | |||
| hexdump -v -e '1/1 "0x%02x, "' ${SPIRV_DIR}/program.spv >> ${CL_PROGRAM_PATH} | |||
| echo "};" >> ${CL_PROGRAM_PATH} | |||
| echo "Compile SPIRV done" | |||
| } | |||
| build_opencl() { | |||
| cd ${BASE_DIR} | |||
| git submodule update --init third_party/OpenCL-Headers | |||
| git submodule update --init third_party/OpenCL-CLHPP | |||
| if [[ "${OFFLINE_COMPILE}" == "on" ]]; then | |||
| gene_ocl_program | |||
| else | |||
| gene_clhpp | |||
| fi | |||
| } | |||
| buildlite() { | |||
| if [[ "${MAKE_ONLY}" == "off" ]]; then | |||
| cd ${CUR_DIR} | |||
| rm -rf build | |||
| mkdir -pv build | |||
| cd build | |||
| if [[ "${BUILD_DEVICE_PLATFORM}" == "arm64" ]]; then | |||
| checkndk | |||
| 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=${BUILD_TYPE} -DSUPPORT_TRAIN=${SUPPORT_TRAIN} \ | |||
| -DBUILD_DEVICE=on -DPLATFORM_ARM64=on -DBUILD_CONVERTER=off -DENABLE_NEON=on -DENABLE_FP16="${ENABLE_FP16}" \ | |||
| -DSUPPORT_GPU=${ENABLE_GPU} -DOFFLINE_COMPILE=${OFFLINE_COMPILE} .. | |||
| elif [[ "${BUILD_DEVICE_PLATFORM}" == "arm32" ]]; then | |||
| checkndk | |||
| 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="clang" \ | |||
| -DANDROID_STL="c++_shared" -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ | |||
| -DBUILD_DEVICE=on -DPLATFORM_ARM32=on -DENABLE_NEON=on -DSUPPORT_TRAIN=${SUPPORT_TRAIN} -DBUILD_CONVERTER=off \ | |||
| -DSUPPORT_GPU=${ENABLE_GPU} -DOFFLINE_COMPILE=${OFFLINE_COMPILE} .. | |||
| else | |||
| cmake -DBUILD_DEVICE=on -DPLATFORM_ARM64=off -DBUILD_CONVERTER=${ENABLE_CONVERTER} -DSUPPORT_TRAIN=${SUPPORT_TRAIN} \ | |||
| -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DSUPPORT_GPU=${ENABLE_GPU} -DOFFLINE_COMPILE=${OFFLINE_COMPILE} .. | |||
| fi | |||
| else | |||
| cd ${CUR_DIR}/build | |||
| fi | |||
| VERBOSE=2 make -j$THREAD_NUM | |||
| } | |||
| echo "---------------- mindspore lite: build start ----------------" | |||
| checkopts "$@" | |||
| build_flatbuffer | |||
| if [[ "${ENABLE_CONVERTER}" == "on" ]]; then | |||
| build_protobuf | |||
| fi | |||
| if [[ "${ENABLE_GPU}" == "on" ]]; then | |||
| build_opencl | |||
| fi | |||
| build_gtest | |||
| buildlite | |||
| COMPILE_RET=$? | |||
| if [[ "${COMPILE_RET}" -ne 0 ]]; then | |||
| echo "---------------- mindspore lite: build failed ----------------" | |||
| else | |||
| echo "---------------- mindspore lite: build success ----------------" | |||
| fi | |||
| @@ -0,0 +1,7 @@ | |||
| # CMake generated Testfile for | |||
| # Source directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest | |||
| # Build directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest | |||
| # | |||
| # This file includes the relevant testing commands required for | |||
| # testing this directory and lists subdirectories to be tested as well. | |||
| subdirs("googlemock") | |||
| @@ -0,0 +1,7 @@ | |||
| # CMake generated Testfile for | |||
| # Source directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock | |||
| # Build directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock | |||
| # | |||
| # This file includes the relevant testing commands required for | |||
| # testing this directory and lists subdirectories to be tested as well. | |||
| subdirs("gtest") | |||
| @@ -0,0 +1,517 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="gmock"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\..\..\third_party\googletest\;CMake Files\..\..\third_party\googletest\googlemock\;CMake Files\..\..\third_party\googletest\googlemock\cmake\;CMake Files\..\..\third_party\googletest\googletest\;CMake Files\..\..\third_party\googletest\googletest\cmake\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;CMake Files\test\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock-all.cc"> | |||
| <Option target="gmock"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock_main.cc"> | |||
| <Option target="gmock_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest-all.cc"> | |||
| <Option target="gtest"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest_main.cc"> | |||
| <Option target="gtest_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_gtest.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/Config.cmake.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/internal_utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/test/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\test\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,6 @@ | |||
| # CMake generated Testfile for | |||
| # Source directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest | |||
| # Build directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest | |||
| # | |||
| # This file includes the relevant testing commands required for | |||
| # testing this directory and lists subdirectories to be tested as well. | |||
| @@ -0,0 +1,33 @@ | |||
| ####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### | |||
| ####### Any changes to this file will be overwritten by the next CMake run #### | |||
| ####### The input file was Config.cmake.in ######## | |||
| get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) | |||
| macro(set_and_check _var _file) | |||
| set(${_var} "${_file}") | |||
| if(NOT EXISTS "${_file}") | |||
| message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") | |||
| endif() | |||
| endmacro() | |||
| macro(check_required_components _NAME) | |||
| foreach(comp ${${_NAME}_FIND_COMPONENTS}) | |||
| if(NOT ${_NAME}_${comp}_FOUND) | |||
| if(${_NAME}_FIND_REQUIRED_${comp}) | |||
| set(${_NAME}_FOUND FALSE) | |||
| endif() | |||
| endif() | |||
| endforeach() | |||
| endmacro() | |||
| #################################################################################### | |||
| include(CMakeFindDependencyMacro) | |||
| if (ON) | |||
| set(THREADS_PREFER_PTHREAD_FLAG ON) | |||
| find_dependency(Threads) | |||
| endif() | |||
| include("${CMAKE_CURRENT_LIST_DIR}/GTestTargets.cmake") | |||
| check_required_components("") | |||
| @@ -0,0 +1,37 @@ | |||
| # This is a basic version file for the Config-mode of find_package(). | |||
| # It is used by write_basic_package_version_file() as input file for configure_file() | |||
| # to create a version-file which can be installed along a config.cmake file. | |||
| # | |||
| # The created file sets PACKAGE_VERSION_EXACT if the current version string and | |||
| # the requested version string are exactly the same and it sets | |||
| # PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. | |||
| # The variable CVF_VERSION must be set before calling configure_file(). | |||
| set(PACKAGE_VERSION "1.9.0") | |||
| if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) | |||
| set(PACKAGE_VERSION_COMPATIBLE FALSE) | |||
| else() | |||
| set(PACKAGE_VERSION_COMPATIBLE TRUE) | |||
| if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) | |||
| set(PACKAGE_VERSION_EXACT TRUE) | |||
| endif() | |||
| endif() | |||
| # if the installed project requested no architecture check, don't perform the check | |||
| if("FALSE") | |||
| return() | |||
| endif() | |||
| # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: | |||
| if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") | |||
| return() | |||
| endif() | |||
| # check that the installed version has the same 32/64bit-ness as the one which is currently searching: | |||
| if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") | |||
| math(EXPR installedBits "8 * 8") | |||
| set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") | |||
| set(PACKAGE_VERSION_UNSUITABLE TRUE) | |||
| endif() | |||
| @@ -0,0 +1,9 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gmock | |||
| Description: GoogleMock (without main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Libs: -L${libdir} -lgmock -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,9 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gmock_main | |||
| Description: GoogleMock (with main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Libs: -L${libdir} -lgmock_main -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,9 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gtest | |||
| Description: GoogleTest (without main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Libs: -L${libdir} -lgtest -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,10 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gtest_main | |||
| Description: GoogleTest (with main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Requires: gtest | |||
| Libs: -L${libdir} -lgtest_main -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,327 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="gtest"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\..\..\third_party\googletest\;CMake Files\..\..\third_party\googletest\googlemock\;CMake Files\..\..\third_party\googletest\googlemock\cmake\;CMake Files\..\..\third_party\googletest\googletest\;CMake Files\..\..\third_party\googletest\googletest\cmake\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;CMake Files\test\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest-all.cc"> | |||
| <Option target="gtest"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest_main.cc"> | |||
| <Option target="gtest_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_gtest.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/Config.cmake.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/internal_utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/test/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\test\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,517 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="googletest-distribution"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\..\..\third_party\googletest\;CMake Files\..\..\third_party\googletest\googlemock\;CMake Files\..\..\third_party\googletest\googlemock\cmake\;CMake Files\..\..\third_party\googletest\googletest\;CMake Files\..\..\third_party\googletest\googletest\cmake\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;CMake Files\test\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 gmock/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock-all.cc"> | |||
| <Option target="gmock"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock_main.cc"> | |||
| <Option target="gmock_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest-all.cc"> | |||
| <Option target="gtest"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest_main.cc"> | |||
| <Option target="gtest_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_gtest.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/Config.cmake.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/internal_utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/test/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\test\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,112 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="optimize"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/src/runtime/kernel/arm/opclib"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-cloud/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,7 @@ | |||
| # CMake generated Testfile for | |||
| # Source directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest | |||
| # Build directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest | |||
| # | |||
| # This file includes the relevant testing commands required for | |||
| # testing this directory and lists subdirectories to be tested as well. | |||
| subdirs("googlemock") | |||
| @@ -0,0 +1,7 @@ | |||
| # CMake generated Testfile for | |||
| # Source directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock | |||
| # Build directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock | |||
| # | |||
| # This file includes the relevant testing commands required for | |||
| # testing this directory and lists subdirectories to be tested as well. | |||
| subdirs("gtest") | |||
| @@ -0,0 +1,517 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="gmock"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\..\..\third_party\googletest\;CMake Files\..\..\third_party\googletest\googlemock\;CMake Files\..\..\third_party\googletest\googlemock\cmake\;CMake Files\..\..\third_party\googletest\googletest\;CMake Files\..\..\third_party\googletest\googletest\cmake\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;CMake Files\test\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock-all.cc"> | |||
| <Option target="gmock"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock_main.cc"> | |||
| <Option target="gmock_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest-all.cc"> | |||
| <Option target="gtest"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest_main.cc"> | |||
| <Option target="gtest_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_gtest.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/Config.cmake.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/internal_utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/test/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\test\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,6 @@ | |||
| # CMake generated Testfile for | |||
| # Source directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest | |||
| # Build directory: /mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest | |||
| # | |||
| # This file includes the relevant testing commands required for | |||
| # testing this directory and lists subdirectories to be tested as well. | |||
| @@ -0,0 +1,33 @@ | |||
| ####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() ####### | |||
| ####### Any changes to this file will be overwritten by the next CMake run #### | |||
| ####### The input file was Config.cmake.in ######## | |||
| get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE) | |||
| macro(set_and_check _var _file) | |||
| set(${_var} "${_file}") | |||
| if(NOT EXISTS "${_file}") | |||
| message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !") | |||
| endif() | |||
| endmacro() | |||
| macro(check_required_components _NAME) | |||
| foreach(comp ${${_NAME}_FIND_COMPONENTS}) | |||
| if(NOT ${_NAME}_${comp}_FOUND) | |||
| if(${_NAME}_FIND_REQUIRED_${comp}) | |||
| set(${_NAME}_FOUND FALSE) | |||
| endif() | |||
| endif() | |||
| endforeach() | |||
| endmacro() | |||
| #################################################################################### | |||
| include(CMakeFindDependencyMacro) | |||
| if (ON) | |||
| set(THREADS_PREFER_PTHREAD_FLAG ON) | |||
| find_dependency(Threads) | |||
| endif() | |||
| include("${CMAKE_CURRENT_LIST_DIR}/GTestTargets.cmake") | |||
| check_required_components("") | |||
| @@ -0,0 +1,37 @@ | |||
| # This is a basic version file for the Config-mode of find_package(). | |||
| # It is used by write_basic_package_version_file() as input file for configure_file() | |||
| # to create a version-file which can be installed along a config.cmake file. | |||
| # | |||
| # The created file sets PACKAGE_VERSION_EXACT if the current version string and | |||
| # the requested version string are exactly the same and it sets | |||
| # PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version. | |||
| # The variable CVF_VERSION must be set before calling configure_file(). | |||
| set(PACKAGE_VERSION "1.9.0") | |||
| if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) | |||
| set(PACKAGE_VERSION_COMPATIBLE FALSE) | |||
| else() | |||
| set(PACKAGE_VERSION_COMPATIBLE TRUE) | |||
| if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) | |||
| set(PACKAGE_VERSION_EXACT TRUE) | |||
| endif() | |||
| endif() | |||
| # if the installed project requested no architecture check, don't perform the check | |||
| if("FALSE") | |||
| return() | |||
| endif() | |||
| # if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: | |||
| if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "") | |||
| return() | |||
| endif() | |||
| # check that the installed version has the same 32/64bit-ness as the one which is currently searching: | |||
| if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8") | |||
| math(EXPR installedBits "8 * 8") | |||
| set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)") | |||
| set(PACKAGE_VERSION_UNSUITABLE TRUE) | |||
| endif() | |||
| @@ -0,0 +1,9 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gmock | |||
| Description: GoogleMock (without main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Libs: -L${libdir} -lgmock -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,9 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gmock_main | |||
| Description: GoogleMock (with main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Libs: -L${libdir} -lgmock_main -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,9 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gtest | |||
| Description: GoogleTest (without main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Libs: -L${libdir} -lgtest -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,10 @@ | |||
| libdir=/usr/local/lib | |||
| includedir=/usr/local/include | |||
| Name: gtest_main | |||
| Description: GoogleTest (with main() function) | |||
| Version: 1.9.0 | |||
| URL: https://github.com/google/googletest | |||
| Requires: gtest | |||
| Libs: -L${libdir} -lgtest_main -pthread | |||
| Cflags: -I${includedir} -DGTEST_HAS_PTHREAD=1 -pthread | |||
| @@ -0,0 +1,327 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="gtest"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\..\..\third_party\googletest\;CMake Files\..\..\third_party\googletest\googlemock\;CMake Files\..\..\third_party\googletest\googlemock\cmake\;CMake Files\..\..\third_party\googletest\googletest\;CMake Files\..\..\third_party\googletest\googletest\cmake\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;CMake Files\test\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest-all.cc"> | |||
| <Option target="gtest"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest_main.cc"> | |||
| <Option target="gtest_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_gtest.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/Config.cmake.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/internal_utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/test/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\test\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,517 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="googletest-distribution"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\..\..\third_party\googletest\;CMake Files\..\..\third_party\googletest\googlemock\;CMake Files\..\..\third_party\googletest\googlemock\cmake\;CMake Files\..\..\third_party\googletest\googletest\;CMake Files\..\..\third_party\googletest\googletest\cmake\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;CMake Files\test\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmock_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gmock/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/libgmockd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 gmock/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest_main/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtest_maind.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest_main/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| <Target title="gtest/fast"> | |||
| <Option output="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/libgtestd.so" prefix_auto="0" extension_auto="0"/> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest"/> | |||
| <Option object_output="./"/> | |||
| <Option type="3"/> | |||
| <Option compiler="gcc"/> | |||
| <Compiler> | |||
| <Add option="-DGTEST_CREATE_SHARED_LIBRARY=1"/> | |||
| <Add option="-DUSE_ANDROID_LOG"/> | |||
| <Add option="-DNO_DLIB"/> | |||
| <Add option="-DBUILD_DEVICE"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../.."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/core"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/ccsrc"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/flatbuffers/include"/> | |||
| <Add directory="/home/hgq/.mslib/nlohmann_json_b73a91c3af99db76a4468ecba3b99509/."/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/cmake/../third_party/securec/include"/> | |||
| <Add directory="/mnt/data/software/anaconda/anaconda/include/python3.7m"/> | |||
| <Add directory="/home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/include"/> | |||
| <Add directory="/home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/include/eigen3"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/protobuf/build/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../tests/ut/cpp"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/tools"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../mindspore/lite/lite"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/include"/> | |||
| <Add directory="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest"/> | |||
| <Add directory="/usr/include/c++/7"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu/c++/7"/> | |||
| <Add directory="/usr/include/c++/7/backward"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include"/> | |||
| <Add directory="/usr/local/include"/> | |||
| <Add directory="/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"/> | |||
| <Add directory="/usr/include/x86_64-linux-gnu"/> | |||
| <Add directory="/usr/include"/> | |||
| </Compiler> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 gtest/fast"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/googletest/googlemock/gtest/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock-all.cc"> | |||
| <Option target="gmock"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googlemock/src/gmock_main.cc"> | |||
| <Option target="gmock_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest-all.cc"> | |||
| <Option target="gtest"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/third_party/googletest/googletest/src/gtest_main.cc"> | |||
| <Option target="gtest_main"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_gtest.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googlemock/cmake/gmock_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googlemock\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/Config.cmake.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/gtest_main.pc.in"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/googletest/googletest/cmake/internal_utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\googletest\googletest\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/test/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\test\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,112 @@ | |||
| <?xml version="1.0" encoding="UTF-8"?> | |||
| <CodeBlocks_project_file> | |||
| <FileVersion major="1" minor="6"/> | |||
| <Project> | |||
| <Option title="optimize"/> | |||
| <Option makefile_is_custom="1"/> | |||
| <Option compiler="gcc"/> | |||
| <Option virtualFolders="CMake Files\;CMake Files\..\;CMake Files\..\..\;CMake Files\..\..\cmake\;CMake Files\..\..\cmake\external_libs\;CMake Files\..\..\..\;CMake Files\..\..\..\..\;CMake Files\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\;CMake Files\..\..\..\..\..\..\..\..\home\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\;CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\;CMake Files\..\..\third_party\;CMake Files\..\..\third_party\securec\;CMake Files\..\..\third_party\securec\src\;CMake Files\tools\;CMake Files\tools\converter\;CMake Files\tools\converter\parser\;CMake Files\tools\converter\parser\caffe\;CMake Files\tools\converter\parser\tflite\;CMake Files\tools\converter\optimizer\;CMake Files\tools\converter\optimizer\fusion\;CMake Files\tools\converter\optimizer\node\;CMake Files\tools\converter\optimizer\graph\;CMake Files\tools\converter\quantizer\;CMake Files\tools\benchmark\;CMake Files\src\;CMake Files\src\common\;CMake Files\src\common\anf_exporter\;CMake Files\src\runtime\;CMake Files\src\runtime\kernel\;CMake Files\src\runtime\kernel\arm\;CMake Files\src\runtime\kernel\arm\opclib\;CMake Files\src\ops\;"/> | |||
| <Build> | |||
| <Target title="all"> | |||
| <Option working_dir="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/src/runtime/kernel/arm/opclib"/> | |||
| <Option type="4"/> | |||
| <MakeCommands> | |||
| <Build command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 all"/> | |||
| <CompileFile command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 "$file""/> | |||
| <Clean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 clean"/> | |||
| <DistClean command="/usr/bin/make -j8 -f "/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/cmake-build-minnie/src/runtime/kernel/arm/opclib/Makefile" VERBOSE=1 clean"/> | |||
| </MakeCommands> | |||
| </Target> | |||
| </Build> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/dependency_securec.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/utils.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/eigen.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/json.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../cmake/external_libs/pybind11.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\cmake\external_libs\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/FindPythonLibsNew.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/pybind11_4ff815e53c2c9c54255c528ad480c451/share/cmake/pybind11/pybind11Tools.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\pybind11_4ff815e53c2c9c54255c528ad480c451\share\cmake\pybind11\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Config.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3ConfigVersion.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../../../../../../../home/hgq/.mslib/eigen3_951666374a92d62fcd880d2baa7db402/share/eigen3/cmake/Eigen3Targets.cmake"> | |||
| <Option virtualFolder="CMake Files\..\..\..\..\..\..\..\..\home\hgq\.mslib\eigen3_951666374a92d62fcd880d2baa7db402\share\eigen3\cmake\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/../../third_party/securec/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\..\..\third_party\securec\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/caffe/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\caffe\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/parser/tflite/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\parser\tflite\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/fusion/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\fusion\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/node/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\node\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/optimizer/graph/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\optimizer\graph\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/converter/quantizer/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\converter\quantizer\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/tools/benchmark/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\tools\benchmark\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/common/anf_exporter/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\common\anf_exporter\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/runtime/kernel/arm/opclib/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\runtime\kernel\arm\opclib\"/> | |||
| </Unit> | |||
| <Unit filename="/mnt/data/workspace/OpenAI/Huawei/mindspore/mindspore/lite/src/ops/CMakeLists.txt"> | |||
| <Option virtualFolder="CMake Files\src\ops\"/> | |||
| </Unit> | |||
| </Project> | |||
| </CodeBlocks_project_file> | |||
| @@ -0,0 +1,76 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_INCLUDE_CONTEXT_H_ | |||
| #define MINDSPORE_LITE_INCLUDE_CONTEXT_H_ | |||
| #include <string> | |||
| #include <memory> | |||
| #include "include/ms_tensor.h" | |||
| namespace mindspore::lite { | |||
| class Allocator; | |||
| enum CpuBindMode { | |||
| MID_CPU = -1, /**< bind mid cpu first */ | |||
| HIGHER_CPU = 1, /**< bind higher cpu first */ | |||
| NO_BIND = 0 /**< no bind */ | |||
| }; | |||
| typedef enum { DT_CPU, DT_GPU, DT_NPU } DeviceType; | |||
| // brief NPUContext defined by MindSpore predict | |||
| typedef struct { | |||
| int freq{3}; | |||
| int fmkType{0}; | |||
| int modelType{0}; | |||
| int deviceType{0}; | |||
| std::string modelName = "default"; | |||
| } NPUContext; | |||
| // brief DeviceContext defined by MindSpore predict | |||
| typedef struct { | |||
| DeviceType type; | |||
| // DLContext primary; | |||
| NPUContext npuCtx; | |||
| } DeviceContext; | |||
| // brief Context defined by MindSpore predict | |||
| class MS_API Context { | |||
| public: | |||
| // brief Constructor of MindSpore predict context using default value for parameters | |||
| // | |||
| // return Instance of MindSpore predict context. | |||
| Context(); | |||
| // brief Constructor of MindSpore predict context using input value for parameters | |||
| // | |||
| // param[in] threadNum Define the threadNum during the runtime. | |||
| // param[in] allocator Define the allocator for malloc. | |||
| // param[in] deviceCtx Define device information during the runtime. | |||
| Context(int threadNum, std::shared_ptr<Allocator> allocator, DeviceContext deviceCtx); | |||
| // brief Destructor of MindSpore predict context | |||
| virtual ~Context(); | |||
| public: | |||
| DeviceContext deviceCtx; | |||
| int threadNum = 2; | |||
| std::shared_ptr<Allocator> allocator; | |||
| CpuBindMode cpuBindMode = MID_CPU; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_LITE_INCLUDE_CONTEXT_H_ | |||
| @@ -0,0 +1,55 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_INCLUDE_ERRORCODE_H_ | |||
| #define MINDSPORE_LITE_INCLUDE_ERRORCODE_H_ | |||
| namespace mindspore { | |||
| namespace lite { | |||
| using STATUS = int; | |||
| /* Success */ | |||
| constexpr int RET_OK = 0; /**< No error occurs. */ | |||
| /* Common error code, range: [-1, -100]*/ | |||
| constexpr int RET_ERROR = -1; /**< Common error code. */ | |||
| constexpr int RET_NULL_PTR = -2; /**< NULL pointer returned.*/ | |||
| constexpr int RET_PARAM_INVALID = -3; /**< Invalid parameter.*/ | |||
| constexpr int RET_NO_CHANGE = -4; /**< No change. */ | |||
| constexpr int RET_SUCCESS_EXIT = -5; /**< No error but exit. */ | |||
| constexpr int RET_MEMORY_FAILED = -6; /**< Create memory failed. */ | |||
| /* Executor error code, range: [-101,-200] */ | |||
| constexpr int RET_OUT_OF_TENSOR_RANGE = -101; /**< Failed to checking range. */ | |||
| constexpr int RET_INPUT_TENSOR_ERROR = -102; /**< Failed to checking input tensor. */ | |||
| constexpr int RET_REENTRANT_ERROR = -103; /**< Exist executor running. */ | |||
| /* Graph error code, range: [-201,-300] */ | |||
| constexpr int RET_GRAPH_FILE_ERR = -201; /**< Failed to verify graph file. */ | |||
| /* Node error code, range: [-301,-400] */ | |||
| constexpr int RET_NOT_FIND_OP = -301; /**< Failed to find operator. */ | |||
| constexpr int RET_INVALID_OP_NAME = -302; /**< Invalid operator name. */ | |||
| constexpr int RET_INVALID_OP_ATTR = -303; /**< Invalid operator attr. */ | |||
| constexpr int RET_OP_EXECUTE_FAILURE = -304; /**< Failed to execution operator. */ | |||
| /* Tensor error code, range: [-401,-500] */ | |||
| constexpr int RET_FORMAT_ERR = -401; /**< Failed to checking tensor format. */ | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_INCLUDE_ERRORCODE_H_ | |||
| @@ -0,0 +1,52 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_INCLUDE_LITE_SESSION_H | |||
| #define MINDSPORE_LITE_INCLUDE_LITE_SESSION_H | |||
| #include <memory> | |||
| #include <vector> | |||
| #include <string> | |||
| #include "include/ms_tensor.h" | |||
| #include "include/model.h" | |||
| #include "include/context.h" | |||
| namespace mindspore { | |||
| namespace session { | |||
| class MS_API LiteSession { | |||
| public: | |||
| virtual ~LiteSession() = default; | |||
| virtual void BindThread(bool ifBind) = 0; | |||
| static LiteSession *CreateSession(lite::Context *context); | |||
| virtual int CompileGraph(lite::Model *model) = 0; | |||
| virtual std::vector<tensor::MSTensor *> GetInputs() = 0; | |||
| virtual std::vector<tensor::MSTensor *> GetInputsByName(std::string name) = 0; | |||
| virtual int RunGraph() = 0; | |||
| virtual std::vector<tensor::MSTensor *> GetOutputs() = 0; | |||
| virtual std::vector<tensor::MSTensor *> GetOutputsByName(std::string name) = 0; | |||
| }; | |||
| } // namespace session | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_INCLUDE_LITE_SESSION_H | |||
| @@ -0,0 +1,57 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_INCLUDE_MODEL_H | |||
| #define MINDSPORE_LITE_INCLUDE_MODEL_H | |||
| #include <string> | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "schema/model_generated.h" | |||
| namespace mindspore { | |||
| class ModelImpl; | |||
| namespace lite { | |||
| class Primitive; | |||
| class Model { | |||
| public: | |||
| static std::shared_ptr<Model> Import(const char *model_buf, size_t size); | |||
| virtual ~Model() = default; | |||
| Model() = default; | |||
| lite::Primitive *GetOp(const std::string &name) const; | |||
| const schema::MetaGraph *GetMetaGraph() const; | |||
| std::shared_ptr<ModelImpl> GetModelImpl(); | |||
| void FreeMetaGraph(); | |||
| protected: | |||
| std::shared_ptr<ModelImpl> modelImpl = nullptr; | |||
| }; | |||
| class ModelBuilder { | |||
| public: | |||
| struct OutEdge { | |||
| std::string nodeId; | |||
| size_t outEdgeIndex; | |||
| }; | |||
| ModelBuilder() = default; | |||
| virtual ~ModelBuilder() = default; | |||
| virtual std::string AddOp(const lite::Primitive &op, const std::vector<OutEdge> &inputs) = 0; | |||
| virtual Model *Construct(); | |||
| }; | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_INCLUDE_MODEL_H | |||
| @@ -0,0 +1,70 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_INCLUDE_MS_TENSOR_H_ | |||
| #define MINDSPORE_INCLUDE_MS_TENSOR_H_ | |||
| #include <utility> | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "ir/dtype/type_id.h" | |||
| namespace mindspore { | |||
| #define MS_API __attribute__((visibility("default"))) | |||
| namespace tensor { | |||
| class MS_API MSTensor { | |||
| public: | |||
| MSTensor() = default; | |||
| // brief Create a MSTensor pointer. | |||
| // | |||
| // param data_type DataTypeId of tensor to be created. | |||
| // param shape Shape of tensor to be created. | |||
| // return MSTensor pointer. | |||
| static MSTensor *CreateTensor(TypeId data_type, const std::vector<int> &shape); | |||
| virtual ~MSTensor() = default; | |||
| virtual TypeId data_type() const = 0; | |||
| virtual TypeId set_data_type(const TypeId data_type) = 0; | |||
| virtual std::vector<int> shape() const = 0; | |||
| virtual size_t set_shape(const std::vector<int> &shape) = 0; | |||
| virtual int DimensionSize(size_t index) const = 0; | |||
| // brief Get number of element in MSTensor. | |||
| // | |||
| // return Number of element in MSTensor. | |||
| virtual int ElementsNum() const = 0; | |||
| virtual std::size_t hash() const = 0; | |||
| // brief Get byte size of data in MSTensor. | |||
| // | |||
| // return Byte size of data in MSTensor. | |||
| virtual size_t Size() const = 0; | |||
| // brief Get pointer of data in MSTensor. | |||
| // | |||
| // The data pointer can be used to both write or read data in MSTensor. | |||
| // | |||
| // return A pointer points to data in MSTensor. | |||
| virtual void *MutableData() const = 0; | |||
| }; | |||
| using MultiTensor = std::vector<std::vector<std::shared_ptr<tensor::MSTensor>>>; | |||
| } // namespace tensor | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_INCLUDE_MS_TENSOR_H_ | |||
| @@ -0,0 +1,208 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| include "ops.fbs"; | |||
| namespace mindspore.schema; | |||
| enum NodeType: int { | |||
| ValueNode, // const | |||
| Parameter, // var | |||
| CNode // op | |||
| } | |||
| table QuantParam { | |||
| scale: double; | |||
| zeroPoint: int; | |||
| min: double = 0; | |||
| max: double = 0; | |||
| narrowRange: bool = true; | |||
| numBits: int = 8; | |||
| inited: bool = false; | |||
| } | |||
| table Tensor { | |||
| nodeType: NodeType; | |||
| // data type | |||
| dataType: int; | |||
| // shape | |||
| dims: [int]; | |||
| format: Format; | |||
| refCount: int; | |||
| offset: int; | |||
| data: [ubyte]; | |||
| quantParams: [QuantParam]; | |||
| } | |||
| union PrimitiveType { | |||
| Concat, | |||
| SoftMax, | |||
| Activation, | |||
| Conv2D, | |||
| FusedBatchNorm, | |||
| CaffeBatchNorm, | |||
| BiasAdd, | |||
| Pooling, | |||
| DepthwiseConv2D, | |||
| DeDepthwiseConv2D, | |||
| Resize, | |||
| DetectionPostProcess, | |||
| FullConnection, | |||
| Mean, | |||
| DeConv2D, | |||
| Scale, | |||
| Reshape, | |||
| Eltwise, | |||
| NetOutput, | |||
| Add, | |||
| Sub, | |||
| MatMul, | |||
| StridedSlice, | |||
| Power, | |||
| Slice, | |||
| Stack, | |||
| Mul, | |||
| RealDiv, | |||
| Pad, | |||
| Maximum, | |||
| Minimum, | |||
| CaffePReLU, | |||
| LeakyReLU, | |||
| ArgMax, | |||
| ArgMin, | |||
| Exp, | |||
| Crop, | |||
| Range, | |||
| Rsqrt, | |||
| ExpandDims, | |||
| Tile, | |||
| Cast, | |||
| Shape, | |||
| Nchw2Nhwc, | |||
| Nhwc2Nchw, | |||
| QuantDTypeCast, | |||
| Split, | |||
| Permute, | |||
| FakeQuantWithMinMaxVars, | |||
| Equal, | |||
| Less, | |||
| Greater, | |||
| NotEqual, | |||
| LessEqual, | |||
| GreaterEqual, | |||
| Min, | |||
| Floor, | |||
| Abs, | |||
| Neg, | |||
| Cos, | |||
| Sin, | |||
| Sqrt, | |||
| Square, | |||
| Constant, | |||
| Log, | |||
| Tan, | |||
| Atan, | |||
| Asin, | |||
| Clip, | |||
| Transpose, | |||
| Squeeze, | |||
| Unsqueeze, | |||
| Upsample, | |||
| Dropout, | |||
| Broadcast, | |||
| BroadcastTo, | |||
| Lrn, | |||
| Prelu, | |||
| ZerosLike, | |||
| TopK, | |||
| SpaceToDepth, | |||
| SpaceToBatch, | |||
| SparseToDense, | |||
| ReverseSequence, | |||
| Rank, | |||
| Gather, | |||
| GatherNd, | |||
| Fill, | |||
| Elu, | |||
| DepthToSpace, | |||
| BatchToSpace, | |||
| AddN, | |||
| Ceil, | |||
| EmbeddingLookup, | |||
| EmbeddingLookupSparse, | |||
| FloorDiv, | |||
| FloorMod, | |||
| L2Norm, | |||
| LocalResponseNormalization, | |||
| MatrixDiag, | |||
| Reduce, | |||
| Reverse, | |||
| Round, | |||
| Select, | |||
| Scatter, | |||
| ScatterND, | |||
| Unique, | |||
| Unstack, | |||
| LogicalAnd, | |||
| LogicalOr, | |||
| LogicalXor, | |||
| LogicalNot, | |||
| OnnxInt8Quantize, | |||
| OnnxInt8Dequantize, | |||
| FakeQuantWithMinMax, | |||
| FakeQuantWithMinMaxPerChannel, | |||
| BatchNormFold, | |||
| MulFold, | |||
| AddFold, | |||
| SquaredDifference, | |||
| Flatten, | |||
| TupleGetItem, | |||
| Div, | |||
| Where, | |||
| OneHot | |||
| } | |||
| enum QuantType: int { | |||
| QUANT_NONE, | |||
| AwareTrainning, | |||
| WeightQuant, | |||
| PostTraining | |||
| } | |||
| table Primitive { | |||
| value: PrimitiveType; | |||
| } | |||
| table CNode { | |||
| name: string; | |||
| nodeType: NodeType = CNode; | |||
| primitive: Primitive; | |||
| inputIndex: [uint]; | |||
| outputIndex: [uint]; | |||
| quantType: QuantType = QUANT_NONE; | |||
| } | |||
| table MetaGraph { | |||
| name: string; | |||
| fmkType: int; // 0:tf,1:caffe | |||
| inputIndex: [uint]; | |||
| outputIndex: [uint]; | |||
| mempoolSize: uint; | |||
| nodes: [CNode]; | |||
| allTensors: [Tensor]; // weight + input + output | |||
| } | |||
| root_type MetaGraph; | |||
| @@ -0,0 +1,719 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| namespace mindspore.schema; | |||
| enum ResizeMethod: byte { | |||
| UNKNOW = -1, | |||
| BILINEAR = 0, | |||
| NEAREST_NEIGHBOR = 1 | |||
| } | |||
| enum Format : int { | |||
| NCHW = 0, | |||
| NHWC, | |||
| NHWC4, | |||
| HWKC, | |||
| HWCK, | |||
| KCHW, | |||
| CKHW, | |||
| KHWC, | |||
| CHWK, | |||
| NC4HW4 = 100, | |||
| NUM_OF_FORMAT | |||
| } | |||
| enum ActivationType : byte { | |||
| NO_ACTIVATION = 0, | |||
| RELU = 1, | |||
| SIGMOID = 2, | |||
| RELU6 = 3, | |||
| ELU = 4, | |||
| LEAKY_RELU = 5, | |||
| ABS = 6, | |||
| RELU1 = 7, | |||
| SOFTSIGN = 8, | |||
| SOFTPLUS = 9, | |||
| TANH = 10, | |||
| SELU = 11, | |||
| HSWISH = 12, | |||
| HSIGMOID = 13, | |||
| THRESHOLDRELU = 14, | |||
| LINEAR = 15, | |||
| UNKNOW = 16 | |||
| } | |||
| enum ReduceType : byte { | |||
| REDUCE_MAX = 0, | |||
| REDUCE_MEAN = 1, | |||
| REDUCE_ALL = 2, | |||
| REDUCE_ANY = 3, | |||
| REDUCE_LOG_SUM_EXP = 4, | |||
| REDUCE_PROD = 5, | |||
| REDUCE_SUM = 6, | |||
| UNKNOW = 7 | |||
| } | |||
| enum PoolMode : byte { | |||
| MAX_POOLING = 0, | |||
| MEAN_POOLING = 1, | |||
| } | |||
| enum EltwiseMode : byte { | |||
| PROD = 0, | |||
| SUM = 1, | |||
| MAXIMUM = 2, | |||
| UNKNOW = 3 | |||
| } | |||
| enum PadMode : byte { | |||
| NOTSET = 0, | |||
| SAME = 1, | |||
| VALID = 2, | |||
| CAFFE = 4 | |||
| } | |||
| enum RoundMode : byte { | |||
| FLOOR = 0, | |||
| CEIL = 1 | |||
| } | |||
| enum PaddingMode : byte { | |||
| CONSTANT = 0, | |||
| REFLECT = 1, | |||
| SYMMETRIC = 2, | |||
| MODE_RESERVED = 3 | |||
| } | |||
| table Pad { | |||
| paddingmode: PaddingMode; | |||
| paddings: [int]; | |||
| } | |||
| table Maximum { | |||
| } | |||
| table Minimum { | |||
| } | |||
| table Flatten { | |||
| } | |||
| table Concat { | |||
| axis: int; | |||
| n: int; | |||
| } | |||
| table SoftMax { | |||
| axis: int; | |||
| } | |||
| table Activation { | |||
| type: ActivationType = 0; | |||
| } | |||
| table Conv2D { | |||
| format: Format = 0; | |||
| group: int; | |||
| channelIn: int; | |||
| channelOut: int; | |||
| kernelW: int; | |||
| kernelH: int; | |||
| strideW: int; | |||
| strideH: int; | |||
| padMode: PadMode; | |||
| padUp: int; | |||
| padDown: int; | |||
| padLeft: int; | |||
| padRight: int; | |||
| dilateW: int; | |||
| dilateH: int; | |||
| hasBias: bool = false; | |||
| activationType: ActivationType = 0; | |||
| } | |||
| table FusedBatchNorm { | |||
| epsilon: float = 0.00001; // eg. epsilon=0.001 | |||
| momentum: float = 0.9; | |||
| spatial: int = 1; | |||
| } | |||
| table CaffeBatchNorm { | |||
| epsilon: float; // eg. epsilon=0.001 | |||
| } | |||
| table Shape { | |||
| } | |||
| table Nchw2Nhwc { | |||
| } | |||
| table Nhwc2Nchw { | |||
| } | |||
| table FakeQuantWithMinMaxVars { | |||
| narrowRange: bool; | |||
| numBits: int; | |||
| } | |||
| table BiasAdd { | |||
| axis: [int]; | |||
| } | |||
| table Pooling { | |||
| format: Format = 0; | |||
| poolingMode: PoolMode; | |||
| global: bool = false; | |||
| windowW: int; | |||
| windowH: int; | |||
| strideW: int; | |||
| strideH: int; | |||
| padMode: PadMode; | |||
| padUp: int; | |||
| padDown: int; | |||
| padLeft: int; | |||
| padRight: int; | |||
| roundMode: RoundMode; | |||
| } | |||
| table DepthwiseConv2D { | |||
| format: Format = 0; | |||
| channelIn: int; | |||
| channelMultiplier: int; | |||
| kernelW: int; | |||
| kernelH: int; | |||
| strideW: int; | |||
| strideH: int; | |||
| padMode: PadMode; | |||
| padUp: int; | |||
| padDown: int; | |||
| padLeft: int; | |||
| padRight: int; | |||
| dilateW: int; | |||
| dilateH: int; | |||
| hasBias: bool = false; | |||
| activationType: ActivationType = 0; | |||
| } | |||
| table DeDepthwiseConv2D { | |||
| format: Format = 0; | |||
| channelIn: int; | |||
| channelMultiplier: int; | |||
| kernelW: int; | |||
| kernelH: int; | |||
| strideW: int; | |||
| strideH: int; | |||
| padMode: PadMode; | |||
| padUp: int; | |||
| padDown: int; | |||
| padLeft: int; | |||
| padRight: int; | |||
| dilateW: int; | |||
| dilateH: int; | |||
| hasBias: bool = false; | |||
| activationType: ActivationType = 0; | |||
| } | |||
| table Resize { | |||
| format: Format = 0; | |||
| method: ResizeMethod; | |||
| newHeight: long; | |||
| newWidth: long; | |||
| alignCorners: bool = false; | |||
| preserveAspectRatio: bool = false; | |||
| } | |||
| table DetectionPostProcess { | |||
| format: Format = 0; | |||
| inputSize: int; | |||
| hScale: float; | |||
| wScale: float; | |||
| xScale: float; | |||
| yScale: float; | |||
| NmsIouThreshold: float; | |||
| NmsScoreThreshold: float; | |||
| MaxDetections: long; | |||
| DetectionsPreClass: long; | |||
| MaxClassesPreDetection: long; | |||
| NumClasses: long; | |||
| UseRegularNms: bool; | |||
| } | |||
| table FullConnection { | |||
| hasBias: bool; | |||
| axis: int; | |||
| } | |||
| // Mean(input_tensor, axis, keep_dims) | |||
| table Mean { | |||
| axis: [int]; | |||
| keepDims: bool = false; | |||
| } | |||
| table DeConv2D { | |||
| format: Format = 0; | |||
| group: int; | |||
| channelIn: int; | |||
| channelOut: int; | |||
| kernelW: int; | |||
| kernelH: int; | |||
| strideW: int; | |||
| strideH: int; | |||
| padMode: PadMode; | |||
| padUp: int; | |||
| padDown: int; | |||
| padLeft: int; | |||
| padRight: int; | |||
| dilateW: int; | |||
| dilateH: int; | |||
| hasBias: bool = false; | |||
| activationType: ActivationType = 0; | |||
| } | |||
| table Scale { | |||
| format: Format = 0; | |||
| } | |||
| table Eltwise { | |||
| mode: EltwiseMode; | |||
| } | |||
| table Add { | |||
| } | |||
| table Sub { | |||
| } | |||
| table Mul { | |||
| } | |||
| table Div { | |||
| } | |||
| table RealDiv { | |||
| } | |||
| table Rsqrt { | |||
| } | |||
| table Equal { | |||
| } | |||
| table Less { | |||
| } | |||
| table Greater { | |||
| } | |||
| table NotEqual { | |||
| } | |||
| table LessEqual { | |||
| } | |||
| table GreaterEqual { | |||
| } | |||
| table Min { | |||
| } | |||
| table Slice { | |||
| format: Format = 0; | |||
| begin: [int]; | |||
| size: [int]; | |||
| } | |||
| table Floor { | |||
| } | |||
| table Abs { | |||
| } | |||
| table Neg { | |||
| } | |||
| table Exp { | |||
| } | |||
| table Cos { | |||
| } | |||
| table Sin { | |||
| } | |||
| table Sqrt { | |||
| } | |||
| table Square { | |||
| } | |||
| table Ceil { | |||
| } | |||
| table Log { | |||
| } | |||
| table Tan { | |||
| } | |||
| table Atan { | |||
| } | |||
| table Asin { | |||
| } | |||
| table Reshape { | |||
| format: Format = 0; | |||
| shape: [long]; | |||
| } | |||
| table Power { | |||
| power: float; | |||
| scale: float; | |||
| shift: float; | |||
| } | |||
| table ArgMax { | |||
| axis: int; | |||
| outMaxValue: bool; | |||
| topK: int = 1; | |||
| keepDims: bool; | |||
| axisType: int; | |||
| } | |||
| table ArgMin { | |||
| axis: int; | |||
| outMaxValue: bool; | |||
| topK: int = 1; | |||
| keepDims: bool; | |||
| axisType: int; | |||
| } | |||
| table NetOutput { | |||
| } | |||
| table MatMul { | |||
| transposeA : bool = false; | |||
| transposeB : bool = false; | |||
| } | |||
| table CaffePReLU { | |||
| channelShared : bool = false; | |||
| } | |||
| table LeakyReLU { | |||
| negativeSlope: float; | |||
| } | |||
| table StridedSlice { | |||
| beginMask: int; | |||
| endMask: int; | |||
| ellipsisMask: int; | |||
| newAxisMask: int; | |||
| shrinkAxisMask: int; | |||
| begin: [int]; | |||
| end: [int]; | |||
| stride: [int]; | |||
| isScale: [int]; | |||
| } | |||
| table Stack { | |||
| axis: int; | |||
| n: int; | |||
| isScale: [int]; | |||
| } | |||
| table Range { | |||
| dType: int; | |||
| start: int; | |||
| limit: int; | |||
| delta: int; | |||
| } | |||
| table ExpandDims { | |||
| dim: int; | |||
| } | |||
| table Tile { | |||
| multiples: [int]; | |||
| } | |||
| table Cast { | |||
| srcT: int; | |||
| dstT: int; | |||
| } | |||
| table QuantDTypeCast { | |||
| srcT: int; | |||
| dstT: int; | |||
| } | |||
| table Split { | |||
| numberSplit: int; | |||
| sizeSplits: [int]; | |||
| splitDim: int; | |||
| } | |||
| table Crop { | |||
| axis : long; | |||
| offsets : [long]; | |||
| } | |||
| table Permute { | |||
| order: [long]; | |||
| } | |||
| table Clip { | |||
| max: float; | |||
| min: float; | |||
| } | |||
| table Constant { | |||
| } | |||
| table Elu { | |||
| alpha: float = 1.0; | |||
| } | |||
| table Broadcast { | |||
| } | |||
| table BroadcastTo { | |||
| dst_shape: [int]; | |||
| } | |||
| table Lrn { | |||
| alpha: float = 0.0001; | |||
| beta: float = 0.75; | |||
| bias: float = 1.0; | |||
| size: int; | |||
| } | |||
| enum ReduceMode : byte { | |||
| ReduceMean = 0, | |||
| ReduceMax = 1, | |||
| ReduceMin = 2, | |||
| ReduceProd = 3, | |||
| ReduceSum = 4, | |||
| ReduceSumSquare = 5 | |||
| } | |||
| table Reduce { | |||
| axes: [int]; | |||
| keepDims: int; | |||
| mode: ReduceMode; | |||
| } | |||
| table Prelu { | |||
| slope: [float]; | |||
| } | |||
| table Transpose { | |||
| perm: [int]; | |||
| conjugate: bool = false; | |||
| } | |||
| table Squeeze { | |||
| axis: [int]; | |||
| } | |||
| table Unsqueeze { | |||
| axis: [int]; | |||
| } | |||
| table Upsample { | |||
| mode: string; | |||
| scales: [float]; | |||
| } | |||
| table Dropout { | |||
| ratio : float = 0.5; | |||
| } | |||
| table LocalResponseNormalization { | |||
| depth_radius: int; | |||
| bias: float; | |||
| alpha: float; | |||
| beta: float; | |||
| } | |||
| table ZerosLike { | |||
| } | |||
| table TopK { | |||
| k : int; | |||
| sorted : bool = true; | |||
| } | |||
| table SpaceToDepth { | |||
| blockSize : int; | |||
| format: Format = 0; | |||
| } | |||
| table SpaceToBatch { | |||
| blockShape : [int]; | |||
| paddings : [int]; | |||
| } | |||
| table SparseToDense { | |||
| validateIndices: bool; | |||
| } | |||
| table ReverseSequence { | |||
| seqAxis: int; | |||
| batchAxis: int; | |||
| } | |||
| table Rank { | |||
| } | |||
| table Gather { | |||
| axis: int; | |||
| batchDims: int; | |||
| } | |||
| table GatherNd { | |||
| batchDims: int; | |||
| } | |||
| table Fill { | |||
| dims: [int]; | |||
| } | |||
| table DepthToSpace { | |||
| blockSize: int; | |||
| format: Format = 0; | |||
| } | |||
| table BatchToSpace { | |||
| blockShape: [int]; | |||
| crops: [int]; | |||
| } | |||
| table AddN { | |||
| N: int; | |||
| } | |||
| table EmbeddingLookup { | |||
| ids: [int]; | |||
| maxNorm: float; | |||
| } | |||
| table EmbeddingLookupSparse { | |||
| spIds: [int]; | |||
| spWeights: [float]; | |||
| //combiner: Combiner=0; | |||
| maxNortm: float; | |||
| } | |||
| table FloorDiv { | |||
| } | |||
| table FloorMod { | |||
| } | |||
| table L2Norm { | |||
| axis: [int]; | |||
| epsilon: float; | |||
| } | |||
| table LogicalAnd { | |||
| } | |||
| table LogicalOr { | |||
| } | |||
| table LogicalXor { | |||
| } | |||
| table LogicalNot { | |||
| } | |||
| table MatrixDiag { | |||
| k: int; | |||
| numRows: int; | |||
| numCols: int; | |||
| paddingValue: float; | |||
| } | |||
| table Select { | |||
| } | |||
| table TfReduce { | |||
| type: ReduceType = 7; | |||
| } | |||
| table Reverse { | |||
| axis: [int]; | |||
| } | |||
| table Round { | |||
| } | |||
| table Scatter { | |||
| } | |||
| table ScatterND { | |||
| } | |||
| table Unique { | |||
| } | |||
| table Unstack { | |||
| num: int; | |||
| axis: int; | |||
| } | |||
| table OnnxInt8Quantize { | |||
| } | |||
| table OnnxInt8Dequantize { | |||
| } | |||
| table FakeQuantWithMinMax { | |||
| } | |||
| table FakeQuantWithMinMaxPerChannel { | |||
| } | |||
| table BatchNormFold { | |||
| } | |||
| table MulFold { | |||
| } | |||
| table AddFold { | |||
| } | |||
| table SquaredDifference { | |||
| } | |||
| table TupleGetItem { | |||
| } | |||
| table Where{ | |||
| } | |||
| table OneHot { | |||
| axis: int; | |||
| } | |||
| @@ -0,0 +1,83 @@ | |||
| set(LITE_SRC | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/common/graph_util.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/allocator.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/runtime_api.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/thread_pool.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/workspace_pool.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/ir/tensor.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/context.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/executor.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/kernel_factory.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/kernel_registry.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/lite_kernel.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/model.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/populate_parameter.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/scheduler.cc | |||
| ) | |||
| if (SUPPORT_GPU) | |||
| list(APPEND LITE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/kernel/opencl/subgraph_opencl_kernel.cc) | |||
| list(APPEND LITE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/kernel/opencl/utils.cc) | |||
| endif() | |||
| if (SUPPORT_TRAIN) | |||
| set(ANF_SRC | |||
| # ${CCSRC_DIR}/common/trans.cc | |||
| # ${CCSRC_DIR}/utils/lite/base_ref_utils.cc | |||
| # ${CCSRC_DIR}/runtime/kernel/kernel_compiler/kernel_build_info.cc | |||
| # ${CCSRC_DIR}/session/lite/anf_runtime_algorithm_extends.cc | |||
| # ${CCSRC_DIR}/session/lite/session_basic_extends.cc | |||
| # ${CCSRC_DIR}/session/anf_runtime_algorithm.cc | |||
| # ${CCSRC_DIR}/session/session_basic.cc | |||
| # ${CCSRC_DIR}/session/kernel_graph.cc | |||
| # ${CCSRC_DIR}/session/session_factory.cc | |||
| # ${CCSRC_DIR}/device/kernel_info.cc | |||
| # ${CCSRC_DIR}/device/kernel_runtime.cc | |||
| # ${CCSRC_DIR}/device/lite/kernel_runtime_extends.cc | |||
| ) | |||
| set(PASS_SRC) | |||
| set(LITE_SRC | |||
| ${LITE_SRC} | |||
| ${ANF_SRC} | |||
| ${PASS_SRC} | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/common/anf_importer/anf_importer.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/common/anf_importer/import_from_meta_graph.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/ir/primitive_value.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/train/lite_kernel_runtime.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/train/train_session.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/train/model_impl.cc | |||
| ) | |||
| else () | |||
| set(LITE_SRC | |||
| ${LITE_SRC} | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/lite_session.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/model_impl.cc | |||
| ) | |||
| endif () | |||
| if (SUPPORT_GPU) | |||
| set(LITE_SRC | |||
| ${LITE_SRC} | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/opencl/opencl_executor.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/opencl/opencl_allocator.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/opencl/opencl_runtime.cc | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/runtime/opencl/opencl_wrapper.cc | |||
| ) | |||
| endif () | |||
| set(ANF_SRC | |||
| ${ANF_SRC} | |||
| ${CMAKE_CURRENT_SOURCE_DIR}/ir/meta_tensor_extends.cc | |||
| ) | |||
| add_library(mindspore-lite SHARED ${LITE_SRC} ${ANF_SRC}) | |||
| target_link_libraries(mindspore-lite | |||
| cpu_kernel_mid_ | |||
| ops_mid_ | |||
| ${SECUREC_LIBRARY} | |||
| mindspore::json | |||
| ) | |||
| add_subdirectory(runtime/kernel/arm) | |||
| add_subdirectory(ops) | |||
| @@ -0,0 +1,7 @@ | |||
| file(GLOB_RECURSE ANF_SRC_LIST RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} | |||
| *.cc | |||
| ) | |||
| add_library(anf_exporter_mid OBJECT | |||
| ${ANF_SRC_LIST} | |||
| ) | |||
| @@ -0,0 +1,263 @@ | |||
| /** | |||
| * This is the C++ adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/). | |||
| * | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_exporter.h" | |||
| #include <memory> | |||
| #include <utility> | |||
| #include <vector> | |||
| #include <string> | |||
| #include "abstract/abstract_value.h" | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "src/param_value_lite.h" | |||
| #include "mindspore/core/ir/primitive.h" | |||
| #include "src/ir/primitive_t_value.h" | |||
| #include "base/core_ops.h" | |||
| namespace mindspore::lite { | |||
| schema::MetaGraphT *AnfExporter::Export(const FuncGraphPtr &funcGraph) { | |||
| auto cnodes = funcGraph->GetOrderedCnodes(); | |||
| auto metaGraphT = std::make_unique<schema::MetaGraphT>(); | |||
| for (const auto &cnode : cnodes) { | |||
| auto primitive = GetValueNode<PrimitivePtr>(cnode->input(0)); | |||
| if (primitive != nullptr && primitive == prim::kPrimReturn) { | |||
| // set graph outputs tensors | |||
| auto inputNode = cnode->input(1); | |||
| if (!inputNode->isa<CNode>()) { | |||
| continue; | |||
| } | |||
| auto inputCNode = utils::cast<CNodePtr>(inputNode); | |||
| auto inputPrimitive = GetValueNode<PrimitivePtr>(inputCNode->input(0)); | |||
| if (inputPrimitive == prim::kPrimMakeTuple) { | |||
| continue; | |||
| } else { | |||
| std::string inputName = inputNode->fullname_with_scope(); | |||
| auto graphOutput = nodeIdMap[inputName]; | |||
| metaGraphT->outputIndex.emplace_back(graphOutput); | |||
| } | |||
| continue; | |||
| } | |||
| if (primitive != nullptr && primitive == prim::kPrimMakeTuple) { | |||
| for (size_t i = 1; i < cnode->inputs().size(); i++) { | |||
| auto graphOutNode = cnode->input(i); | |||
| if (!graphOutNode->isa<CNode>()) { | |||
| MS_LOG(ERROR) << "Inputs of MakeTuple should be cNode"; | |||
| return nullptr; | |||
| } | |||
| std::string graphOutNodeName = graphOutNode->fullname_with_scope(); | |||
| auto graphOutIndex = nodeIdMap[graphOutNodeName]; | |||
| metaGraphT->outputIndex.emplace_back(graphOutIndex); | |||
| } | |||
| continue; | |||
| } | |||
| auto node = std::make_unique<schema::CNodeT>(); | |||
| node->name = cnode->fullname_with_scope(); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| // populate primitive | |||
| if (primitive != nullptr) { | |||
| primitive = GetValueNode<PrimitivePtr>(cnode->input(0)); | |||
| MS_ASSERT(primitive != nullptr); | |||
| std::string opType = primitive->name(); | |||
| auto nodeParser = AnfNodePopulaterRegistry::GetInstance()->GetNodePopulater(opType); | |||
| if (nodeParser == nullptr) { | |||
| MS_LOG(ERROR) << "Find op parser failed, opType: " << opType; | |||
| return nullptr; | |||
| } | |||
| std::vector<schema::TensorT *> outputs; | |||
| nodeParser->Parse(cnode, node.get(), &outputs); | |||
| SetOpInputNode(cnode, metaGraphT.get(), node.get()); | |||
| SetOpOutputNode(outputs, metaGraphT.get(), node.get()); | |||
| metaGraphT->nodes.emplace_back(std::move(node)); | |||
| continue; | |||
| } | |||
| auto primitiveT_value = GetValueNode<std::shared_ptr<PrimitiveTValue>>(cnode->input(0)); | |||
| if (primitiveT_value == nullptr) { | |||
| MS_LOG(ERROR) << "PrimitiveT_value is nullptr"; | |||
| return nullptr; | |||
| } | |||
| auto *lite_primitive = primitiveT_value->GetPrimitiveT(); | |||
| if (lite_primitive == nullptr) { | |||
| MS_LOG(ERROR) << "Primitive in primitiveT_value is nullptr"; | |||
| return nullptr; | |||
| } | |||
| node->primitive = std::unique_ptr<schema::PrimitiveT>(primitiveT_value->GetPrimitiveT()); | |||
| primitiveT_value->SetPrimitiveT(nullptr); | |||
| std::vector<schema::TensorT *> outputs; | |||
| SetOpInputNode(cnode, metaGraphT.get(), node.get()); | |||
| SetOpOutputNode(outputs, metaGraphT.get(), node.get()); | |||
| // add quant param | |||
| node->quantType = primitiveT_value->GetQuantType(); | |||
| if (node->quantType == schema::QuantType_PostTraining) { | |||
| MS_LOG(INFO) << "node: " << node->name << " add QuantParam"; | |||
| // activation | |||
| auto activate_index = node->inputIndex[0]; | |||
| auto tensor_input = metaGraphT->allTensors[activate_index].get(); | |||
| auto input_quant_params = primitiveT_value->GetInputQuantParams(); | |||
| if (input_quant_params.empty()) { | |||
| MS_LOG(WARNING) << "node: " << node->name << " input quant params is empty"; | |||
| continue; | |||
| } | |||
| std::unique_ptr<schema::QuantParamT> input_quant_param = | |||
| std::make_unique<schema::QuantParamT>(input_quant_params[0]); | |||
| tensor_input->quantParams.emplace_back(std::move(input_quant_param)); | |||
| // output | |||
| auto output_index = node->outputIndex[0]; | |||
| auto tensor_output = metaGraphT->allTensors[output_index].get(); | |||
| auto output_quant_params = primitiveT_value->GetOutputQuantParams(); | |||
| if (output_quant_params.empty()) { | |||
| MS_LOG(WARNING) << "node: " << node->name << " output quant params is empty"; | |||
| continue; | |||
| } | |||
| std::unique_ptr<schema::QuantParamT> output_quant_param = | |||
| std::make_unique<schema::QuantParamT>(output_quant_params[0]); | |||
| tensor_output->quantParams.emplace_back(std::move(output_quant_param)); | |||
| // // TensorType | |||
| // valuePtr = primitive->GetAttr(kInputTensorDataType); | |||
| // if (valuePtr != nullptr) { | |||
| // MS_LOG(INFO) << "node: " << node->name << " input tensor data type: " << GetValue<int>(valuePtr); | |||
| // for (auto input : node->inputIndex) { | |||
| // auto tensor = subGraph->allTensors[input].get(); | |||
| // tensor->dataType = kNumberTypeUInt8; | |||
| // } | |||
| // } | |||
| } | |||
| metaGraphT->nodes.emplace_back(std::move(node)); | |||
| } | |||
| // set graph input tensors | |||
| for (auto node : graphInputNodes) { | |||
| for (auto input : node->inputIndex) { | |||
| auto tensor = metaGraphT->allTensors[input].get(); | |||
| if (tensor->data.empty()) { | |||
| tensor->nodeType = schema::NodeType_ValueNode; | |||
| // tensor->refCount = lite::MSCONST_WEIGHT_REFCOUNT; | |||
| metaGraphT->inputIndex.emplace_back(input); | |||
| } | |||
| } | |||
| } | |||
| return metaGraphT.release(); | |||
| } | |||
| void AnfExporter::SetOpInputNode(const CNodePtr &cnode, schema::MetaGraphT *meta_graph, schema::CNodeT *fbNode) { | |||
| MS_ASSERT(nullptr != meta_graph); | |||
| MS_ASSERT(nullptr != fbNode); | |||
| if (cnode->inputs().size() <= 1) { | |||
| return; | |||
| } | |||
| std::string cNodeName = cnode->fullname_with_scope(); | |||
| bool isGraphInput = true; | |||
| for (int i = 1; i < static_cast<int>(cnode->inputs().size()); i++) { | |||
| auto inputNode = cnode->input(i); | |||
| if (inputNode->isa<CNode>()) { | |||
| isGraphInput = false; | |||
| std::string inputName = inputNode->fullname_with_scope(); | |||
| if (nodeIdMap.find(inputName) != nodeIdMap.end()) { | |||
| fbNode->inputIndex.emplace_back(nodeIdMap[inputName]); | |||
| } | |||
| } else if (inputNode->isa<Parameter>()) { | |||
| auto paramNode = inputNode->cast<ParameterPtr>(); | |||
| if (paramNode->name().empty()) { | |||
| paramNode->set_name(cNodeName + "_i:" + std::to_string(i - 1)); | |||
| } | |||
| if (nodeIdMap.find(paramNode->name()) != nodeIdMap.end()) { | |||
| fbNode->inputIndex.emplace_back(nodeIdMap[paramNode->name()]); | |||
| continue; | |||
| } | |||
| auto paramTensor = std::make_unique<schema::TensorT>(); | |||
| auto abstractBase = paramNode->abstract(); | |||
| if (abstractBase == nullptr) { | |||
| MS_LOG(ERROR) << "Abstract of parameter is nullptr, " << paramNode->name(); | |||
| MS_ASSERT(false); | |||
| return; | |||
| } | |||
| if (!utils::isa<abstract::AbstractTensorPtr>(abstractBase)) { | |||
| MS_LOG(ERROR) << "Abstract of parameter should be anstract tensor, " << paramNode->name(); | |||
| MS_ASSERT(false); | |||
| return; | |||
| } | |||
| auto abstractTensor = utils::cast<abstract::AbstractTensorPtr>(abstractBase); | |||
| auto typePtr = abstractTensor->element()->GetTypeTrack(); | |||
| MS_ASSERT(typePtr != nullptr); | |||
| paramTensor->dataType = typePtr->type_id(); | |||
| if (!utils::isa<abstract::ShapePtr>(abstractTensor->BuildShape())) { | |||
| MS_LOG(ERROR) << "Shape of Abstract of parameter should be ShapePtr, " << paramNode->name(); | |||
| MS_ASSERT(false); | |||
| return; | |||
| } | |||
| paramTensor->dims = utils::cast<abstract::ShapePtr>(abstractTensor->BuildShape())->shape(); | |||
| auto paramValue = std::dynamic_pointer_cast<ParamValueLite>(paramNode->default_param()); | |||
| if (paramValue != nullptr) { | |||
| paramTensor->nodeType = schema::NodeType_ValueNode; | |||
| paramTensor->data.resize(paramValue->tensor_size()); | |||
| memcpy(paramTensor->data.data(), paramValue->tensor_addr(), paramValue->tensor_size()); | |||
| } | |||
| // for (auto &ite : paramValue->quant_param()) { | |||
| // auto quantPar = std::make_unique<schema::QuantParamT>(); | |||
| // quantPar->scale = ite->scale; | |||
| // quantPar->zeroPoint = ite->zeroPoint; | |||
| // quantPar->min = ite->min; | |||
| // quantPar->max = ite->max; | |||
| // quantPar->narrowRange = ite->narrowRange; | |||
| // quantPar->inited = ite->inited; | |||
| // quantPar->numBits = ite->numBits; | |||
| // paramTensor->quantParams.emplace_back(std::move(quantPar)); | |||
| // } | |||
| nodeIdMap[paramNode->fullname_with_scope()] = meta_graph->allTensors.size(); | |||
| fbNode->inputIndex.emplace_back(meta_graph->allTensors.size()); | |||
| meta_graph->allTensors.emplace_back(std::move(paramTensor)); | |||
| } | |||
| } | |||
| if (isGraphInput) { | |||
| graphInputNodes.emplace_back(fbNode); | |||
| } | |||
| } | |||
| void AnfExporter::SetOpOutputNode(const std::vector<schema::TensorT *> &outputTensors, schema::MetaGraphT *graph, | |||
| schema::CNodeT *cnode) { | |||
| MS_ASSERT(nullptr != graph); | |||
| MS_ASSERT(nullptr != cnode); | |||
| std::string cnodeName = cnode->name; | |||
| if (!outputTensors.empty()) { | |||
| int i = 0; | |||
| for (auto outputTensor : outputTensors) { | |||
| std::string name = cnodeName + "_o:" + std::to_string(i); | |||
| nodeIdMap[name] = graph->allTensors.size(); | |||
| cnode->outputIndex.emplace_back(graph->allTensors.size()); | |||
| graph->allTensors.emplace_back(outputTensor); | |||
| i++; | |||
| } | |||
| return; | |||
| } | |||
| auto msTensor = new schema::TensorT(); | |||
| msTensor->nodeType = schema::NodeType_Parameter; | |||
| cnode->outputIndex.emplace_back(graph->allTensors.size()); | |||
| nodeIdMap[cnodeName] = graph->allTensors.size(); | |||
| graph->allTensors.emplace_back(msTensor); | |||
| } | |||
| schema::MetaGraphT *Export(const FuncGraphPtr &funcGraph) { | |||
| AnfExporter anfExporter; | |||
| return anfExporter.Export(funcGraph); | |||
| } | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,46 @@ | |||
| /** | |||
| * This is the C++ adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/). | |||
| * | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_ANF_EXPORTER_ANF_EXPORTER_H_ | |||
| #define MINDSPORE_LITE_SRC_ANF_EXPORTER_ANF_EXPORTER_H_ | |||
| #include <map> | |||
| #include <string> | |||
| #include <vector> | |||
| #include "schema/inner/model_generated.h" | |||
| #include "ir/func_graph.h" | |||
| namespace mindspore::lite { | |||
| class AnfExporter { | |||
| public: | |||
| AnfExporter() = default; | |||
| virtual ~AnfExporter() = default; | |||
| schema::MetaGraphT *Export(const FuncGraphPtr &funcGraph); | |||
| void SetOpOutputNode(const std::vector<schema::TensorT *> &outputTensors, schema::MetaGraphT *graph, | |||
| schema::CNodeT *cnode); | |||
| void SetOpInputNode(const CNodePtr &cnode, schema::MetaGraphT *meta_graph, schema::CNodeT *fbNode); | |||
| private: | |||
| std::map<std::string, int> nodeIdMap; | |||
| std::vector<schema::CNodeT *> graphInputNodes; | |||
| }; | |||
| schema::MetaGraphT *Export(const FuncGraphPtr &funcGraph); | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_LITE_SRC_ANF_EXPORTER_ANF_EXPORTER_H_ | |||
| @@ -0,0 +1,42 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_activation_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfActivationPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto p = GetCNodePrimitive(cnodePtr); | |||
| auto attr = std::make_unique<schema::ActivationT>(); | |||
| if (p->name() == "ReLU") { | |||
| attr->type = schema::ActivationType_RELU; | |||
| } else if (p->name() == "Sigmoid") { | |||
| attr->type = schema::ActivationType_SIGMOID; | |||
| } | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Activation; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfReLUParser("ReLU", new AnfActivationPopulater()); | |||
| AnfNodePopulaterRegistrar anfSigmoidParser("Sigmoid", new AnfActivationPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,30 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #define MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfActivationPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfActivationPopulater() = default; | |||
| ~AnfActivationPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| @@ -0,0 +1,37 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_batchnorm_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfBatchnormParser::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto p = GetCNodePrimitive(cnodePtr); | |||
| auto attr = std::make_unique<schema::FusedBatchNormT>(); | |||
| attr->epsilon = GetValue<float>(p->GetAttr("epsilon")); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_FusedBatchNorm; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfBatchnormParser("BatchNorm", new AnfBatchnormParser()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_BATCHNORM_PARSER_H | |||
| #define MINDSPORE_ANF_BATCHNORM_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfBatchnormParser : public AnfNodePopulater { | |||
| public: | |||
| AnfBatchnormParser() = default; | |||
| ~AnfBatchnormParser() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_BATCHNORM_PARSER_H | |||
| @@ -0,0 +1,37 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_biasadd_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfBiasAddPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto attr = std::make_unique<schema::BiasAddT>(); | |||
| attr->axis = {0}; | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_BiasAdd; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfBiasAddParser("BiasAdd", new AnfBiasAddPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_BIASADD_PARSER_H | |||
| #define MINDSPORE_ANF_BIASADD_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfBiasAddPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfBiasAddPopulater() = default; | |||
| ~AnfBiasAddPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_BIASADD_PARSER_H | |||
| @@ -0,0 +1,121 @@ | |||
| /** | |||
| * This is the C++ adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/). | |||
| * | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_conv_populater.h" | |||
| #include <string> | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfConvPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto p = GetCNodePrimitive(cnodePtr); | |||
| int group = GetValue<int>(p->GetAttr("group")); | |||
| if (group > 1) { | |||
| auto attr = std::make_unique<schema::DepthwiseConv2DT>(); | |||
| auto format = GetValue<std::string>(p->GetAttr("data_format")); | |||
| if (format == "NCHW") { | |||
| attr->format = schema::Format_NCHW; | |||
| } else if (format == "NHWC") { | |||
| attr->format = schema::Format_NHWC; | |||
| } else { | |||
| attr->format = schema::Format_NUM_OF_FORMAT; | |||
| } | |||
| auto pad_list = GetValue<std::vector<int>>(p->GetAttr("pad_list")); | |||
| attr->padUp = pad_list[0]; | |||
| attr->padDown = pad_list[1]; | |||
| attr->padLeft = pad_list[2]; | |||
| attr->padRight = pad_list[3]; | |||
| auto dilation = GetValue<std::vector<int>>(p->GetAttr("dilation")); | |||
| attr->dilateH = dilation[0]; | |||
| attr->dilateW = dilation[1]; | |||
| auto kernel_size = GetValue<std::vector<int>>(p->GetAttr("kernel_size")); | |||
| attr->kernelH = kernel_size[0]; | |||
| attr->kernelW = kernel_size[1]; | |||
| auto stride = GetValue<std::vector<int>>(p->GetAttr("stride")); | |||
| attr->strideH = stride[2]; | |||
| attr->strideW = stride[3]; | |||
| auto pad_mode = GetValue<std::string>(p->GetAttr("pad_mode")); | |||
| if (pad_mode == "valid") { | |||
| attr->padMode = schema::PadMode_VALID; | |||
| } else if (pad_mode == "same") { | |||
| attr->padMode = schema::PadMode_SAME; | |||
| } else { | |||
| attr->padMode = schema::PadMode_NOTSET; | |||
| } | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_DepthwiseConv2D; | |||
| node->primitive->value.value = attr.release(); | |||
| } else { | |||
| auto attr = std::make_unique<schema::Conv2DT>(); | |||
| attr->group = group; | |||
| auto format = GetValue<std::string>(p->GetAttr("data_format")); | |||
| if (format == "NCHW") { | |||
| attr->format = schema::Format_NCHW; | |||
| } else if (format == "NHWC") { | |||
| attr->format = schema::Format_NHWC; | |||
| } else { | |||
| attr->format = schema::Format_NUM_OF_FORMAT; | |||
| } | |||
| auto pad_list = GetValue<std::vector<int>>(p->GetAttr("pad_list")); | |||
| attr->padUp = pad_list[0]; | |||
| attr->padDown = pad_list[1]; | |||
| attr->padLeft = pad_list[2]; | |||
| attr->padRight = pad_list[3]; | |||
| auto dilation = GetValue<std::vector<int>>(p->GetAttr("dilation")); | |||
| attr->dilateH = dilation[0]; | |||
| attr->dilateW = dilation[1]; | |||
| auto kernel_size = GetValue<std::vector<int>>(p->GetAttr("kernel_size")); | |||
| attr->kernelH = kernel_size[0]; | |||
| attr->kernelW = kernel_size[1]; | |||
| auto stride = GetValue<std::vector<int>>(p->GetAttr("stride")); | |||
| attr->strideH = stride[2]; | |||
| attr->strideW = stride[3]; | |||
| attr->channelOut = GetValue<int>(p->GetAttr("out_channel")); | |||
| auto pad_mode = GetValue<std::string>(p->GetAttr("pad_mode")); | |||
| if (pad_mode == "valid") { | |||
| attr->padMode = schema::PadMode_VALID; | |||
| } else if (pad_mode == "same") { | |||
| attr->padMode = schema::PadMode_SAME; | |||
| } else { | |||
| attr->padMode = schema::PadMode_NOTSET; | |||
| } | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Conv2D; | |||
| node->primitive->value.value = attr.release(); | |||
| } | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfConvParser("Conv2D", new AnfConvPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,32 @@ | |||
| /** | |||
| * This is the C++ adaptation and derivative work of Myia (https://github.com/mila-iqia/myia/). | |||
| * | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_CONV_PARSER_H | |||
| #define MINDSPORE_ANF_CONV_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfConvPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfConvPopulater() = default; | |||
| ~AnfConvPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_CONV_PARSER_H | |||
| @@ -0,0 +1,35 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_flatten_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfFlattenPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto attr = std::make_unique<schema::FlattenT>(); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Flatten; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfFlattenParser("Flatten", new AnfFlattenPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_FLATTEN_PARSER_H | |||
| #define MINDSPORE_ANF_FLATTEN_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfFlattenPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfFlattenPopulater() = default; | |||
| ~AnfFlattenPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_FLATTEN_PARSER_H | |||
| @@ -0,0 +1,38 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_matmul_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfMatmulPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto p = GetCNodePrimitive(cnodePtr); | |||
| auto attr = std::make_unique<schema::MatMulT>(); | |||
| attr->transposeA = GetValue<bool>(p->GetAttr("transpose_a")); | |||
| attr->transposeB = GetValue<bool>(p->GetAttr("transpose_b")); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_MatMul; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfMatmulParser("Matmul", new AnfMatmulPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_MATMUL_PARSER_H | |||
| #define MINDSPORE_ANF_MATMUL_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfMatmulPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfMatmulPopulater() = default; | |||
| ~AnfMatmulPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_MATMUL_PARSER_H | |||
| @@ -0,0 +1,35 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_mul_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfMulPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto attr = std::make_unique<schema::MulT>(); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Mul; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfMulParser("Mul", new AnfMulPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #define MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfMulPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfMulPopulater() = default; | |||
| ~AnfMulPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| @@ -0,0 +1,19 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| namespace mindspore::lite {} // namespace mindspore::lite | |||
| @@ -0,0 +1,33 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_NODE_PARSER_H | |||
| #define MINDSPORE_ANF_NODE_PARSER_H | |||
| #include <vector> | |||
| #include "ir/anf.h" | |||
| #include "schema/inner/model_generated.h" | |||
| namespace mindspore::lite { | |||
| class AnfNodePopulater { | |||
| public: | |||
| AnfNodePopulater() = default; | |||
| virtual ~AnfNodePopulater() = default; | |||
| virtual int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) = 0; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_NODE_PARSER_H | |||
| @@ -0,0 +1,48 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include <string> | |||
| #include "src/common/anf_exporter/anf_populater/anf_biasadd_populater.h" | |||
| #include "src/common/anf_exporter/anf_populater/anf_conv_populater.h" | |||
| #include "src/common/anf_exporter/anf_populater/anf_matmul_populater.h" | |||
| #include "src/common/anf_exporter/anf_populater/anf_pool_populater.h" | |||
| #include "src/common/anf_exporter/anf_populater/anf_activation_populater.h" | |||
| #include "src/common/anf_exporter/anf_populater/anf_flatten_populater.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| AnfNodePopulaterRegistry *AnfNodePopulaterRegistry::GetInstance() { | |||
| static AnfNodePopulaterRegistry instance; | |||
| instance.SetNodePopulater("BiasAdd", new AnfBiasAddPopulater()); | |||
| instance.SetNodePopulater("Conv2D", new AnfConvPopulater()); | |||
| instance.SetNodePopulater("MatMul", new AnfMatmulPopulater()); | |||
| instance.SetNodePopulater("MaxPool", new AnfPoolPopulater()); | |||
| instance.SetNodePopulater("ReLU", new AnfActivationPopulater()); | |||
| instance.SetNodePopulater("Flatten", new AnfFlattenPopulater()); | |||
| return &instance; | |||
| } | |||
| AnfNodePopulater *AnfNodePopulaterRegistry::GetNodePopulater(const std::string &name) { | |||
| if (parsers.find(name) == parsers.end()) { | |||
| return nullptr; | |||
| } | |||
| return parsers[name]; | |||
| } | |||
| void AnfNodePopulaterRegistry::SetNodePopulater(const std::string &name, AnfNodePopulater *parser) { | |||
| parsers[name] = parser; | |||
| } | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,43 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_NODE_PARSER_REGISTRY_H | |||
| #define MINDSPORE_ANF_NODE_PARSER_REGISTRY_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <unordered_map> | |||
| #include <string> | |||
| namespace mindspore::lite { | |||
| class AnfNodePopulaterRegistry { | |||
| public: | |||
| AnfNodePopulaterRegistry() = default; | |||
| virtual ~AnfNodePopulaterRegistry() = default; | |||
| static AnfNodePopulaterRegistry *GetInstance(); | |||
| AnfNodePopulater *GetNodePopulater(const std::string &name); | |||
| void SetNodePopulater(const std::string &name, AnfNodePopulater *parser); | |||
| private: | |||
| std::unordered_map<std::string, AnfNodePopulater *> parsers; | |||
| }; | |||
| class AnfNodePopulaterRegistrar { | |||
| public: | |||
| AnfNodePopulaterRegistrar(const std::string &name, AnfNodePopulater *parser) { | |||
| AnfNodePopulaterRegistry::GetInstance()->SetNodePopulater(name, parser); | |||
| } | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_NODE_PARSER_REGISTRY_H | |||
| @@ -0,0 +1,68 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_pool_populater.h" | |||
| #include <vector> | |||
| #include <string> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfPoolPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto p = GetCNodePrimitive(cnodePtr); | |||
| auto attr = std::make_unique<schema::PoolingT>(); | |||
| if (p->instance_name() == "MaxPool") { | |||
| attr->poolingMode = schema::PoolMode_MAX_POOLING; | |||
| } else if (p->instance_name() == "MeanPool") { | |||
| attr->poolingMode = schema::PoolMode_MEAN_POOLING; | |||
| } | |||
| auto format = GetValue<std::string>(p->GetAttr("data_format")); | |||
| if (format == "NCHW") { | |||
| attr->format = schema::Format_NCHW; | |||
| } else if (format == "NHWC") { | |||
| attr->format = schema::Format_NHWC; | |||
| } else { | |||
| attr->format = schema::Format_NUM_OF_FORMAT; | |||
| } | |||
| auto pad_mode = GetValue<std::string>(p->GetAttr("padding")); | |||
| if (pad_mode == "VALID") { | |||
| attr->padMode = schema::PadMode_VALID; | |||
| } else if (pad_mode == "SAME") { | |||
| attr->padMode = schema::PadMode_SAME; | |||
| } else { | |||
| attr->padMode = schema::PadMode_NOTSET; | |||
| } | |||
| auto kernel_size = GetValue<std::vector<int>>(p->GetAttr("ksize")); | |||
| attr->windowH = kernel_size[2]; | |||
| attr->windowW = kernel_size[3]; | |||
| auto stride = GetValue<std::vector<int>>(p->GetAttr("strides")); | |||
| attr->strideH = stride[2]; | |||
| attr->strideW = stride[3]; | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Pooling; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfMaxPoolParser("MaxPool", new AnfPoolPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_POOL_PARSER_H | |||
| #define MINDSPORE_ANF_POOL_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfPoolPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfPoolPopulater() = default; | |||
| ~AnfPoolPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_POOL_PARSER_H | |||
| @@ -0,0 +1,40 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_reducemean_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfReduceMeanPopulater::Parse(CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto p = GetCNodePrimitive(cnodePtr); | |||
| auto attr = std::make_unique<schema::ReduceT>(); | |||
| attr->mode = schema::ReduceMode_ReduceMean; | |||
| attr->keepDims = GetValue<bool>(p->GetAttr("keep_dims")); | |||
| // attr->axes = GetValue<std::vector<int>>(p->GetAttr("shape")); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Reduce; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfReduceMeanParser("ReduceMean", new AnfReduceMeanPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #define MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfReduceMeanPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfReduceMeanPopulater() = default; | |||
| ~AnfReduceMeanPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| @@ -0,0 +1,34 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_tensoradd_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfTensorAddPopulater::Parse(mindspore::CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto attr = std::make_unique<schema::AddT>(); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_Add; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfTensorAddParser("TensorAdd", new AnfTensorAddPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #define MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfTensorAddPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfTensorAddPopulater() = default; | |||
| ~AnfTensorAddPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_ACTIVATION_PARSER_H | |||
| @@ -0,0 +1,34 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_exporter/anf_populater/anf_tuple_getitem_populater.h" | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater_registry.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/primitive.h" | |||
| namespace mindspore::lite { | |||
| int mindspore::lite::AnfTupleGetItemPopulater::Parse(CNodePtr cnodePtr, schema::CNodeT *node, | |||
| std::vector<schema::TensorT *> *outputs) { | |||
| auto attr = std::make_unique<schema::TupleGetItemT>(); | |||
| node->nodeType = schema::NodeType_CNode; | |||
| node->primitive = std::make_unique<schema::PrimitiveT>(); | |||
| node->primitive->value.type = schema::PrimitiveType_TupleGetItem; | |||
| node->primitive->value.value = attr.release(); | |||
| return 0; | |||
| } | |||
| AnfNodePopulaterRegistrar anfTupleGetItemParser("tuple_getitem", new AnfTupleGetItemPopulater()); | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,29 @@ | |||
| /** | |||
| * Copyright 2019 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_ANF_BATCHNORM_PARSER_H | |||
| #define MINDSPORE_ANF_BATCHNORM_PARSER_H | |||
| #include "src/common/anf_exporter/anf_populater/anf_node_populater.h" | |||
| #include <vector> | |||
| namespace mindspore::lite { | |||
| class AnfTupleGetItemPopulater : public AnfNodePopulater { | |||
| public: | |||
| AnfTupleGetItemPopulater() = default; | |||
| ~AnfTupleGetItemPopulater() override = default; | |||
| int Parse(CNodePtr cnodePtr, schema::CNodeT *node, std::vector<schema::TensorT *> *outputs) override; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_ANF_BATCHNORM_PARSER_H | |||
| @@ -0,0 +1,184 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include <utility> | |||
| #include <vector> | |||
| #include <string> | |||
| #include <memory> | |||
| #include "src/common/anf_importer/anf_importer.h" | |||
| #include "schema/model_generated.h" | |||
| #include "ir/dtype.h" | |||
| #include "ir/primitive.h" | |||
| #include "src/param_value_lite.h" | |||
| #include "frontend/operator/ops.h" | |||
| #include "abstract/abstract_value.h" | |||
| #include "src/ir/primitive_value.h" | |||
| #include "include/errorcode.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| #if 0 | |||
| PrimitivePtr SetConv2DAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto attrs = cNode->primitive()->value_as_Conv2D(); | |||
| PrimitivePtr prim; | |||
| if (attrs->group() > 1) { | |||
| prim = std::make_shared<Primitive>("DepthwiseConv2D"); | |||
| prim->set_instance_name("DepthwiseConv2D"); | |||
| } else { | |||
| prim = std::make_shared<Primitive>("Conv2D"); | |||
| prim->set_instance_name("Conv2D"); | |||
| } | |||
| prim->set_attr("group", MakeValue<int>(attrs->group())); | |||
| prim->set_attr("format", MakeValue<int>(attrs->format())); | |||
| prim->set_attr("pad_mode", MakeValue<int>(attrs->padMode())); | |||
| std::vector<int> pad_list = {attrs->padUp(), attrs->padDown(), attrs->padLeft(), attrs->padRight()}; | |||
| prim->set_attr("pad_list", MakeValue<std::vector<int>>(pad_list)); | |||
| std::vector<int> dilate = {attrs->dilateH(), attrs->dilateW()}; | |||
| prim->set_attr("dilation", MakeValue<std::vector<int>>(dilate)); | |||
| std::vector<int> kernel_size = {attrs->kernelH(), attrs->kernelW()}; | |||
| prim->set_attr("kernel_size", MakeValue<std::vector<int>>(kernel_size)); | |||
| std::vector<int> stride = {1, 1, attrs->strideH(), attrs->strideW()}; | |||
| prim->set_attr("stride", MakeValue<std::vector<int>>(stride)); | |||
| prim->set_attr("out_channel", MakeValue<int>(attrs->channelOut())); | |||
| prim->set_attr("group", MakeValue<int>(attrs->group())); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetActivationAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto attrs = cNode->primitive()->value_as_Activation(); | |||
| PrimitivePtr prim; | |||
| if (attrs->type() == schema::ActivationType_RELU) { | |||
| prim = std::make_shared<Primitive>("ReLU"); | |||
| prim->set_instance_name("ReLU"); | |||
| } | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetPoolingAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto attrs = cNode->primitive()->value_as_Pooling(); | |||
| PrimitivePtr prim; | |||
| if (attrs->poolingMode() == schema::PoolMode_MAX_POOLING) { | |||
| prim = std::make_shared<Primitive>("MaxPool"); | |||
| prim->set_instance_name("MaxPool"); | |||
| } else if (attrs->poolingMode() == schema::PoolMode_MEAN_POOLING) { | |||
| prim = std::make_shared<Primitive>("MeanPool"); | |||
| prim->set_instance_name("MeanPool"); | |||
| } | |||
| prim->set_attr("format", MakeValue<int>(attrs->format())); | |||
| prim->set_attr("pad_mode", MakeValue<int>(attrs->padMode())); | |||
| prim->set_attr("ksize", MakeValue<std::vector<int>>(std::vector<int>({1, 1, attrs->windowH(), attrs->windowW()}))); | |||
| prim->set_attr("strides", MakeValue<std::vector<int>>(std::vector<int>({1, 1, attrs->strideH(), attrs->strideW()}))); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetFlattenAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto prim = std::make_shared<Primitive>("Flatten"); | |||
| prim->set_instance_name("Flatten"); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetMatmulAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto attrs = cNode->primitive()->value_as_MatMul(); | |||
| auto prim = std::make_shared<Primitive>("Matmul"); | |||
| prim->set_instance_name("Matmul"); | |||
| prim->set_attr("transpose_a", MakeValue<int>(attrs->transposeA())); | |||
| prim->set_attr("transpose_b", MakeValue<int>(attrs->transposeB())); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetMulAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| // auto attrs = nodedef->attr_as_Mul(); | |||
| auto prim = std::make_shared<Primitive>("Mul"); | |||
| prim->set_instance_name("Mul"); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetSigmoidAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto prim = std::make_shared<Primitive>("Sigmoid"); | |||
| prim->set_instance_name("Sigmoid"); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetReduceAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto prim = std::make_shared<Primitive>("ReduceMean"); | |||
| prim->set_instance_name("ReduceMean"); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetBatchNormAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto attrs = cNode->primitive_as_BatchNorm(); | |||
| auto prim = std::make_shared<Primitive>("BatchNorm"); | |||
| prim->set_attr("is_training", MakeValue<bool>(attrs->is_training())); | |||
| prim->set_instance_name("BatchNorm"); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetBiasAddAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto prim = std::make_shared<Primitive>("BiasAdd"); | |||
| prim->set_instance_name("BiasAdd"); | |||
| return prim; | |||
| } | |||
| PrimitivePtr SetAddAttr(const schema::CNode *cNode) { | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto prim = std::make_shared<Primitive>("Add"); | |||
| prim->set_instance_name("Add"); | |||
| return prim; | |||
| } | |||
| void MinnieBuildGraph::FbTest(const GraphDef *graph_def) { | |||
| auto node_def = graph_def->subgraphs()->begin()->nodes()->GetAs<OpDef>(3); | |||
| PrimitivePtr prim = ConverterOperatorAttr(node_def); | |||
| if (prim->GetAttr("format")) MS_LOG(INFO) << "find format"; | |||
| if (prim->GetAttr("group")) MS_LOG(INFO) << "find group"; | |||
| } | |||
| #endif | |||
| int AnfImporter::Import() { | |||
| ConverterConstTensor(); | |||
| auto ret = ConverterCNode(); | |||
| if (RET_OK != ret) { | |||
| MS_LOG(ERROR) << "ConverterCNode failed " << ret; | |||
| return ret; | |||
| } | |||
| AddReturnCNode(); | |||
| return RET_OK; | |||
| } | |||
| AnfNodePtr AnfImporter::GetNode(int tensor_id) { | |||
| auto n = nodes_.find(tensor_id); | |||
| if (n == nodes_.end()) { | |||
| return nullptr; | |||
| } | |||
| return n->second; | |||
| } | |||
| void AnfImporter::AddNode(int tensor_id, AnfNodePtr node) { nodes_[tensor_id] = std::move(node); } | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,54 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_ANF_IMPORTER_ANF_IMPORTER_H_ | |||
| #define MINDSPORE_LITE_SRC_ANF_IMPORTER_ANF_IMPORTER_H_ | |||
| #include <unordered_map> | |||
| #include "ir/func_graph.h" | |||
| #include "ir/anf.h" | |||
| #include "base/base.h" | |||
| namespace mindspore::lite { | |||
| class AnfImporter { | |||
| public: | |||
| AnfImporter() = default; | |||
| virtual ~AnfImporter() = default; | |||
| virtual int Import(); | |||
| virtual FuncGraphPtr GetResult() = 0; | |||
| protected: | |||
| // convert const tensor into parameter and save in nodes_ | |||
| virtual void ConverterConstTensor() = 0; | |||
| // convert other node into cnode and save in nodes_ | |||
| virtual int ConverterCNode() = 0; | |||
| virtual void AddReturnCNode() = 0; | |||
| AnfNodePtr GetNode(int tensor_id); | |||
| void AddNode(int tensor_id, AnfNodePtr node); | |||
| protected: | |||
| std::unordered_map<int, AnfNodePtr> nodes_; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_LITE_SRC_ANF_IMPORTER_ANF_IMPORTER_H_ | |||
| @@ -0,0 +1,122 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_importer/import_from_meta_graph.h" | |||
| #include <string> | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "frontend/operator/ops.h" | |||
| #include "src/param_value_lite.h" | |||
| #include "utils/log_adapter.h" | |||
| #include "abstract/abstract_value.h" | |||
| #include "src/ir/primitive_value.h" | |||
| #include "include/errorcode.h" | |||
| namespace mindspore::lite { | |||
| void AnfImporterFromMetaGraph::ConverterConstTensor() { | |||
| MS_EXCEPTION_IF_NULL(model); | |||
| auto *meta_graph = model->GetMetaGraph(); | |||
| MS_EXCEPTION_IF_NULL(meta_graph); | |||
| for (size_t i = 0; i < meta_graph->allTensors()->size(); i++) { | |||
| auto *tensor = meta_graph->allTensors()->GetAs<schema::Tensor>(i); | |||
| MS_EXCEPTION_IF_NULL(tensor); | |||
| if (tensor->nodeType() != schema::NodeType_ValueNode) { | |||
| continue; | |||
| } | |||
| MS_ASSERT(tensor->dims() != nullptr); | |||
| auto parameter = model->add_parameter(); | |||
| std::vector<int> shape; | |||
| for (size_t j = 0; j < tensor->dims()->size(); ++j) { | |||
| shape.push_back(tensor->dims()->data()[j]); | |||
| } | |||
| auto type_id = static_cast<TypeId>(tensor->dataType()); | |||
| auto type_ptr = TypeIdToType(type_id); | |||
| auto abstract_tensor = std::make_shared<abstract::AbstractTensor>(type_ptr, shape); | |||
| parameter->set_abstract(abstract_tensor); | |||
| ParamValueLitePtr param_value = std::make_shared<ParamValueLite>(); | |||
| MS_EXCEPTION_IF_NULL(param_value); | |||
| param_value->set_tensor_shape(shape); | |||
| param_value->set_tensor_type(type_id); | |||
| if (tensor->data() != nullptr) { | |||
| auto size = tensor->data()->size(); | |||
| char *tensor_data = new char[size](); | |||
| std::memcpy(tensor_data, tensor->data()->data(), size); | |||
| MS_EXCEPTION_IF_NULL(tensor_data); | |||
| param_value->set_tensor_addr(tensor_data); | |||
| param_value->set_tensor_size(size); | |||
| } | |||
| parameter->set_default_param(param_value); | |||
| AddNode(i, parameter); | |||
| } | |||
| } | |||
| int AnfImporterFromMetaGraph::ConverterCNode() { | |||
| MS_EXCEPTION_IF_NULL(model); | |||
| auto *meta_graph = model->GetMetaGraph(); | |||
| MS_EXCEPTION_IF_NULL(meta_graph); | |||
| auto cNodes = meta_graph->nodes(); | |||
| for (size_t i = 0; i < cNodes->size(); i++) { | |||
| auto cNode = cNodes->GetAs<schema::CNode>(i); | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto tensor_id = cNode->outputIndex()->data()[0]; | |||
| if (GetNode(tensor_id)) { | |||
| continue; | |||
| } | |||
| auto prim = std::make_shared<PrimitiveValue>(model->GetOp(cNode->name()->str())); | |||
| if (prim == nullptr) { | |||
| MS_LOG(ERROR) << "th tensorDef in subGraphDef is nullptr"; | |||
| return RET_ERROR; | |||
| } | |||
| auto value_node = NewValueNode(prim); | |||
| AddNode(tensor_id, value_node); | |||
| std::vector<AnfNodePtr> op_inputs = {value_node}; | |||
| MS_EXCEPTION_IF_NULL(cNode->inputIndex()); | |||
| for (size_t j = 0; j < cNode->inputIndex()->size(); j++) { | |||
| auto node = GetNode(*(cNode->inputIndex()->GetAs<uint32_t>(j))); | |||
| if (nullptr == node) { | |||
| MS_LOG(ERROR) << "Can't find input node."; | |||
| return RET_ERROR; | |||
| } | |||
| // todo: CheckInputNodeType, the first node should be op; | |||
| op_inputs.push_back(node); | |||
| } | |||
| auto cnode = model->NewCNode(op_inputs); | |||
| auto node_name = std::string(cNode->name()->c_str()); | |||
| cnode->set_fullname_with_scope(node_name); | |||
| AddNode(tensor_id, cnode); | |||
| } | |||
| return RET_OK; | |||
| } | |||
| void AnfImporterFromMetaGraph::AddReturnCNode() { | |||
| MS_EXCEPTION_IF_NULL(model); | |||
| auto *meta_graph = model->GetMetaGraph(); | |||
| MS_EXCEPTION_IF_NULL(meta_graph); | |||
| std::vector<AnfNodePtr> op_inputs; | |||
| auto value_node = NewValueNode(prim::kPrimReturn); | |||
| op_inputs.push_back(value_node); | |||
| auto tensor_id = meta_graph->outputIndex()->data()[0]; | |||
| op_inputs.push_back(GetNode(tensor_id)); | |||
| auto cnode = model->NewCNode(op_inputs); | |||
| cnode->set_fullname_with_scope("return"); | |||
| model->set_return(cnode); | |||
| } | |||
| FuncGraphPtr AnfImporterFromMetaGraph::GetResult() { return this->model; } | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,47 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_META_GRAPH_H_ | |||
| #define MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_META_GRAPH_H_ | |||
| #include <memory> | |||
| #include "src/train/model_impl.h" | |||
| #include "schema/model_generated.h" | |||
| #include "src/common/anf_importer/anf_importer.h" | |||
| namespace mindspore::lite { | |||
| class AnfImporterFromMetaGraph : public AnfImporter { | |||
| public: | |||
| explicit AnfImporterFromMetaGraph(std::shared_ptr<ModelImpl> model) : model(model) {} | |||
| ~AnfImporterFromMetaGraph() override = default; | |||
| FuncGraphPtr GetResult() override; | |||
| private: | |||
| void ConverterConstTensor() override; | |||
| int ConverterCNode() override; | |||
| void AddReturnCNode() override; | |||
| private: | |||
| std::shared_ptr<ModelImpl> model = nullptr; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_META_GRAPH_H_ | |||
| @@ -0,0 +1,123 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "schema/inner/model_generated.h" | |||
| #include "frontend/operator/ops.h" | |||
| #include "src/param_value_lite.h" | |||
| #include "import_from_meta_graphT.h" | |||
| #include "utils/log_adapter.h" | |||
| #include "abstract/abstract_value.h" | |||
| #include "src/ir/primitive_value.h" | |||
| #include "src/ir/primitive_t_value.h" | |||
| #include "include/errorcode.h" | |||
| #include "src/ops/ops.h" | |||
| namespace mindspore::lite { | |||
| void AnfImporterFromMetaGraphT::ConverterConstTensor() { | |||
| MS_EXCEPTION_IF_NULL(meta_graph_); | |||
| MS_EXCEPTION_IF_NULL(func_graph_); | |||
| for (size_t i = 0; i < meta_graph_->allTensors.size(); i++) { | |||
| auto &tensor = meta_graph_->allTensors.at(i); | |||
| MS_EXCEPTION_IF_NULL(tensor); | |||
| if (tensor->nodeType != schema::NodeType_ValueNode) { | |||
| continue; | |||
| } | |||
| MS_ASSERT(tensor->dims() != nullptr); | |||
| auto parameter = func_graph_->add_parameter(); | |||
| std::vector<int> shape; | |||
| for (int &dim : tensor->dims) { | |||
| shape.push_back(dim); | |||
| } | |||
| auto type_id = static_cast<TypeId>(tensor->dataType); | |||
| auto type_ptr = TypeIdToType(type_id); | |||
| auto abstract_tensor = std::make_shared<abstract::AbstractTensor>(type_ptr, shape); | |||
| parameter->set_abstract(abstract_tensor); | |||
| ParamValueLitePtr param_value = std::make_shared<ParamValueLite>(); | |||
| MS_EXCEPTION_IF_NULL(param_value); | |||
| param_value->set_tensor_shape(shape); | |||
| param_value->set_tensor_type(type_id); | |||
| if (!tensor->data.empty()) { | |||
| auto size = tensor->data.size(); | |||
| char *tensor_data = new char[size]; | |||
| std::memcpy(tensor_data, tensor->data.data(), size); | |||
| MS_EXCEPTION_IF_NULL(tensor_data); | |||
| param_value->set_tensor_addr(tensor_data); | |||
| param_value->set_tensor_size(size); | |||
| } | |||
| parameter->set_default_param(param_value); | |||
| AddNode(i, parameter); | |||
| } | |||
| } | |||
| int AnfImporterFromMetaGraphT::ConverterCNode() { | |||
| MS_EXCEPTION_IF_NULL(meta_graph_); | |||
| MS_EXCEPTION_IF_NULL(func_graph_); | |||
| for (size_t i = 0; i < meta_graph_->nodes.size(); i++) { | |||
| auto &cNode = meta_graph_->nodes.at(i); | |||
| MS_EXCEPTION_IF_NULL(cNode); | |||
| auto tensor_id = cNode->outputIndex.front(); | |||
| if (nullptr != GetNode(tensor_id)) { | |||
| continue; | |||
| } | |||
| auto primTValue = std::make_shared<PrimitiveTValue>(cNode->primitive.release()); | |||
| cNode->primitive = nullptr; | |||
| auto value_node = NewValueNode(primTValue); | |||
| std::vector<AnfNodePtr> op_inputs = {value_node}; | |||
| for (size_t j = 0; j < cNode->inputIndex.size(); j++) { | |||
| auto node = GetNode(cNode->inputIndex.at(j)); | |||
| if (nullptr == node) { | |||
| MS_LOG(ERROR) << "Can't find input node."; | |||
| return RET_ERROR; | |||
| } | |||
| // todo: CheckInputNodeType, the first node should be op; | |||
| op_inputs.push_back(node); | |||
| } | |||
| auto cnode = func_graph_->NewCNode(op_inputs); | |||
| cnode->set_fullname_with_scope(cNode->name); | |||
| AddNode(tensor_id, cnode); | |||
| } | |||
| return RET_OK; | |||
| } | |||
| void AnfImporterFromMetaGraphT::AddReturnCNode() { | |||
| MS_EXCEPTION_IF_NULL(meta_graph_); | |||
| MS_EXCEPTION_IF_NULL(func_graph_); | |||
| std::vector<AnfNodePtr> make_tuple_inputs; | |||
| auto make_tuple_value_node = NewValueNode(prim::kPrimMakeTuple); | |||
| make_tuple_inputs.emplace_back(make_tuple_value_node); | |||
| for (auto tensor_id : meta_graph_->outputIndex) { | |||
| make_tuple_inputs.emplace_back(GetNode(tensor_id)); | |||
| } | |||
| auto make_tuple_cnode = func_graph_->NewCNode(make_tuple_inputs); | |||
| make_tuple_cnode->set_fullname_with_scope("return tuple"); | |||
| std::vector<AnfNodePtr> op_inputs; | |||
| auto value_node = NewValueNode(prim::kPrimReturn); | |||
| op_inputs.emplace_back(value_node); | |||
| op_inputs.emplace_back(make_tuple_cnode); | |||
| auto cnode = func_graph_->NewCNode(op_inputs); | |||
| cnode->set_fullname_with_scope("return"); | |||
| func_graph_->set_return(cnode); | |||
| } | |||
| FuncGraphPtr AnfImporterFromMetaGraphT::GetResult() { return this->func_graph_; } | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,49 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_META_GRAPHT_H_ | |||
| #define MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_META_GRAPHT_H_ | |||
| #include <utility> | |||
| #include "schema/inner/model_generated.h" | |||
| #include "src/common/anf_importer/anf_importer.h" | |||
| namespace mindspore::lite { | |||
| class AnfImporterFromMetaGraphT : public AnfImporter { | |||
| public: | |||
| explicit AnfImporterFromMetaGraphT(schema::MetaGraphT *meta_graph, FuncGraphPtr func_graph) | |||
| : meta_graph_(meta_graph), func_graph_(std::move(func_graph)) {} | |||
| ~AnfImporterFromMetaGraphT() override = default; | |||
| FuncGraphPtr GetResult() override; | |||
| private: | |||
| void ConverterConstTensor() override; | |||
| int ConverterCNode() override; | |||
| void AddReturnCNode() override; | |||
| private: | |||
| schema::MetaGraphT *meta_graph_; | |||
| FuncGraphPtr func_graph_; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_META_GRAPHT_H_ | |||
| @@ -0,0 +1,717 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/common/anf_importer/import_from_protobuf.h" | |||
| #include <fcntl.h> | |||
| #include <unistd.h> | |||
| #include <functional> | |||
| #include <map> | |||
| #include <stack> | |||
| #include <unordered_map> | |||
| #include <memory> | |||
| #include <string> | |||
| #include <vector> | |||
| #include <fstream> | |||
| #include "ir/func_graph.h" | |||
| #include "ir/anf.h" | |||
| #include "google/protobuf/io/zero_copy_stream_impl.h" | |||
| #include "src/param_value_lite.h" | |||
| #include "src/ir/tensor.h" | |||
| #include "frontend/operator/ops.h" | |||
| #include "tools/converter/parser/onnx/onnx.pb.h" | |||
| #include "utils/log_adapter.h" | |||
| #include "include/errorcode.h" | |||
| using string = std::string; | |||
| using int32 = int32_t; | |||
| using int64 = int64_t; | |||
| using uint64 = uint64_t; | |||
| namespace mindspore::lite { | |||
| static constexpr char kConstantValueNode[] = "Constant"; | |||
| static constexpr char kCNodeShapeAttr[] = "shape"; | |||
| static constexpr char kCNodeShape1Attr[] = "shape1"; | |||
| static constexpr char kCNodeShape2Attr[] = "shape2"; | |||
| enum ParseForm : int { | |||
| FORM_PARSE_TYPE = 0, | |||
| FORM_PARSE_SCALAR = 1, | |||
| FORM_PARSE_TENSOR = 2, | |||
| }; | |||
| static std::map<std::string, ParseForm> kParseTypeSwitchMap{ | |||
| {"type", FORM_PARSE_TYPE}, | |||
| {"scalar", FORM_PARSE_SCALAR}, | |||
| {"tensor", FORM_PARSE_TENSOR}}; | |||
| static std::unordered_map<int, TypeId> kDefaultValueSwitchMap{ | |||
| {onnx::TensorProto_DataType_BOOL, kNumberTypeBool}, | |||
| {onnx::TensorProto_DataType_INT8, kNumberTypeInt8}, | |||
| {onnx::TensorProto_DataType_INT16, kNumberTypeInt16}, | |||
| {onnx::TensorProto_DataType_INT32, kNumberTypeInt32}, | |||
| {onnx::TensorProto_DataType_INT64, kNumberTypeInt64}, | |||
| {onnx::TensorProto_DataType_UINT8, kNumberTypeUInt8}, | |||
| {onnx::TensorProto_DataType_UINT16, kNumberTypeUInt16}, | |||
| {onnx::TensorProto_DataType_UINT32, kNumberTypeUInt32}, | |||
| {onnx::TensorProto_DataType_UINT64, kNumberTypeUInt64}, | |||
| {onnx::TensorProto_DataType_FLOAT16, kNumberTypeFloat16}, | |||
| {onnx::TensorProto_DataType_FLOAT, kNumberTypeFloat32}, | |||
| {onnx::TensorProto_DataType_DOUBLE, kNumberTypeFloat64}, | |||
| {onnx::TensorProto_DataType_STRING, kObjectTypeString}, | |||
| }; | |||
| std::shared_ptr<ValueTuple> ParserScalarAttrValue(const std::string &attr_name, | |||
| const std::unordered_map<string, ValuePtr> &kv) { | |||
| std::string str = attr_name; | |||
| auto replace = [&](const string &orgStr, const string &newStr) { | |||
| std::string::size_type pos(0); | |||
| while ((pos = str.find(orgStr)) != std::string::npos) { | |||
| str.replace(pos, orgStr.length(), newStr); | |||
| } | |||
| return str; | |||
| }; | |||
| // remove "scalar:" | |||
| str = replace("scalar:", ""); | |||
| // remove "Tuple" | |||
| str = replace("Tuple", ""); | |||
| // remove "List" | |||
| str = replace("List", ""); | |||
| std::stack<std::string> rules; | |||
| std::stack<ValuePtr> value; | |||
| int num = 0, count = 0; | |||
| for (size_t i = 0; i < str.length(); i++) { | |||
| if (str[i] == '[') { | |||
| rules.push("["); | |||
| } else if (str[i] == ']') { | |||
| // rules | |||
| std::vector<ValuePtr> vec; | |||
| while (rules.top() != "[") { | |||
| rules.pop(); | |||
| vec.push_back(value.top()); | |||
| value.pop(); | |||
| } | |||
| // pop "[" | |||
| rules.pop(); | |||
| // make tuple for names | |||
| std::string res = "dummy"; | |||
| // make tuple for values | |||
| reverse(vec.begin(), vec.end()); | |||
| auto vt = std::make_shared<ValueTuple>(vec); | |||
| if (rules.empty() && value.empty()) { | |||
| return vt; | |||
| } | |||
| rules.push(res); | |||
| value.push(vt); | |||
| } else if (str[i] == ',') { | |||
| continue; | |||
| } else { | |||
| count++; | |||
| if (str[i + 1] == '[' || str[i + 1] == ']' || str[i + 1] == ',') { | |||
| auto value_name = str.substr(i - count + 1, count); | |||
| value.push(kv.at(value_name)); | |||
| rules.push(value_name); | |||
| count = 0; | |||
| num++; | |||
| } | |||
| } | |||
| } | |||
| return {}; | |||
| } | |||
| std::shared_ptr<abstract::AbstractTuple> | |||
| ParserAttrShape(const std::string &attr_name, const std::unordered_map<string, abstract::AbstractTensorPtr> &kv) { | |||
| std::string str = attr_name; | |||
| auto replace = [&](const string &orgStr, const string &newStr) { | |||
| std::string::size_type pos(0); | |||
| while ((pos = str.find(orgStr)) != std::string::npos) { | |||
| str.replace(pos, orgStr.length(), newStr); | |||
| } | |||
| return str; | |||
| }; | |||
| // remove "scalar:" | |||
| str = replace("shape:", ""); | |||
| // remove "Tuple" | |||
| str = replace("Tuple", ""); | |||
| // remove "List" | |||
| str = replace("List", ""); | |||
| std::stack<std::string> rules; | |||
| std::stack<abstract::AbstractBasePtr> value; | |||
| int num = 0, count = 0; | |||
| for (size_t i = 0; i < str.length(); i++) { | |||
| if (str[i] == '[') { | |||
| rules.push("["); | |||
| } else if (str[i] == ']') { | |||
| // rules | |||
| std::vector<abstract::AbstractBasePtr> vec; | |||
| while (rules.top() != "[") { | |||
| rules.pop(); | |||
| vec.push_back(value.top()); | |||
| value.pop(); | |||
| } | |||
| // pop "[" | |||
| rules.pop(); | |||
| // make tuple for names | |||
| std::string res = "dummy"; | |||
| // make tuple for values | |||
| reverse(vec.begin(), vec.end()); | |||
| auto vt = std::make_shared<abstract::AbstractTuple>(vec); | |||
| if (rules.empty() && value.empty()) { | |||
| return vt; | |||
| } | |||
| rules.push(res); | |||
| value.push(vt); | |||
| } else if (str[i] == ',') { | |||
| continue; | |||
| } else { | |||
| count++; | |||
| if (str[i + 1] == '[' || str[i + 1] == ']' || str[i + 1] == ',') { | |||
| auto value_name = str.substr(i - count + 1, count); | |||
| value.push(kv.at(value_name)); | |||
| rules.push(value_name); | |||
| count = 0; | |||
| num++; | |||
| } | |||
| } | |||
| } | |||
| return {}; | |||
| } | |||
| #define PARSE_ONNXATTR_IN_SCALAR_FORM(type, valuetype) \ | |||
| ValuePtr ParseAttrInScalar_##type##_##valuetype(const onnx::TensorProto &attr_tensor) { \ | |||
| if (attr_tensor.type##_data_size() == 1) { \ | |||
| auto value = static_cast<valuetype>(attr_tensor.type##_data(0)); \ | |||
| return MakeValue<valuetype>(value); \ | |||
| } else { \ | |||
| MS_LOG(ERROR) << "size of scalar tensor doesn't equal 1!"; \ | |||
| } \ | |||
| return{}; \ | |||
| } | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(double, double) | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(float, float) | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(string, string) | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(int32, int32) | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(int32, bool) | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(int64, int64) | |||
| PARSE_ONNXATTR_IN_SCALAR_FORM(uint64, uint64) | |||
| bool AnfImporterFromProtobuf::BuildParameterForFuncGraph(const ParameterPtr &node, | |||
| const onnx::ValueInfoProto &value_proto) { | |||
| MS_EXCEPTION_IF_NULL(node); | |||
| if (!value_proto.has_type() || !value_proto.has_name()) { | |||
| MS_LOG(ERROR) << "onnx ValueInfoProto has no type or name! "; | |||
| return false; | |||
| } | |||
| node->set_name(value_proto.name()); | |||
| const auto &type_proto = value_proto.type(); | |||
| if (!type_proto.has_tensor_type()) { | |||
| MS_LOG(ERROR) << "onnx TypeProto has no tesor_type! "; | |||
| return false; | |||
| } | |||
| const onnx::TypeProto_Tensor &tensor_typeproto = type_proto.tensor_type(); | |||
| if (!tensor_typeproto.has_elem_type() || !tensor_typeproto.has_shape()) { | |||
| MS_LOG(ERROR) << "onnx TypeProto_Tensor has no elem_type or shape! "; | |||
| return false; | |||
| } | |||
| const onnx::TensorShapeProto &tensor_shape = tensor_typeproto.shape(); | |||
| std::vector<int> shape; | |||
| for (int i = 0; i < tensor_shape.dim_size(); ++i) { | |||
| shape.push_back(tensor_shape.dim(i).dim_value()); | |||
| } | |||
| if (kDefaultValueSwitchMap.find(tensor_typeproto.elem_type()) == kDefaultValueSwitchMap.end()) { | |||
| MS_LOG(ERROR) << "onnx TypeProto_Tensor elem_type is not support yet!"; | |||
| return false; | |||
| } | |||
| auto type_ptr = TypeIdToType(kDefaultValueSwitchMap[tensor_typeproto.elem_type()]); | |||
| auto abstract_tensor = std::make_shared<abstract::AbstractTensor>(type_ptr, shape); | |||
| node->set_abstract(abstract_tensor); | |||
| if (default_para_map_.find(value_proto.name()) != default_para_map_.end()) { | |||
| tensor::Tensor *tensor_info = new tensor::Tensor(kDefaultValueSwitchMap[tensor_typeproto.elem_type()], shape); | |||
| MS_EXCEPTION_IF_NULL(tensor_info); | |||
| tensor_info->MallocData(); | |||
| const onnx::TensorProto initialize_proto = default_para_map_[value_proto.name()]; | |||
| std::string initial_data = initialize_proto.raw_data(); | |||
| auto *tensor_data_buf = reinterpret_cast<uint8_t *>(tensor_info->Data()); | |||
| MS_EXCEPTION_IF_NULL(tensor_data_buf); | |||
| memcpy_s(tensor_data_buf, tensor_info->Size(), initial_data.data(), initial_data.size()); | |||
| ParamValueLitePtr param_value = std::make_shared<ParamValueLite>(); | |||
| MS_EXCEPTION_IF_NULL(param_value); | |||
| param_value->set_tensor_addr(tensor_data_buf); | |||
| param_value->set_tensor_size(tensor_info->Size()); | |||
| node->set_default_param(param_value); | |||
| } | |||
| anfnode_build_map_[value_proto.name()] = node; | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::ImportParametersForGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto) { | |||
| MS_EXCEPTION_IF_NULL(outputFuncGraph); | |||
| MS_LOG(INFO) << "Parameters had default paramerer size is: " << importProto.initializer_size(); | |||
| for (int i = 0; i < importProto.initializer_size(); ++i) { | |||
| const onnx::TensorProto &initializer_proto = importProto.initializer(i); | |||
| if (!initializer_proto.has_name()) { | |||
| MS_LOG(ERROR) << "initializer vector of onnx GraphProto has no name at index: " << i; | |||
| return false; | |||
| } | |||
| default_para_map_[initializer_proto.name()] = initializer_proto; | |||
| } | |||
| MS_LOG(INFO) << "all parameters size: " << importProto.input_size(); | |||
| for (int i = 0; i < importProto.input_size(); ++i) { | |||
| const onnx::ValueInfoProto &input_proto = importProto.input(i); | |||
| if (!BuildParameterForFuncGraph(outputFuncGraph->add_parameter(), input_proto)) { | |||
| MS_LOG(ERROR) << "Build parameter for funcgraph fail at index: " << i; | |||
| return false; | |||
| } | |||
| } | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::ObtainCNodeAttrInTypeForm(const PrimitivePtr &prim, const std::string &attr_name, | |||
| const onnx::TensorProto &attr_tensor) { | |||
| MS_EXCEPTION_IF_NULL(prim); | |||
| const int attr_tensor_type = attr_tensor.data_type(); | |||
| if (kDefaultValueSwitchMap.find(attr_tensor_type) == kDefaultValueSwitchMap.end()) { | |||
| MS_LOG(ERROR) << "Obtain attr in type-form has not support input type:" << attr_tensor_type; | |||
| return false; | |||
| } | |||
| prim->AddAttr(attr_name, TypeIdToType(kDefaultValueSwitchMap[attr_tensor_type])); | |||
| return true; | |||
| } | |||
| ValuePtr AnfImporterFromProtobuf::ObtainCNodeAttrInScalarForm(const onnx::TensorProto &attr_tensor) { | |||
| const int attr_tensor_type = attr_tensor.data_type(); | |||
| switch (attr_tensor_type) { | |||
| case onnx::TensorProto_DataType_STRING: { | |||
| return ParseAttrInScalar_string_string(attr_tensor); | |||
| } | |||
| case onnx::TensorProto_DataType_INT32: { | |||
| return ParseAttrInScalar_int32_int32(attr_tensor); | |||
| } | |||
| case onnx::TensorProto_DataType_INT64: { | |||
| return ParseAttrInScalar_int64_int64(attr_tensor); | |||
| } | |||
| case onnx::TensorProto_DataType_UINT64: { | |||
| return ParseAttrInScalar_uint64_uint64(attr_tensor); | |||
| } | |||
| case onnx::TensorProto_DataType_FLOAT: { | |||
| return ParseAttrInScalar_float_float(attr_tensor); | |||
| } | |||
| case onnx::TensorProto_DataType_DOUBLE: { | |||
| return ParseAttrInScalar_double_double(attr_tensor); | |||
| } | |||
| case onnx::TensorProto_DataType_BOOL: { | |||
| return ParseAttrInScalar_int32_bool(attr_tensor); | |||
| } | |||
| default: | |||
| MS_LOG(ERROR) << "Obtain attr in scalar-form has not support input type: " << attr_tensor_type; | |||
| return {}; | |||
| } | |||
| return {}; | |||
| } | |||
| bool AnfImporterFromProtobuf::ObtainCNodeAttrInTensorForm(const PrimitivePtr &prim, const std::string &attr_name, | |||
| const onnx::TensorProto &attr_tensor) { | |||
| MS_EXCEPTION_IF_NULL(prim); | |||
| MS_LOG(ERROR) << "parse attr type don't support attr type is tensor"; | |||
| return false; | |||
| } | |||
| bool AnfImporterFromProtobuf::GetAttrValueForCNode(const PrimitivePtr &prim, const onnx::AttributeProto &attr_proto) { | |||
| MS_EXCEPTION_IF_NULL(prim); | |||
| const std::string &attr_name = attr_proto.name(); | |||
| if (!attr_proto.has_ref_attr_name()) { | |||
| MS_LOG(ERROR) << "CNode parse attr type has no ref_attr_name"; | |||
| return false; | |||
| } | |||
| const std::string &ref_attr_name = attr_proto.ref_attr_name(); | |||
| string type; | |||
| std::size_t pos(0); | |||
| if ((pos = ref_attr_name.find("scalar:")) != std::string::npos) { | |||
| type = ref_attr_name.substr(pos, string("scalar:").length() - 1); | |||
| } else if ((pos = ref_attr_name.find("type:")) != std::string::npos) { | |||
| type = ref_attr_name.substr(pos, string("type:").length() - 1); | |||
| } else if ((pos = ref_attr_name.find("tensor:")) != std::string::npos) { | |||
| type = ref_attr_name.substr(pos, string("tensor:").length() - 1); | |||
| } | |||
| std::unordered_map<std::string, ValuePtr> kv; | |||
| for (int i = 0; i < attr_proto.tensors_size(); i++) { | |||
| const onnx::TensorProto &attr_tensor = attr_proto.tensors(i); | |||
| switch (kParseTypeSwitchMap[type]) { | |||
| case FORM_PARSE_TYPE: { | |||
| return ObtainCNodeAttrInTypeForm(prim, attr_name, attr_tensor); | |||
| } | |||
| case FORM_PARSE_SCALAR: { | |||
| auto res = ObtainCNodeAttrInScalarForm(attr_tensor); | |||
| kv.insert(std::pair<string, ValuePtr>(attr_tensor.name(), res)); | |||
| break; | |||
| } | |||
| case FORM_PARSE_TENSOR: { | |||
| return ObtainCNodeAttrInTensorForm(prim, attr_name, attr_tensor); | |||
| } | |||
| default: | |||
| MS_LOG(ERROR) << "parse attr type don't support input of ref_attr_name"; | |||
| return false; | |||
| } | |||
| } | |||
| if (kParseTypeSwitchMap[type] == FORM_PARSE_SCALAR) { | |||
| if (kv.size() == 1) { | |||
| std::unordered_map<std::string, ValuePtr>::iterator iter = kv.begin(); | |||
| prim->AddAttr(attr_name, iter->second); | |||
| } else { | |||
| auto res = ParserScalarAttrValue(ref_attr_name, kv); | |||
| prim->AddAttr(attr_name, res); | |||
| } | |||
| } | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::ObtainValueNodeInTensorForm(const std::string &value_node_name, | |||
| const onnx::TensorProto &attr_tensor) { | |||
| const int attr_tensor_type = attr_tensor.data_type(); | |||
| std::vector<int> shape; | |||
| for (int i = 0; i < attr_tensor.dims_size(); ++i) { | |||
| shape.push_back(attr_tensor.dims(i)); | |||
| } | |||
| tensor::TensorPtr tensor_info = std::make_shared<tensor::Tensor>(kDefaultValueSwitchMap[attr_tensor_type], shape); | |||
| tensor_info->MallocData(); | |||
| const std::string &tensor_buf = attr_tensor.raw_data(); | |||
| auto *tensor_data_buf = reinterpret_cast<uint8_t *>(tensor_info->Data()); | |||
| memcpy_s(tensor_data_buf, tensor_info->Size(), tensor_buf.data(), tensor_buf.size()); | |||
| auto new_value_node = NewValueNode(MakeValue(tensor_info)); | |||
| MS_EXCEPTION_IF_NULL(new_value_node); | |||
| auto type_ptr = TypeIdToType(kDefaultValueSwitchMap[attr_tensor_type]); | |||
| auto abstract_tensor = std::make_shared<abstract::AbstractTensor>(type_ptr, shape); | |||
| new_value_node->set_abstract(abstract_tensor); | |||
| anfnode_build_map_[value_node_name] = new_value_node; | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::ObtainValueNodeInTypeForm(const std::string &value_node_name, | |||
| const onnx::TensorProto &attr_tensor) { | |||
| const int attr_tensor_type = attr_tensor.data_type(); | |||
| if (kDefaultValueSwitchMap.find(attr_tensor_type) == kDefaultValueSwitchMap.end()) { | |||
| MS_LOG(ERROR) << "Obtain ValueNode attr in type-form has not support input type: " << attr_tensor_type; | |||
| return false; | |||
| } | |||
| auto new_value_node = NewValueNode(TypeIdToType(kDefaultValueSwitchMap[attr_tensor_type])); | |||
| abstract::AbstractTypePtr abs_type = std::make_shared<abstract::AbstractType>(std::make_shared<TypeType>()); | |||
| new_value_node->set_abstract(abs_type); | |||
| anfnode_build_map_[value_node_name] = new_value_node; | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::GetAttrValueForValueNode(const std::string &value_node_name, | |||
| const onnx::AttributeProto &attr_proto) { | |||
| const std::string &attr_name = attr_proto.name(); | |||
| if (!attr_proto.has_ref_attr_name()) { | |||
| MS_LOG(ERROR) << "CNode parse attr type has no ref_attr_name"; | |||
| return false; | |||
| } | |||
| const std::string &ref_attr_name = attr_proto.ref_attr_name(); | |||
| string type; | |||
| std::size_t pos(0); | |||
| if ((pos = ref_attr_name.find("scalar:")) != std::string::npos) { | |||
| type = ref_attr_name.substr(pos, string("scalar:").length() - 1); | |||
| } else if ((pos = ref_attr_name.find("type:")) != std::string::npos) { | |||
| type = ref_attr_name.substr(pos, string("type:").length() - 1); | |||
| } else if ((pos = ref_attr_name.find("tensor:")) != std::string::npos) { | |||
| type = ref_attr_name.substr(pos, string("tensor:").length() - 1); | |||
| } | |||
| std::unordered_map<std::string, ValuePtr> kv; | |||
| for (int i = 0; i < attr_proto.tensors_size(); i++) { | |||
| const onnx::TensorProto &attr_tensor = attr_proto.tensors(i); | |||
| switch (kParseTypeSwitchMap[type]) { | |||
| case FORM_PARSE_TYPE: { | |||
| return ObtainValueNodeInTypeForm(value_node_name, attr_tensor); | |||
| } | |||
| case FORM_PARSE_SCALAR: { | |||
| auto res = ObtainCNodeAttrInScalarForm(attr_tensor); | |||
| kv.insert(std::pair<string, ValuePtr>(attr_tensor.name(), res)); | |||
| break; | |||
| } | |||
| case FORM_PARSE_TENSOR: { | |||
| return ObtainValueNodeInTensorForm(value_node_name, attr_tensor); | |||
| } | |||
| default: | |||
| MS_LOG(ERROR) << "parse attr type don't support input of ref_attr_name"; | |||
| return false; | |||
| } | |||
| } | |||
| ValueNodePtr new_value_node; | |||
| if (kParseTypeSwitchMap[type] == FORM_PARSE_SCALAR) { | |||
| if (kv.size() == 1) { | |||
| std::unordered_map<std::string, ValuePtr>::iterator iter = kv.begin(); | |||
| new_value_node = NewValueNode(iter->second); | |||
| new_value_node->set_abstract(iter->second->ToAbstract()); | |||
| } else { | |||
| auto value_ptr = ParserScalarAttrValue(ref_attr_name, kv); | |||
| new_value_node = NewValueNode(value_ptr); | |||
| new_value_node->set_abstract(value_ptr->ToAbstract()); | |||
| } | |||
| anfnode_build_map_[value_node_name] = new_value_node; | |||
| } | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::BuildValueNodeForFuncGraph(const onnx::NodeProto &node_proto) { | |||
| const std::string &value_node_name = node_proto.output(0); | |||
| const onnx::AttributeProto &attr_proto = node_proto.attribute(0); | |||
| if (!attr_proto.has_ref_attr_name()) { | |||
| MS_LOG(ERROR) << "parse ValueNode don't have ref_attr_name"; | |||
| return false; | |||
| } | |||
| return GetAttrValueForValueNode(value_node_name, attr_proto); | |||
| } | |||
| std::unordered_map<std::string, abstract::AbstractTensorPtr> | |||
| AnfImporterFromProtobuf::GetAbstractForCNode(const onnx::AttributeProto &attr_proto) { | |||
| std::unordered_map<std::string, abstract::AbstractTensorPtr> kv; | |||
| for (int i = 0; i < attr_proto.tensors_size(); i++) { | |||
| std::vector<int> shape_vec; | |||
| const onnx::TensorProto &attr_tensor = attr_proto.tensors(i); | |||
| for (int j = 0; j < attr_tensor.dims_size(); ++j) { | |||
| shape_vec.push_back(attr_tensor.dims(j)); | |||
| } | |||
| auto type_ptr = TypeIdToType(kDefaultValueSwitchMap[attr_tensor.data_type()]); | |||
| auto abstract_tensor = std::make_shared<abstract::AbstractTensor>(type_ptr, shape_vec); | |||
| kv.insert(std::pair<string, abstract::AbstractTensorPtr>(attr_tensor.name(), abstract_tensor)); | |||
| } | |||
| return kv; | |||
| } | |||
| CNodePtr AnfImporterFromProtobuf::BuildCNodeForFuncGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::NodeProto &node_proto) { | |||
| MS_EXCEPTION_IF_NULL(outputFuncGraph); | |||
| if (!node_proto.has_op_type()) { | |||
| MS_LOG(ERROR) << "Get CNode op_type failed!"; | |||
| return nullptr; | |||
| } | |||
| const std::string &node_name = node_proto.output(0); | |||
| const std::string &fullname_with_scope = node_proto.domain(); | |||
| const std::string &node_type = node_proto.op_type(); | |||
| PrimitivePtr prim = std::make_shared<mindspore::Primitive>(node_type); | |||
| MS_EXCEPTION_IF_NULL(prim); | |||
| prim->set_instance_name(node_type); | |||
| std::unordered_map<std::string, abstract::AbstractTensorPtr> kv; | |||
| string shape_ref_attr_name; | |||
| for (int i = 0; i < node_proto.attribute_size(); ++i) { | |||
| const onnx::AttributeProto &attr_proto = node_proto.attribute(i); | |||
| if (attr_proto.ref_attr_name().find("shape:") != string::npos) { | |||
| shape_ref_attr_name = attr_proto.ref_attr_name(); | |||
| kv = GetAbstractForCNode(attr_proto); | |||
| continue; | |||
| } | |||
| if (!GetAttrValueForCNode(prim, attr_proto)) { | |||
| MS_LOG(ERROR) << "Get CNode attr failed!"; | |||
| return nullptr; | |||
| } | |||
| } | |||
| std::vector<AnfNodePtr> inputs; | |||
| inputs.clear(); | |||
| inputs.push_back(NewValueNode(prim)); | |||
| for (int i = 0; i < node_proto.input_size(); ++i) { | |||
| const std::string &input_name = node_proto.input(i); | |||
| if (anfnode_build_map_.find(input_name) == anfnode_build_map_.end()) { | |||
| MS_LOG(ERROR) << node_name << " input " << i << input_name << "can't find in nodes have parsed"; | |||
| return nullptr; | |||
| } | |||
| inputs.push_back(anfnode_build_map_[input_name]); | |||
| } | |||
| CNodePtr cnode_ptr = outputFuncGraph->NewCNode(inputs); | |||
| MS_EXCEPTION_IF_NULL(cnode_ptr); | |||
| if (0 == kv.size()) { | |||
| AbstractBasePtrList elem; | |||
| for (size_t index = 1; index < cnode_ptr->inputs().size(); ++index) { | |||
| elem.push_back(cnode_ptr->input(index)->abstract()); | |||
| } | |||
| cnode_ptr->set_abstract(std::make_shared<abstract::AbstractTuple>(elem)); | |||
| } else if (1 == kv.size()) { | |||
| std::unordered_map<std::string, abstract::AbstractTensorPtr>::iterator iter = kv.begin(); | |||
| cnode_ptr->set_abstract(iter->second); | |||
| } else { | |||
| auto abstract = ParserAttrShape(shape_ref_attr_name, kv); | |||
| cnode_ptr->set_abstract(abstract); | |||
| } | |||
| cnode_ptr->set_fullname_with_scope(fullname_with_scope); | |||
| anfnode_build_map_[node_name] = cnode_ptr; | |||
| return cnode_ptr; | |||
| } | |||
| bool AnfImporterFromProtobuf::BuildReturnForFuncGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto, | |||
| const CNodePtr &cnode_ptr) { | |||
| MS_EXCEPTION_IF_NULL(outputFuncGraph); | |||
| MS_EXCEPTION_IF_NULL(cnode_ptr); | |||
| std::vector<AnfNodePtr> inputs; | |||
| if (importProto.output_size() > 1) { | |||
| inputs.clear(); | |||
| inputs.push_back(NewValueNode(prim::kPrimMakeTuple)); | |||
| AbstractBasePtrList elem; | |||
| for (int out_size = 0; out_size < importProto.output_size(); ++out_size) { | |||
| const onnx::ValueInfoProto &output_node = importProto.output(out_size); | |||
| const std::string &out_tuple = output_node.name(); | |||
| inputs.push_back(anfnode_build_map_[out_tuple]); | |||
| elem.push_back(anfnode_build_map_[out_tuple]->abstract()); | |||
| } | |||
| auto maketuple_ptr = outputFuncGraph->NewCNode(inputs); | |||
| maketuple_ptr->set_abstract(std::make_shared<abstract::AbstractTuple>(elem)); | |||
| inputs.clear(); | |||
| inputs.push_back(NewValueNode(prim::kPrimReturn)); | |||
| inputs.push_back(maketuple_ptr); | |||
| auto return_node = outputFuncGraph->NewCNode(inputs); | |||
| MS_EXCEPTION_IF_NULL(return_node); | |||
| outputFuncGraph->set_return(return_node); | |||
| MS_LOG(INFO) << "Construct funcgraph finined, all success."; | |||
| } else { | |||
| const onnx::ValueInfoProto &output_node = importProto.output(0); | |||
| const onnx::TypeProto &output_typeproto = output_node.type(); | |||
| int output_type = output_typeproto.tensor_type().elem_type(); | |||
| std::vector<int> output_shape; | |||
| for (int i = 0; i < output_typeproto.tensor_type().shape().dim_size(); ++i) { | |||
| output_shape.push_back(output_typeproto.tensor_type().shape().dim(i).dim_value()); | |||
| } | |||
| auto type_ptr = TypeIdToType(kDefaultValueSwitchMap[output_type]); | |||
| auto abstract_tensor = std::make_shared<abstract::AbstractTensor>(type_ptr, output_shape); | |||
| inputs.clear(); | |||
| inputs.push_back(NewValueNode(prim::kPrimReturn)); | |||
| inputs.push_back(cnode_ptr); | |||
| auto return_node = outputFuncGraph->NewCNode(inputs); | |||
| MS_EXCEPTION_IF_NULL(return_node); | |||
| return_node->set_abstract(abstract_tensor); | |||
| outputFuncGraph->set_return(return_node); | |||
| MS_LOG(INFO) << "Construct funcgraph finined, all success!"; | |||
| } | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::ImportNodesForGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto) { | |||
| MS_EXCEPTION_IF_NULL(outputFuncGraph); | |||
| MS_LOG(INFO) << "The CNdoe size : " << importProto.node_size(); | |||
| CNodePtr cnode_ptr = nullptr; | |||
| for (int i = 0; i < importProto.node_size(); ++i) { | |||
| const onnx::NodeProto &node_proto = importProto.node(i); | |||
| const std::string &node_type = node_proto.op_type(); | |||
| if (node_type == kConstantValueNode) { | |||
| if (!BuildValueNodeForFuncGraph(node_proto)) { | |||
| MS_LOG(ERROR) << "Build ValueNode for funcgraph fail at index: : " << i; | |||
| return false; | |||
| } | |||
| continue; | |||
| } | |||
| cnode_ptr = BuildCNodeForFuncGraph(outputFuncGraph, node_proto); | |||
| if (cnode_ptr == nullptr) { | |||
| MS_LOG(ERROR) << "Build CNode for funcgraph fail at index: : " << i; | |||
| return false; | |||
| } | |||
| } | |||
| BuildReturnForFuncGraph(outputFuncGraph, importProto, cnode_ptr); | |||
| return true; | |||
| } | |||
| bool AnfImporterFromProtobuf::BuildFuncGraph(const FuncGraphPtr &outputFuncGraph, const onnx::GraphProto &importProto) { | |||
| MS_EXCEPTION_IF_NULL(outputFuncGraph); | |||
| GraphDebugInfoPtr debug_info_ptr = outputFuncGraph->debug_info(); | |||
| MS_EXCEPTION_IF_NULL(debug_info_ptr); | |||
| if (importProto.has_name()) { | |||
| debug_info_ptr->set_name(importProto.name()); | |||
| } else { | |||
| MS_LOG(ERROR) << "FuncGraph under converting has not name!"; | |||
| } | |||
| if (!ImportParametersForGraph(outputFuncGraph, importProto)) { | |||
| return false; | |||
| } | |||
| return ImportNodesForGraph(outputFuncGraph, importProto); | |||
| } | |||
| bool AnfImporterFromProtobuf::ParseModelConfigureInfo(const onnx::ModelProto &model_proto) { | |||
| if (!model_proto.has_producer_name()) { | |||
| MS_LOG(ERROR) << "Parse model producer name from pb file failed!"; | |||
| return false; | |||
| } | |||
| producer_name_ = model_proto.producer_name(); | |||
| if (!model_proto.has_model_version()) { | |||
| MS_LOG(ERROR) << "Parse model producer version from pb file failed!"; | |||
| return false; | |||
| } | |||
| model_version_ = model_proto.model_version(); | |||
| if (!model_proto.has_ir_version()) { | |||
| MS_LOG(ERROR) << "Parse model version from pb file failed!"; | |||
| return false; | |||
| } | |||
| ir_version_ = model_proto.ir_version(); | |||
| return true; | |||
| } | |||
| int AnfImporterFromProtobuf::Import() { | |||
| FuncGraphPtr dstGraph = std::make_shared<mindspore::FuncGraph>(); | |||
| MS_EXCEPTION_IF_NULL(dstGraph); | |||
| if (!ParseModelConfigureInfo(*onnx_model_)) { | |||
| MS_LOG(ERROR) << "Parse configuration info for pb file failed!"; | |||
| } | |||
| const onnx::GraphProto &graphBuild = onnx_model_->graph(); | |||
| if (!BuildFuncGraph(dstGraph, graphBuild)) { | |||
| MS_LOG(ERROR) << "Build funcgraph failed!"; | |||
| return RET_ERROR; | |||
| } | |||
| func_graph_ = dstGraph; | |||
| MS_LOG(INFO) << "Parse pb to build FuncGraph Success!"; | |||
| return RET_OK; | |||
| } | |||
| onnx::ModelProto *AnfImporterFromProtobuf::ReadOnnxFromBinary(const std::string &model_path) { | |||
| std::unique_ptr<char> onnx_file(new(std::nothrow) char[PATH_MAX]{0}); | |||
| if (realpath(model_path.c_str(), onnx_file.get()) == nullptr) { | |||
| MS_LOG(ERROR) << "open file failed."; | |||
| return nullptr; | |||
| } | |||
| int fd = open(onnx_file.get(), O_RDONLY); | |||
| google::protobuf::io::FileInputStream input(fd); | |||
| google::protobuf::io::CodedInputStream code_input(&input); | |||
| code_input.SetTotalBytesLimit(INT_MAX, 536870912); | |||
| auto onnx_model = new onnx::ModelProto; | |||
| bool ret = onnx_model->ParseFromCodedStream(&code_input); | |||
| if (!ret) { | |||
| MS_LOG(ERROR) << "load onnx file failed"; | |||
| delete onnx_model; | |||
| return nullptr; | |||
| } | |||
| (void) close(fd); | |||
| MS_LOG(INFO) << "enter ReadProtoFromBinary success!" << std::endl; | |||
| return onnx_model; | |||
| } | |||
| FuncGraphPtr AnfImporterFromProtobuf::GetResult() { return this->func_graph_; } | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,92 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_PROTOBUF_H_ | |||
| #define MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_PROTOBUF_H_ | |||
| #include <string> | |||
| #include <map> | |||
| #include <unordered_map> | |||
| #include <utility> | |||
| #include "tools/converter/parser/onnx/onnx.pb.h" | |||
| #include "src/common/anf_importer/anf_importer.h" | |||
| #include "abstract/abstract_value.h" | |||
| namespace mindspore::lite { | |||
| class AnfImporterFromProtobuf : public AnfImporter { | |||
| public: | |||
| explicit AnfImporterFromProtobuf(onnx::ModelProto *onnx_model, FuncGraphPtr func_graph) | |||
| : onnx_model_(onnx_model), func_graph_(std::move(func_graph)) {} | |||
| ~AnfImporterFromProtobuf() override = default; | |||
| static onnx::ModelProto *ReadOnnxFromBinary(const std::string &model_path); | |||
| FuncGraphPtr GetResult() override; | |||
| int Import() override; | |||
| private: | |||
| void ConverterConstTensor() override {}; | |||
| int ConverterCNode() override {}; | |||
| void AddReturnCNode() override {}; | |||
| bool ParseModelConfigureInfo(const onnx::ModelProto &model_proto); | |||
| bool BuildFuncGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto); | |||
| bool ImportParametersForGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto); | |||
| bool ImportNodesForGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto); | |||
| bool BuildParameterForFuncGraph(const ParameterPtr &node, | |||
| const onnx::ValueInfoProto &value_proto); | |||
| CNodePtr BuildCNodeForFuncGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::NodeProto &node_proto); | |||
| bool BuildReturnForFuncGraph(const FuncGraphPtr &outputFuncGraph, | |||
| const onnx::GraphProto &importProto, | |||
| const CNodePtr &cnode_ptr); | |||
| bool GetAttrValueForCNode(const PrimitivePtr &prim, | |||
| const onnx::AttributeProto &attr_proto); | |||
| bool ObtainCNodeAttrInTypeForm(const PrimitivePtr &prim, | |||
| const std::string &attr_name, | |||
| const onnx::TensorProto &attr_tensor); | |||
| ValuePtr ObtainCNodeAttrInScalarForm(const onnx::TensorProto &attr_tensor); | |||
| bool ObtainCNodeAttrInTensorForm(const PrimitivePtr &prim, | |||
| const std::string &attr_name, | |||
| const onnx::TensorProto &attr_tensor); | |||
| bool BuildValueNodeForFuncGraph(const onnx::NodeProto &node_proto); | |||
| bool ObtainValueNodeInTensorForm(const std::string &value_node_name, | |||
| const onnx::TensorProto &attr_tensor); | |||
| bool GetAttrValueForValueNode(const std::string &value_node_name, | |||
| const onnx::AttributeProto &attr_tensor); | |||
| bool ObtainValueNodeInTypeForm(const std::string &value_node_name, | |||
| const onnx::TensorProto &attr_tensor); | |||
| std::unordered_map<std::string, abstract::AbstractTensorPtr> | |||
| GetAbstractForCNode(const onnx::AttributeProto &attr_proto); | |||
| private: | |||
| std::string producer_name_; | |||
| int model_version_{}; | |||
| int ir_version_{}; | |||
| std::unordered_map<std::string, AnfNodePtr> anfnode_build_map_; | |||
| std::map<std::string, onnx::TensorProto> default_para_map_; | |||
| onnx::ModelProto *onnx_model_; | |||
| FuncGraphPtr func_graph_; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif // MINDSPORE_LITE_SRC_ANF_IMPORTER_IMPORTER_FROM_PROTOBUF_H_ | |||
| @@ -0,0 +1,64 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_COMMON_COMMON_H_ | |||
| #define MINDSPORE_LITE_COMMON_COMMON_H_ | |||
| #include <string> | |||
| #include "schema/model_generated.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| enum NCHW_SHAPE { NCHW_N = 0, NCHW_C = 1, NCHW_H = 2, NCHW_W = 3 }; | |||
| enum NHWC_SHAPE { NHWC_N = 0, NHWC_H = 1, NHWC_W = 2, NHWC_C = 3 }; | |||
| enum HWCK_SHAPE { HWCK_H = 0, HWCK_W = 1, HWCK_C = 2, HWCK_K = 3 }; | |||
| enum HWKC_SHAPE { HWKC_H = 0, HWKC_W = 1, HWKC_K = 2, HWKC_C = 3 }; | |||
| enum KCHW_SHAPE { KCHW_K = 0, KCHW_C = 1, KCHW_H = 2, KCHW_W = 3 }; | |||
| enum CKHW_SHAPE { CKHW_C = 0, CKHW_K = 1, CKHW_H = 2, CKHW_W = 3 }; | |||
| enum CHWK_SHAPE { CHWK_C = 0, CHWK_H = 1, CHWK_W = 2, CHWK_K = 3 }; | |||
| enum KHWC_SHAPE { KHWC_K = 0, KHWC_H = 1, KHWC_W = 2, KHWC_C = 3 }; | |||
| enum CHW_SHAPE { CHW_C = 0, CHW_H = 1, CHW_W = 2 }; | |||
| enum HWC_SHAPE { HWC_H = 0, HWC_W = 1, HWC_C = 2 }; | |||
| static constexpr int kNCHWDimNumber = 4; | |||
| static constexpr int kNHWCDimNumber = 4; | |||
| static constexpr int TENSOR_MAX_REFCOUNT = 999; | |||
| static const char *DELIM_COLON = ":"; | |||
| static const char *DELIM_COMMA = ","; | |||
| static const char *DELIM_SLASH = "/"; | |||
| static const char *DELIM_DOUBLE_BACKSLASH = "\\"; | |||
| // quantization relative | |||
| static const char QUANTIZED_UINT8[] = "QUANTIZED_UINT8"; | |||
| static const char QUANTIZED_INT8[] = "QUANTIZED_INT8"; | |||
| static const char QUANTIZED_INT16[] = "QUANTIZED_INT16"; | |||
| static const char QUANTIZED_UINT16[] = "QUANTIZED_UINT16"; | |||
| static const char QUANTIZED_FLOAT16[] = "FLOAT16"; | |||
| static const char QUANTIZED_FLOAT32[] = "FLOAT32"; | |||
| static const char QUANTIZATION_TYPE_DYNAMIC[] = "DYNAMIC"; | |||
| static const char QUANTIZATION_TYPE_STATIC[] = "STATIC"; | |||
| static const char CALIB_NORM[] = "NORM"; | |||
| // dims | |||
| static const int32_t DIM_DEFAULT_SIZE = 4; | |||
| static const schema::Format DEFAULT_FORMAT = schema::Format_NCHW; | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_COMMON_COMMON_H_ | |||
| @@ -0,0 +1,168 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include <stdlib.h> | |||
| #include <fcntl.h> | |||
| #include <climits> | |||
| #include <cmath> | |||
| #include "src/common/file_utils.h" | |||
| #include "securec/include/securec.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| #define MAX_FILENAME_LEN 1024 | |||
| char *ReadFile(const char *file, size_t *size) { | |||
| if (file == nullptr) { | |||
| MS_LOG(ERROR) << "file is nullptr"; | |||
| return nullptr; | |||
| } | |||
| MS_ASSERT(size != nullptr); | |||
| std::string realPath = RealPath(file); | |||
| std::ifstream ifs(realPath); | |||
| if (!ifs.good()) { | |||
| MS_LOG(ERROR) << "file: " << realPath << " is not exist"; | |||
| return nullptr; | |||
| } | |||
| if (!ifs.is_open()) { | |||
| MS_LOG(ERROR) << "file: " << realPath << " open failed"; | |||
| return nullptr; | |||
| } | |||
| ifs.seekg(0, std::ios::end); | |||
| *size = ifs.tellg(); | |||
| std::unique_ptr<char> buf(new (std::nothrow) char[*size]); | |||
| if (buf == nullptr) { | |||
| MS_LOG(ERROR) << "malloc buf failed, file: " << realPath; | |||
| ifs.close(); | |||
| return nullptr; | |||
| } | |||
| ifs.seekg(0, std::ios::beg); | |||
| ifs.read(buf.get(), *size); | |||
| ifs.close(); | |||
| return buf.release(); | |||
| } | |||
| std::string RealPath(const char *path) { | |||
| if (path == nullptr) { | |||
| MS_LOG(ERROR) << "path is nullptr"; | |||
| return ""; | |||
| } | |||
| if ((strlen(path)) >= PATH_MAX) { | |||
| MS_LOG(ERROR) << "path is too long"; | |||
| return ""; | |||
| } | |||
| std::shared_ptr<char> resolvedPath(new (std::nothrow) char[PATH_MAX]{0}); | |||
| if (resolvedPath == nullptr) { | |||
| MS_LOG(ERROR) << "new resolvedPath failed"; | |||
| return ""; | |||
| } | |||
| std::string realPath = realpath(path, resolvedPath.get()); | |||
| if (realPath.empty()) { | |||
| MS_LOG(ERROR) << "Proto file path is not valid"; | |||
| return ""; | |||
| } | |||
| std::string res = resolvedPath.get(); | |||
| return res; | |||
| } | |||
| int WriteToBin(const std::string &file_path, void *data, size_t size) { | |||
| std::ofstream out_file; | |||
| out_file.open(file_path.c_str(), std::ios::binary); | |||
| if (!out_file.good()) { | |||
| return -1; | |||
| } | |||
| if (!out_file.is_open()) { | |||
| out_file.close(); | |||
| return -1; | |||
| } | |||
| out_file.write(reinterpret_cast<char *>(data), size); | |||
| return 0; | |||
| } | |||
| int CompareOutputData(float *output_data, float *correct_data, int data_size) { | |||
| float error = 0; | |||
| for (size_t i = 0; i < data_size; i++) { | |||
| float abs = fabs(output_data[i] - correct_data[i]); | |||
| if (abs > 0.00001) { | |||
| error += abs; | |||
| } | |||
| } | |||
| error /= data_size; | |||
| if (error > 0.0001) { | |||
| printf("has accuracy error!\n"); | |||
| printf("%f\n", error); | |||
| return 1; | |||
| } | |||
| return 0; | |||
| } | |||
| void CompareOutput(float *output_data, std::string file_path) { | |||
| size_t output_size; | |||
| auto ground_truth = reinterpret_cast<float *>(mindspore::lite::ReadFile(file_path.c_str(), &output_size)); | |||
| size_t output_num = output_size / sizeof(float); | |||
| printf("output num : %zu\n", output_num); | |||
| CompareOutputData(output_data, ground_truth, output_num); | |||
| } | |||
| // std::string GetAndroidPackageName() { | |||
| // static std::string packageName; | |||
| // | |||
| // if (!packageName.empty()) { | |||
| // return packageName; | |||
| // } | |||
| // | |||
| // char cmdline[MAX_FILENAME_LEN] = {0}; | |||
| // int fd = open("/proc/self/cmdline", O_RDONLY); | |||
| // | |||
| // if (fd >= 0) { | |||
| // char ch; | |||
| // int i = 0; | |||
| // while (read(fd, &ch, sizeof(ch)) > 0 && !isspace(ch)) { | |||
| // if (':' == ch) { | |||
| // break; | |||
| // } | |||
| // | |||
| // if (('/' == ch) || ('\\' == ch)) { | |||
| // (void)memset(cmdline, 0, sizeof(cmdline)); | |||
| // i = 0; | |||
| // } else { | |||
| // cmdline[i] = ch; | |||
| // i++; | |||
| // } | |||
| // } | |||
| // close(fd); | |||
| // } | |||
| // packageName = std::string(cmdline); | |||
| // return packageName; | |||
| //} | |||
| // std::string GetAndroidPackagePath() { | |||
| // std::string packageName = GetAndroidPackageName(); | |||
| // if (packageName.empty()) { | |||
| // return "./"; | |||
| // } | |||
| // return "/data/data/" + packageName + '/'; | |||
| //} | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,58 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_COMMON_FILE_UTILS_H_ | |||
| #define MINDSPORE_LITE_COMMON_FILE_UTILS_H_ | |||
| #include <cstdio> | |||
| #include <cstdlib> | |||
| #include <ctime> | |||
| #include <string> | |||
| #include <iostream> | |||
| #include <memory> | |||
| #include <fstream> | |||
| #include "src/common/utils.h" | |||
| #include "utils/log_adapter.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| char *ReadFile(const char *file, size_t *size); | |||
| std::string RealPath(const char *path); | |||
| template <typename T> | |||
| void WriteToTxt(const std::string& file_path, void *data, size_t element_size) { | |||
| std::ofstream out_file; | |||
| out_file.open(file_path, std::ios::out); | |||
| auto real_data = reinterpret_cast<T *>(data); | |||
| for (size_t i = 0; i < element_size; i++) { | |||
| out_file << real_data[i] << " "; | |||
| } | |||
| out_file.close(); | |||
| } | |||
| int WriteToBin(const std::string& file_path, void *data, size_t size); | |||
| int CompareOutputData(float *output_data, float *correct_data, int data_size); | |||
| void CompareOutput(float *output_data, std::string file_path); | |||
| std::string GetAndroidPackageName(); | |||
| std::string GetAndroidPackagePath(); | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_COMMON_FILE_UTILS_H_ | |||
| @@ -0,0 +1,77 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include <fstream> | |||
| #include <sstream> | |||
| #include <utility> | |||
| #include "src/common/graph_util.h" | |||
| #include "src/common/utils.h" | |||
| #include "utils/log_adapter.h" | |||
| #include "include/errorcode.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| std::vector<size_t> GetGraphInputNodes(const schema::MetaGraph *meta_graph) { | |||
| MS_ASSERT(nullptr != meta_graph); | |||
| std::vector<size_t> ret; | |||
| for (size_t i = 0; i < meta_graph->inputIndex()->size(); i++) { | |||
| auto input_index = meta_graph->inputIndex()->GetAs<uint32_t>(i); | |||
| for (size_t j = 0; j < meta_graph->nodes()->size(); j++) { | |||
| auto *cNode = meta_graph->nodes()->GetAs<schema::CNode>(j); | |||
| MS_ASSERT(nullptr != cNode); | |||
| for (size_t k = 0; k < cNode->inputIndex()->size(); k++) { | |||
| if (cNode->inputIndex()->GetAs<uint32_t>(k) == input_index) { | |||
| ret.emplace_back(j); | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| return std::move(ret); | |||
| } | |||
| std::vector<size_t> GetGraphOutputNodes(const schema::MetaGraph *meta_graph) { | |||
| MS_ASSERT(nullptr != meta_graph); | |||
| std::vector<size_t> ret; | |||
| for (size_t i = 0; i < meta_graph->outputIndex()->size(); i++) { | |||
| auto output_index = meta_graph->outputIndex()->GetAs<uint32_t>(i); | |||
| for (size_t j = 0; j < meta_graph->nodes()->size(); j++) { | |||
| auto *cNode = meta_graph->nodes()->GetAs<schema::CNode>(j); | |||
| MS_ASSERT(nullptr != cNode); | |||
| for (size_t k = 0; k < cNode->outputIndex()->size(); k++) { | |||
| if (cNode->outputIndex()->GetAs<uint32_t>(k) == output_index) { | |||
| ret.emplace_back(j); | |||
| break; | |||
| } | |||
| } | |||
| } | |||
| } | |||
| return std::move(ret); | |||
| } | |||
| // NODE_ID OpNode::ID() { return id; } | |||
| // | |||
| // void OpNode::AddInEdge(NODE_ID nodeId) { inEdges.insert(nodeId); } | |||
| // | |||
| // void OpNode::AddOutEdge(NODE_ID nodeId) { outEdges.insert(nodeId); } | |||
| // | |||
| // std::unordered_set<NODE_ID> OpNode::GetAllInEdges() { return inEdges; } | |||
| // | |||
| // std::unordered_set<NODE_ID> OpNode::GetAllOutEdges() { return outEdges; } | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,250 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_COMMON_GRAPH_UTIL_H_ | |||
| #define MINDSPORE_LITE_COMMON_GRAPH_UTIL_H_ | |||
| #include <string> | |||
| #include <unordered_map> | |||
| #include <unordered_set> | |||
| #include <vector> | |||
| #include <memory> | |||
| #include "schema/model_generated.h" | |||
| #include "utils//log_adapter.h" | |||
| #include "include/errorcode.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| using NODE_ID = std::string; | |||
| std::vector<size_t> GetGraphInputNodes(const schema::MetaGraph *meta_graph); | |||
| std::vector<size_t> GetGraphOutputNodes(const schema::MetaGraph *meta_graph); | |||
| class OpNode { | |||
| public: | |||
| explicit OpNode(const NODE_ID &nodeId) : id(nodeId) {} | |||
| NODE_ID ID() { return id; }; | |||
| void AddInEdge(NODE_ID nodeId) { inEdges.insert(nodeId); } | |||
| void AddOutEdge(NODE_ID nodeId) { outEdges.insert(nodeId); } | |||
| std::unordered_set<NODE_ID> GetAllInEdges() { return inEdges; } | |||
| std::unordered_set<NODE_ID> GetAllOutEdges() { return outEdges; } | |||
| protected: | |||
| NODE_ID id; | |||
| std::unordered_set<NODE_ID> inEdges; | |||
| std::unordered_set<NODE_ID> outEdges; | |||
| }; | |||
| template <typename NODE_T> | |||
| class OpGraph { | |||
| public: | |||
| OpGraph() {} | |||
| ~OpGraph(); | |||
| int Build(const schema::MetaGraph *subGraphDef); | |||
| NODE_T *GetNode(NODE_ID nodeId); | |||
| NODE_T *AddNode(NODE_ID nodeId); | |||
| std::unordered_set<NODE_T *> GetInputNode(); | |||
| std::unordered_set<NODE_T *> GetOutputNode(); | |||
| void AddNodes(std::vector<NODE_T *> addNodes); | |||
| void DeleteNodes(std::vector<NODE_T *> deleteNodes); | |||
| void AddEdge(NODE_ID nodeId); | |||
| int AddEdge(NODE_ID srcId, NODE_ID dstId); | |||
| int AddEdge(const schema::CNode *srcNodeDef, const flatbuffers::Vector<flatbuffers::Offset<schema::CNode>> *opDefs); | |||
| std::unordered_map<NODE_T *, std::unordered_set<NODE_T *>> GetDepends(); | |||
| protected: | |||
| std::unordered_map<NODE_ID, NODE_T *> nodes; | |||
| }; | |||
| template <typename NODE_T> | |||
| int OpGraph<NODE_T>::Build(const schema::MetaGraph *subGraphDef) { | |||
| if (subGraphDef == nullptr) { | |||
| // MS_LOGE("subGraphDef is nullptr"); | |||
| return RET_ERROR; | |||
| } | |||
| auto opDefs = subGraphDef->nodes(); | |||
| uint32_t opCount = opDefs->size(); | |||
| for (uint32_t i = 0; i < opCount; i++) { | |||
| auto opDef = opDefs->GetAs<schema::CNode>(i); | |||
| auto node = AddNode(std::string(opDef->name()->c_str())); | |||
| if (node == nullptr) { | |||
| // MS_LOGE("add srcNode failed,name %s", opDef->name()->c_str()); | |||
| return RET_ERROR; | |||
| } | |||
| auto ret = AddEdge(opDef, opDefs); | |||
| if (ret != RET_OK) { | |||
| // MS_LOGE("%s add edge failed. ret:%d", opDef->name()->c_str(), ret); | |||
| return RET_ERROR; | |||
| } | |||
| } | |||
| return RET_OK; | |||
| } | |||
| template <typename NODE_T> | |||
| int OpGraph<NODE_T>::AddEdge(const schema::CNode *srcNodeDef, | |||
| const flatbuffers::Vector<flatbuffers::Offset<schema::CNode>> *nodeDefs) { | |||
| MS_ASSERT(srcNodeDef != nullptr); | |||
| MS_ASSERT(nodeDefs != nullptr); | |||
| NODE_ID srcId = std::string(srcNodeDef->name()->c_str()); | |||
| uint32_t opCount = nodeDefs->size(); | |||
| // for single op condition | |||
| AddNode(srcId); | |||
| for (auto index : *(srcNodeDef->outputIndex())) { | |||
| for (uint32_t i = 0; i < opCount; i++) { | |||
| auto dstNodeDef = nodeDefs->GetAs<schema::CNode>(i); | |||
| bool find = false; | |||
| auto inputIndex = dstNodeDef->inputIndex(); | |||
| if (std::any_of(inputIndex->begin(), inputIndex->end(), [&index](int i) { return i == index; })) { | |||
| find = true; | |||
| } | |||
| if (!find) { | |||
| continue; | |||
| } | |||
| NODE_ID dstId = std::string(dstNodeDef->name()->c_str()); | |||
| auto ret = AddEdge(srcId, dstId); | |||
| if (ret != RET_OK) { | |||
| return ret; | |||
| } | |||
| } | |||
| } | |||
| return RET_OK; | |||
| } | |||
| template <typename NODE_T> | |||
| int OpGraph<NODE_T>::AddEdge(NODE_ID srcId, NODE_ID dstId) { | |||
| auto srcNode = AddNode(srcId); | |||
| if (srcNode == nullptr) { | |||
| // MS_LOGE("add srcNode failed"); | |||
| return RET_ERROR; | |||
| } | |||
| auto dstNode = AddNode(dstId); | |||
| if (dstNode == nullptr) { | |||
| // MS_LOGE("add dstNode failed"); | |||
| return RET_ERROR; | |||
| } | |||
| srcNode->AddOutEdge(dstNode); | |||
| dstNode->AddInEdge(srcNode); | |||
| return RET_OK; | |||
| } | |||
| template <typename NODE_T> | |||
| NODE_T *OpGraph<NODE_T>::GetNode(NODE_ID nodeId) { | |||
| auto node = nodes.find(nodeId); | |||
| if (node == nodes.end()) { | |||
| return nullptr; | |||
| } | |||
| return node->second; | |||
| } | |||
| template <typename NODE_T> | |||
| NODE_T *OpGraph<NODE_T>::AddNode(NODE_ID nodeId) { | |||
| auto node = GetNode(nodeId); | |||
| if (node != nullptr) { | |||
| return node; | |||
| } | |||
| node = new (std::nothrow) NODE_T(nodeId); | |||
| if (node == nullptr) { | |||
| // MS_LOGE("new node failed"); | |||
| return nullptr; | |||
| } | |||
| nodes[nodeId] = node; | |||
| return node; | |||
| } | |||
| template <typename NODE_T> | |||
| void OpGraph<NODE_T>::AddNodes(std::vector<NODE_T *> addNodes) { | |||
| for (auto node : addNodes) { | |||
| if (node == nullptr) { | |||
| return; | |||
| } | |||
| nodes[node->ID()] = node; | |||
| } | |||
| } | |||
| template <typename NODE_T> | |||
| void OpGraph<NODE_T>::DeleteNodes(std::vector<NODE_T *> deleteNodes) { | |||
| for (auto deletenode : deleteNodes) { | |||
| if (deletenode == nullptr) { | |||
| continue; | |||
| } | |||
| auto node = GetNode(deletenode->ID()); | |||
| if (node == nullptr) { | |||
| continue; | |||
| } | |||
| nodes.erase(deletenode->ID()); | |||
| } | |||
| } | |||
| template <typename NODE_T> | |||
| std::unordered_set<NODE_T *> OpGraph<NODE_T>::GetInputNode() { | |||
| std::unordered_set<NODE_T *> inputNodes; | |||
| for (const auto &iter : nodes) { | |||
| auto node = iter.second; | |||
| if (node->GetAllInEdges().empty()) { | |||
| inputNodes.insert(node); | |||
| } | |||
| } | |||
| return inputNodes; | |||
| } | |||
| template <typename NODE_T> | |||
| std::unordered_set<NODE_T *> OpGraph<NODE_T>::GetOutputNode() { | |||
| std::unordered_set<NODE_T *> outputNodes; | |||
| for (const auto &iter : nodes) { | |||
| auto node = iter.second; | |||
| if (node->GetAllOutEdges().empty()) { | |||
| outputNodes.insert(node); | |||
| } | |||
| } | |||
| return outputNodes; | |||
| } | |||
| template <typename NODE_T> | |||
| std::unordered_map<NODE_T *, std::unordered_set<NODE_T *>> OpGraph<NODE_T>::GetDepends() { | |||
| std::unordered_map<NODE_T *, std::unordered_set<NODE_T *>> depends; | |||
| for (auto nodeIter : nodes) { | |||
| depends[nodeIter.second] = nodeIter.second->GetAllInEdges(); | |||
| } | |||
| return depends; | |||
| } | |||
| template <typename NODE_T> | |||
| OpGraph<NODE_T>::~OpGraph() { | |||
| for (auto iter : nodes) { | |||
| delete iter.second; | |||
| } | |||
| nodes.clear(); | |||
| } | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_COMMON_GRAPH_UTIL_H_ | |||
| @@ -0,0 +1,151 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "ir/graph_utils.h" | |||
| #include <unordered_map> | |||
| #include <unordered_set> | |||
| #include <utility> | |||
| #include <stack> | |||
| #include <vector> | |||
| #include <list> | |||
| #include <string> | |||
| #include <fstream> | |||
| #include "ir/visitor.h" | |||
| #include "ir/func_graph.h" | |||
| #include "debug/label.h" | |||
| #include "utils/log_adapter.h" | |||
| #include "src/common/utils.h" | |||
| namespace mindspore { | |||
| namespace { | |||
| class DeepFirstSearcher { | |||
| public: | |||
| explicit DeepFirstSearcher(const IncludeFunc &include) : include_(include) {} | |||
| ~DeepFirstSearcher() = default; | |||
| std::vector<AnfNodePtr> Search(const AnfNodePtr &root) { | |||
| if (root == nullptr) { | |||
| return res_; | |||
| } | |||
| seen_ = NewSeenGeneration(); | |||
| Visit(root); | |||
| return res_; | |||
| } | |||
| void Visit(const AnfNodePtr &node) { | |||
| if (node == nullptr) { | |||
| return; | |||
| } | |||
| if (node->seen_ == seen_) { | |||
| return; | |||
| } | |||
| node->seen_ = seen_; | |||
| auto incl = include_(node); | |||
| if (incl == EXCLUDE) { | |||
| return; | |||
| } | |||
| if (filter_ == nullptr || !filter_(node)) { | |||
| res_.push_back(node); | |||
| } | |||
| if (incl == FOLLOW) { | |||
| if (node->isa<CNode>()) { | |||
| auto cnode = node->cast<CNodePtr>(); | |||
| auto &inputs = cnode->inputs(); | |||
| for (auto iter = inputs.rbegin(); iter != inputs.rend(); ++iter) { | |||
| Visit(*iter); | |||
| } | |||
| return; | |||
| } | |||
| } | |||
| } | |||
| private: | |||
| size_t seen_{0}; | |||
| IncludeFunc include_; | |||
| FilterFunc filter_; | |||
| std::vector<AnfNodePtr> res_{}; | |||
| }; | |||
| class DeepScopedGraphSearcher : public DeepFirstSearcher { | |||
| public: | |||
| explicit DeepScopedGraphSearcher(const IncludeFunc &include) : DeepFirstSearcher(include) {} | |||
| ~DeepScopedGraphSearcher() = default; | |||
| void Visit(const CNodePtr &cnode) { return; } | |||
| void Visit(const ValueNodePtr &vnode) { | |||
| if (!IsValueNode<FuncGraph>(vnode)) { | |||
| return; | |||
| } | |||
| auto graph = GetValueNode<FuncGraphPtr>(vnode); | |||
| AnfNodePtr ret = graph->get_return(); | |||
| if (ret != nullptr) { | |||
| DeepFirstSearcher::Visit(ret); | |||
| } | |||
| } | |||
| void Visit(const ParameterPtr ¶m) { | |||
| if (param->func_graph() == nullptr) { | |||
| return; | |||
| } | |||
| AnfNodePtr ret = param->func_graph()->get_return(); | |||
| if (ret != nullptr) { | |||
| DeepFirstSearcher::Visit(ret); | |||
| } | |||
| } | |||
| }; | |||
| class DeepUsedGraphSearcher : public DeepFirstSearcher { | |||
| public: | |||
| explicit DeepUsedGraphSearcher(const IncludeFunc &include) : DeepFirstSearcher(include) {} | |||
| ~DeepUsedGraphSearcher() = default; | |||
| void Visit(const CNodePtr &cnode) { return; } | |||
| void Visit(const ValueNodePtr &vnode) { return; } | |||
| }; | |||
| class DeepLinkedGraphSearcher : public DeepFirstSearcher { | |||
| public: | |||
| explicit DeepLinkedGraphSearcher(const IncludeFunc &include) : DeepFirstSearcher(include) {} | |||
| ~DeepLinkedGraphSearcher() = default; | |||
| void Visit(const CNodePtr &cnode) { return; } | |||
| void Visit(const ValueNodePtr &) {} | |||
| }; | |||
| } // namespace | |||
| std::vector<AnfNodePtr> DeepScopedGraphSearch(const AnfNodePtr &root, const IncludeFunc &include) { | |||
| return DeepScopedGraphSearcher(include).Search(root); | |||
| } | |||
| std::vector<AnfNodePtr> DeepUsedGraphSearch(const AnfNodePtr &root, const IncludeFunc &include) { | |||
| return DeepUsedGraphSearcher(include).Search(root); | |||
| } | |||
| std::vector<AnfNodePtr> DeepLinkedGraphSearch(const AnfNodePtr &root, const IncludeFunc &include) { | |||
| return DeepLinkedGraphSearcher(include).Search(root); | |||
| } | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,32 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_COMMON_OP_UTILS_H_ | |||
| #define MINDSPORE_LITE_COMMON_OP_UTILS_H_ | |||
| #include <functional> | |||
| #include <string> | |||
| #include "schema/model_generated.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| inline schema::PrimitiveType GetOpType(const schema::CNode &opDef) { return opDef.primitive()->value_type(); } | |||
| inline std::string GetOpTypeName(const schema::CNode &opDef) { return schema::EnumNamePrimitiveType(GetOpType(opDef)); } | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_COMMON_OP_UTILS_H_ | |||
| @@ -0,0 +1,262 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifdef __ANDROID__ | |||
| #include <sys/auxv.h> | |||
| #endif | |||
| #include "src/common/utils.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| std::vector<std::string> StringSplit(std::string str, const std::string& pattern) { | |||
| std::vector<std::string> result; | |||
| if (str.empty()) { | |||
| return result; | |||
| } | |||
| std::string::size_type pos; | |||
| str += pattern; | |||
| auto size = str.size(); | |||
| for (size_t i = 0; i < size; i++) { | |||
| pos = str.find(pattern, i); | |||
| if (pos < size) { | |||
| std::string s = str.substr(i, pos - i); | |||
| result.push_back(s); | |||
| i = pos + pattern.size() - 1; | |||
| } | |||
| } | |||
| return result; | |||
| } | |||
| uint64_t GetTimeUs() { | |||
| struct timespec ts = {0, 0}; | |||
| if (clock_gettime(CLOCK_MONOTONIC, &ts) != 0) { | |||
| return 0; | |||
| } | |||
| // USECS_IN_SEC *NSECS_IN_USEC; | |||
| uint64_t retval = static_cast<uint64_t>((ts.tv_sec * USEC) + (ts.tv_nsec / MSEC)); | |||
| return retval; | |||
| } | |||
| static const unsigned int FP32_BIT_SIZE = 32; | |||
| static const unsigned int FP32_EXPONENT_BIAS = 127; | |||
| static const unsigned int FP32_SIGNIFICAND = 23; | |||
| static const unsigned int FP32_EXPONENT_MAX = 255; | |||
| static const unsigned int FP16_BIT_SIZE = 16; | |||
| static const unsigned int FP16_EXPONENT_BIAS = 15; | |||
| static const unsigned int FP16_SIGNIFICAND = 10; | |||
| static const int FP16_EXPONENT_MAX = 30; | |||
| static const int FP16_EXPONENT_MIN = -10; | |||
| // fp16.c | |||
| float ShortToFloat32(int16_t srcValue) { | |||
| uint16_t expHalf16 = srcValue & 0x7C00; | |||
| int exp1 = static_cast<int>(expHalf16); | |||
| uint16_t mantissa16 = srcValue & 0x03FF; | |||
| int mantissa1 = static_cast<int>(mantissa16); | |||
| int sign = static_cast<int>(srcValue & 0x8000); | |||
| sign = sign << FP16_BIT_SIZE; | |||
| // nan or inf | |||
| if (expHalf16 == 0x7C00) { | |||
| // nan | |||
| if (mantissa16 > 0) { | |||
| int res = (0x7FC00000 | sign); | |||
| int *iRes = &res; | |||
| auto fres = static_cast<float>(*iRes); | |||
| return fres; | |||
| } | |||
| // inf | |||
| int res = (0x7F800000 | sign); | |||
| int *iRes = &res; | |||
| auto fres = static_cast<float>(*iRes); | |||
| return fres; | |||
| } | |||
| if (expHalf16 != 0) { | |||
| exp1 += ((FP32_EXPONENT_BIAS - FP16_EXPONENT_BIAS) << FP16_SIGNIFICAND); // exponents converted to float32 bias | |||
| int res = (exp1 | mantissa1); | |||
| res = res << (FP32_SIGNIFICAND - FP16_SIGNIFICAND); | |||
| res = (res | sign); | |||
| int *iRes = &res; | |||
| auto fres = static_cast<float>(*iRes); | |||
| return fres; | |||
| } | |||
| int xmm1 = exp1 > (1 << FP16_SIGNIFICAND) ? exp1 : (1 << FP16_SIGNIFICAND); | |||
| xmm1 = (xmm1 << (FP32_SIGNIFICAND - FP16_SIGNIFICAND)); | |||
| xmm1 += ((FP32_EXPONENT_BIAS - FP16_EXPONENT_BIAS - FP16_SIGNIFICAND) | |||
| << FP32_SIGNIFICAND); // add the bias difference to xmm1 | |||
| xmm1 = xmm1 | sign; // Combine with the sign mask | |||
| auto res = static_cast<float>(mantissa1); // Convert mantissa to float | |||
| int *ixmm1 = nullptr; | |||
| ixmm1 = &xmm1; | |||
| res *= static_cast<float>(*ixmm1); | |||
| return res; | |||
| } | |||
| // __gnu_f2h_ieee | |||
| int16_t Float32ToShort(float srcValue) { | |||
| float *psrcValue = nullptr; | |||
| psrcValue = &srcValue; | |||
| auto srcValueBit = static_cast<unsigned int>(*psrcValue); | |||
| int sign = srcValueBit >> (FP32_BIT_SIZE - 1); | |||
| int mantissa = srcValueBit & 0x007FFFFF; | |||
| // exponent | |||
| int exp = ((srcValueBit & 0x7F800000) >> FP32_SIGNIFICAND) + FP16_EXPONENT_BIAS - FP32_EXPONENT_BIAS; | |||
| int16_t res; | |||
| if (exp > 0 && exp < FP16_EXPONENT_MAX) { | |||
| // use rte rounding mode, round the significand, combine sign, exponent and significand into a short. | |||
| res = (sign << (FP16_BIT_SIZE - 1)) | (exp << FP16_SIGNIFICAND) | | |||
| ((mantissa + 0x00001000) >> (FP32_SIGNIFICAND - FP16_SIGNIFICAND)); | |||
| } else if (srcValueBit == 0) { | |||
| res = 0; | |||
| } else { | |||
| if (exp <= 0) { | |||
| if (exp < FP16_EXPONENT_MIN) { | |||
| // value is less than min half float point | |||
| res = 0; | |||
| } else { | |||
| // normalized single, magnitude is less than min normal half float point. | |||
| mantissa = (mantissa | 0x00800000) >> (1 - exp); | |||
| // round to nearest | |||
| if ((mantissa & 0x00001000) > 0) { | |||
| mantissa = mantissa + 0x00002000; | |||
| } | |||
| // combine sign & mantissa (exp is zero to get denormalized number) | |||
| res = (sign << FP16_EXPONENT_BIAS) | (mantissa >> (FP32_SIGNIFICAND - FP16_SIGNIFICAND)); | |||
| } | |||
| } else if (exp == (FP32_EXPONENT_MAX - FP32_EXPONENT_BIAS + FP16_EXPONENT_BIAS)) { | |||
| if (mantissa == 0) { | |||
| // input float is infinity, return infinity half | |||
| res = (sign << FP16_EXPONENT_BIAS) | 0x7C00; | |||
| } else { | |||
| // input float is NaN, return half NaN | |||
| res = (sign << FP16_EXPONENT_BIAS) | 0x7C00 | (mantissa >> (FP32_SIGNIFICAND - FP16_SIGNIFICAND)); | |||
| } | |||
| } else { | |||
| // exp > 0, normalized single, round to nearest | |||
| if ((mantissa & 0x00001000) > 0) { | |||
| mantissa = mantissa + 0x00002000; | |||
| if ((mantissa & 0x00800000) > 0) { | |||
| mantissa = 0; | |||
| exp = exp + 1; | |||
| } | |||
| } | |||
| if (exp > FP16_EXPONENT_MAX) { | |||
| // exponent overflow - return infinity half | |||
| res = (sign << FP16_EXPONENT_BIAS) | 0x7C00; | |||
| } else { | |||
| // combine sign, exp and mantissa into normalized half | |||
| res = (sign << FP16_EXPONENT_BIAS) | (exp << FP16_SIGNIFICAND) | | |||
| (mantissa >> (FP32_SIGNIFICAND - FP16_SIGNIFICAND)); | |||
| } | |||
| } | |||
| } | |||
| return res; | |||
| } | |||
| std::string Remove(const std::string &from, const std::string &subStr, Mode mode) { | |||
| std::string result = from; | |||
| if (mode == PREFIX) { | |||
| if (from.substr(0, subStr.length()) == subStr) { | |||
| result = from.substr(subStr.size()); | |||
| } | |||
| } else if (mode == SUFFIX) { | |||
| if (from.rfind(subStr) == from.size() - subStr.size()) { | |||
| result = from.substr(0, from.size() - subStr.size()); | |||
| } | |||
| } else { | |||
| size_t index; | |||
| while ((index = result.find(subStr)) != std::string::npos) { | |||
| result = result.erase(index, subStr.size()); | |||
| } | |||
| } | |||
| return result; | |||
| } | |||
| std::vector<std::string> StrSplit(const std::string &str, const std::string &pattern) { | |||
| std::string::size_type pos; | |||
| std::vector<std::string> result; | |||
| std::string tmpStr(str + pattern); | |||
| std::string::size_type size = tmpStr.size(); | |||
| for (std::string::size_type i = 0; i < size; i++) { | |||
| pos = tmpStr.find(pattern, i); | |||
| if (pos < size) { | |||
| std::string s = tmpStr.substr(i, pos - i); | |||
| result.push_back(s); | |||
| i = pos + pattern.size() - 1; | |||
| } | |||
| } | |||
| return result; | |||
| } | |||
| std::vector<std::string> Tokenize(const std::string &src, const std::string &delimiters, | |||
| const Option<size_t> &maxTokenNum) { | |||
| if (maxTokenNum.IsSome() && maxTokenNum.Get() == 0) { | |||
| return {}; | |||
| } | |||
| std::vector<std::string> tokens; | |||
| size_t offset = 0; | |||
| while (true) { | |||
| size_t nonDelimiter = src.find_first_not_of(delimiters, offset); | |||
| if (nonDelimiter == std::string::npos) { | |||
| break; | |||
| } | |||
| size_t delimiter = src.find_first_of(delimiters, nonDelimiter); | |||
| if (delimiter == std::string::npos || (maxTokenNum.IsSome() && tokens.size() == maxTokenNum.Get() - 1)) { | |||
| tokens.push_back(src.substr(nonDelimiter)); | |||
| break; | |||
| } | |||
| tokens.push_back(src.substr(nonDelimiter, delimiter - nonDelimiter)); | |||
| offset = delimiter; | |||
| } | |||
| return tokens; | |||
| } | |||
| void ShortToFloat32(const int16_t *srcdata, float *dstdata, size_t elementSize) { | |||
| MS_ASSERT(srcdata != nullptr); | |||
| MS_ASSERT(dstdata != nullptr); | |||
| for (size_t i = 0; i < elementSize; i++) { | |||
| dstdata[i] = ShortToFloat32(srcdata[i]); | |||
| } | |||
| } | |||
| void Float32ToShort(const float *srcdata, int16_t *dstdata, size_t elementSize) { | |||
| MS_ASSERT(srcdata != nullptr); | |||
| MS_ASSERT(dstdata != nullptr); | |||
| for (size_t i = 0; i < elementSize; i++) { | |||
| dstdata[i] = Float32ToShort(srcdata[i]); | |||
| } | |||
| } | |||
| #if defined(__ANDROID__) | |||
| uint32_t getHwCap(int hwcap_type) { | |||
| uint32_t ret = getauxval(hwcap_type); | |||
| return ret; | |||
| } | |||
| #endif | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,193 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_COMMON_UTILS_H_ | |||
| #define MINDSPORE_LITE_COMMON_UTILS_H_ | |||
| #include <stdint.h> | |||
| #include <ctime> | |||
| #include <cstdint> | |||
| #include <vector> | |||
| #include <set> | |||
| #include <string> | |||
| #include <utility> | |||
| #include "utils/log_adapter.h" | |||
| #include "tools/common/option.h" | |||
| #include "include/errorcode.h" | |||
| namespace mindspore { | |||
| namespace lite { | |||
| const int USEC = 1000000; | |||
| const int MSEC = 1000; | |||
| std::vector<std::string> StringSplit(std::string str, const std::string& pattern); | |||
| uint64_t GetTimeUs(void); | |||
| int16_t Float32ToShort(float srcValue); | |||
| float ShortToFloat32(int16_t srcValue); | |||
| void ShortToFloat32(const int16_t *srcdata, float *dstdata, size_t elementSize); | |||
| void Float32ToShort(const float *srcdata, int16_t *dstdata, size_t elementSize); | |||
| #if defined(__arm__) || defined(__aarch64__) | |||
| uint32_t getHwCap(int hwcap_type); | |||
| #endif | |||
| template <typename T> | |||
| bool IsContain(const std::vector<T> &vec, T element) { | |||
| for (auto iter = vec.begin(); iter != vec.end(); iter++) { | |||
| if (*iter == element) { | |||
| return true; | |||
| } | |||
| } | |||
| return false; | |||
| } | |||
| template <typename T> | |||
| bool VectorErase(std::vector<T> *vec, T element) { | |||
| bool ret = false; | |||
| for (auto iter = vec->begin(); iter != vec->end();) { | |||
| if (*iter == element) { | |||
| iter = vec->erase(iter); | |||
| ret = true; | |||
| } else { | |||
| iter++; | |||
| } | |||
| } | |||
| return ret; | |||
| } | |||
| template <typename T> | |||
| bool VectorReplace(std::vector<T> *vec, T srcElement, T dstElement) { | |||
| bool ret = false; | |||
| for (auto iter = vec->begin(); iter != vec->end(); iter++) { | |||
| if (*iter == srcElement) { | |||
| if (!IsContain(*vec, dstElement)) { | |||
| *iter = std::move(dstElement); | |||
| } else { | |||
| vec->erase(iter); | |||
| } | |||
| ret = true; | |||
| break; | |||
| } | |||
| } | |||
| return ret; | |||
| } | |||
| const char WHITESPACE[] = "\t\n\v\f\r "; | |||
| const char STR_TRUE[] = "true"; | |||
| const char STR_FALSE[] = "false"; | |||
| template <typename T> | |||
| Option<std::string> ToString(T t) { | |||
| std::ostringstream out; | |||
| out << t; | |||
| if (!out.good()) { | |||
| return Option<std::string>(None()); | |||
| } | |||
| return Option<std::string>(out.str()); | |||
| } | |||
| template <> | |||
| inline Option<std::string> ToString(bool value) { | |||
| return value ? Option<std::string>(STR_TRUE) : Option<std::string>(STR_FALSE); | |||
| } | |||
| // get the file name from a given path | |||
| // for example: "/usr/bin", we will get "bin" | |||
| inline std::string GetFileName(const std::string &path) { | |||
| char delim = '/'; | |||
| size_t i = path.rfind(delim, path.length()); | |||
| if (i != std::string::npos) { | |||
| return (path.substr(i + 1, path.length() - i)); | |||
| } | |||
| return ""; | |||
| } | |||
| // trim the white space character in a string | |||
| // see also: macro WHITESPACE defined above | |||
| inline void Trim(std::string *input) { | |||
| if (input == nullptr) { | |||
| return; | |||
| } | |||
| if (input->empty()) { | |||
| return; | |||
| } | |||
| input->erase(0, input->find_first_not_of(WHITESPACE)); | |||
| input->erase(input->find_last_not_of(WHITESPACE) + 1); | |||
| } | |||
| // to judge whether a string is starting with prefix | |||
| // for example: "hello world" is starting with "hello" | |||
| inline bool StartsWithPrefix(const std::string &source, const std::string &prefix) { | |||
| if (source.length() < prefix.length()) { | |||
| return false; | |||
| } | |||
| return (source.compare(0, prefix.length(), prefix) == 0); | |||
| } | |||
| // split string | |||
| std::vector<std::string> StrSplit(const std::string &str, const std::string &pattern); | |||
| // tokenize string | |||
| std::vector<std::string> Tokenize(const std::string &src, const std::string &delimiters, | |||
| const Option<size_t> &maxTokenNum = Option<size_t>(None())); | |||
| enum Mode { PREFIX, SUFFIX, ANY }; | |||
| // remove redundant charactor | |||
| std::string Remove(const std::string &from, const std::string &subStr, Mode mode = ANY); | |||
| template <typename T> | |||
| inline Option<T> GenericParseValue(const std::string &value) { | |||
| T ret; | |||
| std::istringstream input(value); | |||
| input >> ret; | |||
| if (input && input.eof()) { | |||
| return Option<T>(ret); | |||
| } | |||
| return Option<T>(None()); | |||
| } | |||
| template <> | |||
| inline Option<std::string> GenericParseValue(const std::string &value) { | |||
| return Option<std::string>(value); | |||
| } | |||
| template <> | |||
| inline Option<bool> GenericParseValue(const std::string &value) { | |||
| if (value == "true") { | |||
| return Option<bool>(true); | |||
| } else if (value == "false") { | |||
| return Option<bool>(false); | |||
| } | |||
| return Option<bool>(None()); | |||
| } | |||
| } // namespace lite | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_COMMON_UTILS_H_ | |||
| @@ -0,0 +1,31 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "include/context.h" | |||
| #include "src/runtime/allocator.h" | |||
| namespace mindspore::lite { | |||
| Context::Context() { allocator = Allocator::Create(); } | |||
| Context::~Context() = default; | |||
| Context::Context(int threadNum, std::shared_ptr<Allocator> allocator, DeviceContext deviceCtx) { | |||
| this->allocator = std::move(allocator); | |||
| this->threadNum = threadNum; | |||
| this->deviceCtx = std::move(deviceCtx); | |||
| } | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,124 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "mindspore/lite/src/executor.h" | |||
| #include "src/runtime/kernel/arm/opclib/pack.h" | |||
| #include "include/errorcode.h" | |||
| namespace mindspore::lite { | |||
| int Executor::Run(std::vector<tensor::Tensor *> &inputs, std::vector<tensor::Tensor *> &outputs, | |||
| std::vector<kernel::LiteKernel *> &kernels, Allocator *allocator, | |||
| const kernel::KernelCallBack &before, const kernel::KernelCallBack &after) { | |||
| MS_ASSERT(nullptr != allocator); | |||
| for (auto &inTensor : inputs) { | |||
| if (inTensor == nullptr) { | |||
| MS_LOG(ERROR) << "Graph input tensor is nullptr"; | |||
| return RET_ERROR; | |||
| } | |||
| if (inTensor->GetFormat() != schema::Format_NHWC) { | |||
| MS_LOG(ERROR) << "Model input tensor should be NHWC"; | |||
| return RET_ERROR; | |||
| } | |||
| } | |||
| kernel::LiteKernelUtil::InitTensorRefCount(kernels); | |||
| for (auto *kernel : kernels) { | |||
| MS_ASSERT(nullptr != kernel); | |||
| auto &outputs = kernel->GetOutputs(); | |||
| for (auto *output : outputs) { | |||
| MS_ASSERT(nullptr != output); | |||
| output->MallocData(allocator); | |||
| } | |||
| kernel::CallBackParam callbackParam; | |||
| callbackParam.name_callback_aram = kernel->Name(); | |||
| if (before != nullptr) { | |||
| if (!before(kernel->GetInputs(), kernel->GetOutputs(), callbackParam)) { | |||
| MS_LOG(ERROR) << "run kernel before_callback failed, name: " << kernel->Name(); | |||
| } | |||
| } | |||
| auto ret = kernel->Run(); | |||
| if (0 != ret) { | |||
| MS_LOG(ERROR) << "run kernel failed, name: " << kernel->Name(); | |||
| return ret; | |||
| } | |||
| if (after != nullptr) { | |||
| if (!after(kernel->GetInputs(), kernel->GetOutputs(), callbackParam)) { | |||
| MS_LOG(ERROR) << "run kernel after_callback failed, name: " << kernel->Name(); | |||
| } | |||
| } | |||
| for (auto input_kernel : kernel->GetInKernels()) { | |||
| MS_EXCEPTION_IF_NULL(input_kernel); | |||
| ret = input_kernel->DecOutTensorRefCount(allocator); | |||
| if (0 != ret) { | |||
| MS_LOG(WARNING) << "DecOutTensorRefCount for kernel" << kernel->Name() << " failed"; | |||
| } | |||
| } | |||
| } | |||
| return RET_OK; | |||
| } | |||
| int Executor::TransformTensorLayout(tensor::Tensor *tensor, schema::Format dst_format, Allocator *allocator) { | |||
| MS_ASSERT(nullptr != tensor); | |||
| MS_ASSERT(nullptr != allocator); | |||
| MS_ASSERT(4 == tensor->shape().size()); | |||
| auto data_type = tensor->data_type(); | |||
| switch (data_type) { | |||
| case kNumberTypeInt8: | |||
| return TransformTensorLayoutUint8(tensor, dst_format, allocator); | |||
| case kNumberTypeFloat32: | |||
| return TransformTensorLayoutFp32(tensor, dst_format, allocator); | |||
| } | |||
| return RET_OK; | |||
| } | |||
| int Executor::TransformTensorLayoutFp32(tensor::Tensor *tensor, schema::Format dst_format, Allocator *allocator) { | |||
| MS_ASSERT(nullptr != tensor); | |||
| MS_ASSERT(nullptr != allocator); | |||
| MS_ASSERT(4 == tensor->shape().size()); | |||
| auto src_format = tensor->GetFormat(); | |||
| if (src_format == schema::Format_NC4HW4 && dst_format == schema::Format_NHWC) { | |||
| auto *src_data = tensor->Data(); | |||
| auto *dst_data = allocator->Malloc(tensor->Size()); | |||
| if (dst_data == nullptr) { | |||
| MS_LOG(ERROR) << "Malloc data failed"; | |||
| return RET_ERROR; | |||
| } | |||
| PackNC4HW4ToNHWCFp32(src_data, dst_data, tensor->Batch(), tensor->Height() * tensor->Width(), tensor->Channel()); | |||
| tensor->SetData(dst_data); | |||
| tensor->SetFormat(dst_format); | |||
| allocator->Free(src_data); | |||
| return RET_OK; | |||
| } else { | |||
| MS_LOG(ERROR) << "Unsupport layout transform: " << schema::EnumNameFormat(tensor->GetFormat()) << " to " | |||
| << schema::EnumNameFormat(dst_format) << " in float32"; | |||
| return RET_ERROR; | |||
| } | |||
| } | |||
| int Executor::TransformTensorLayoutUint8(tensor::Tensor *tensor, schema::Format dst_format, Allocator *allocator) { | |||
| MS_ASSERT(nullptr != tensor); | |||
| MS_ASSERT(nullptr != allocator); | |||
| MS_ASSERT(4 == tensor->shape().size()); | |||
| // auto src_format = tensor->GetFormat(); | |||
| // todo | |||
| MS_LOG(ERROR) << "Unsupport layout transform: " << schema::EnumNameFormat(tensor->GetFormat()) << " to " | |||
| << schema::EnumNameFormat(dst_format) << " in uint8"; | |||
| return RET_ERROR; | |||
| } | |||
| } // namespace mindspore::lite | |||
| @@ -0,0 +1,48 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_EXECUTOR_H_ | |||
| #define MINDSPORE_LITE_SRC_EXECUTOR_H_ | |||
| #include <vector> | |||
| #include "src/runtime/allocator.h" | |||
| #include "src/lite_kernel.h" | |||
| namespace mindspore::lite { | |||
| class Executor { | |||
| public: | |||
| Executor() = default; | |||
| int Prepare(std::vector<kernel::LiteKernel *> &kernels) { return 0; } | |||
| int Run(std::vector<tensor::Tensor *> &inputs, std::vector<tensor::Tensor *> &outputs, | |||
| std::vector<kernel::LiteKernel *> &kernels, Allocator *allocator = nullptr, | |||
| const kernel::KernelCallBack &before = nullptr, const kernel::KernelCallBack &after = nullptr); | |||
| protected: | |||
| int TransformTensorLayoutFp32(tensor::Tensor *tensor, schema::Format dst_format, Allocator *allocator = nullptr); | |||
| int TransformTensorLayoutUint8(tensor::Tensor *tensor, schema::Format dst_format, Allocator *allocator = nullptr); | |||
| int TransformTensorLayout(tensor::Tensor *tensor, schema::Format dst_format, Allocator *allocator = nullptr); | |||
| protected: | |||
| Context *context = nullptr; | |||
| }; | |||
| } // namespace mindspore::lite | |||
| #endif | |||
| @@ -0,0 +1,68 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #include "src/gllo/common/node_pass.h" | |||
| #include <unordered_set> | |||
| #include <deque> | |||
| #include <algorithm> | |||
| #include "ir/anf.h" | |||
| #include "ir/func_graph.h" | |||
| #include "ir/manager.h" | |||
| namespace mindspore { | |||
| namespace opt { | |||
| bool NodePass::Run(const FuncGraphPtr &func_graph) { | |||
| MS_EXCEPTION_IF_NULL(func_graph); | |||
| FuncGraphManagerPtr manager = func_graph->manager(); | |||
| MS_EXCEPTION_IF_NULL(manager); | |||
| manager->AddFuncGraph(func_graph); | |||
| std::unordered_set<AnfNodePtr> seen_node; | |||
| std::deque<AnfNodePtr> todo{func_graph->output()}; | |||
| bool changes = false; | |||
| while (!todo.empty()) { | |||
| AnfNodePtr node = todo.front(); | |||
| todo.pop_front(); | |||
| if (seen_node.count(node) > 0 || !manager->all_nodes().contains(node)) { | |||
| continue; | |||
| } | |||
| (void)seen_node.insert(node); | |||
| AnfNodePtr new_node = Run(func_graph, node); | |||
| bool change = (new_node != nullptr); | |||
| if (new_node != nullptr && new_node != node) { | |||
| (void)manager->Replace(node, new_node); | |||
| (void)seen_node.erase(node); | |||
| } else if (new_node == nullptr) { | |||
| new_node = node; | |||
| } | |||
| if (new_node && IsValueNode<FuncGraph>(new_node)) { | |||
| auto const_func_graph = GetValueNode<FuncGraphPtr>(new_node); | |||
| MS_EXCEPTION_IF_NULL(const_func_graph); | |||
| todo.push_back(const_func_graph->output()); | |||
| } else if (new_node && new_node->isa<CNode>()) { | |||
| auto cnode = new_node->cast<CNodePtr>(); | |||
| MS_EXCEPTION_IF_NULL(cnode); | |||
| auto inputs = cnode->inputs(); | |||
| (void)todo.insert(todo.end(), inputs.begin(), inputs.end()); | |||
| } | |||
| changes = changes || change; | |||
| } | |||
| return changes; | |||
| } | |||
| } // namespace opt | |||
| } // namespace mindspore | |||
| @@ -0,0 +1,36 @@ | |||
| /** | |||
| * Copyright 2020 Huawei Technologies Co., Ltd | |||
| * | |||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||
| * you may not use this file except in compliance with the License. | |||
| * You may obtain a copy of the License at | |||
| * | |||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||
| * | |||
| * Unless required by applicable law or agreed to in writing, software | |||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||
| * See the License for the specific language governing permissions and | |||
| * limitations under the License. | |||
| */ | |||
| #ifndef MINDSPORE_LITE_SRC_PASS_COMMON_NODE_PASS_H_ | |||
| #define MINDSPORE_LITE_SRC_PASS_COMMON_NODE_PASS_H_ | |||
| #include <string> | |||
| #include <memory> | |||
| #include "src/gllo/common/pass.h" | |||
| namespace mindspore { | |||
| namespace opt { | |||
| // @brief ANF Node level optimization base pass | |||
| class NodePass : public Pass { | |||
| public: | |||
| explicit NodePass(const std::string &name) : Pass(name) {} | |||
| ~NodePass() override = default; | |||
| bool Run(const FuncGraphPtr &func_graph) final; | |||
| virtual AnfNodePtr Run(const FuncGraphPtr &func_graph, const AnfNodePtr &node) = 0; | |||
| }; | |||
| using NodePassPtr = std::shared_ptr<NodePass>; | |||
| } // namespace opt | |||
| } // namespace mindspore | |||
| #endif // MINDSPORE_LITE_SRC_PASS_COMMON_NODE_PASS_H_ | |||