!27902 [MS][LITE] add dpico atc adapter compile CI
Merge pull request !27902 from jianghui58/dpico_dev_compile
This commit is contained in:
commit
24e03a68a6
|
@ -535,6 +535,15 @@ else()
|
||||||
DESTINATION ${CONVERTER_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME})
|
DESTINATION ${CONVERTER_ROOT_DIR}/lib COMPONENT ${RUNTIME_COMPONENT_NAME})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(MSLITE_ENABLE_DPICO_ATC_ADAPTER)
|
||||||
|
install(FILES ${TOP_DIR}/mindspore/lite/build/tools/converter/adapter/dpico/libdpico_atc_adapter.so
|
||||||
|
DESTINATION ${CONVERTER_ROOT_DIR}/providers/SD3403 COMPONENT ${RUNTIME_COMPONENT_NAME})
|
||||||
|
if(MSLITE_ENABLE_TOOLS)
|
||||||
|
install(TARGETS ${BECHCHMARK_NAME} RUNTIME DESTINATION ${BENCHMARK_ROOT_DIR}
|
||||||
|
COMPONENT ${RUNTIME_COMPONENT_NAME})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSLITE_ENABLE_RUNTIME_GLOG)
|
if(MSLITE_ENABLE_RUNTIME_GLOG)
|
||||||
install(DIRECTORY ${glog_LIBPATH}/../include/glog/ DESTINATION ${RUNTIME_INC_DIR}/third_party/glog
|
install(DIRECTORY ${glog_LIBPATH}/../include/glog/ DESTINATION ${RUNTIME_INC_DIR}/third_party/glog
|
||||||
COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h")
|
COMPONENT ${RUNTIME_COMPONENT_NAME} FILES_MATCHING PATTERN "*.h")
|
||||||
|
|
|
@ -57,6 +57,9 @@ file(GLOB_RECURSE CONVERTER_SRC RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
../optimizer/*.cc
|
../optimizer/*.cc
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if((NOT WIN32) AND MSLITE_ENABLE_DPICO_ATC_ADAPTER)
|
||||||
|
add_subdirectory(adapter/dpico)
|
||||||
|
endif()
|
||||||
add_subdirectory(../anf_exporter anf_exporter)
|
add_subdirectory(../anf_exporter anf_exporter)
|
||||||
add_subdirectory(parser/caffe)
|
add_subdirectory(parser/caffe)
|
||||||
add_subdirectory(parser/tflite)
|
add_subdirectory(parser/tflite)
|
||||||
|
@ -185,7 +188,9 @@ add_executable(converter_lite
|
||||||
${LITE_SRC}
|
${LITE_SRC}
|
||||||
)
|
)
|
||||||
add_dependencies(converter_lite fbs_src fbs_inner_src)
|
add_dependencies(converter_lite fbs_src fbs_inner_src)
|
||||||
|
if((NOT WIN32) AND MSLITE_ENABLE_DPICO_ATC_ADAPTER)
|
||||||
|
add_dependencies(converter_lite dpico_atc_adapter)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(MSLITE_GPU_BACKEND STREQUAL opencl)
|
if(MSLITE_GPU_BACKEND STREQUAL opencl)
|
||||||
include_directories(${SRC_DIR}/runtime/kernel/opencl)
|
include_directories(${SRC_DIR}/runtime/kernel/opencl)
|
||||||
|
|
|
@ -1,24 +1,24 @@
|
||||||
cmake_minimum_required(VERSION 3.14)
|
cmake_minimum_required(VERSION 3.14)
|
||||||
project(DPICO_CONVERTER)
|
project(DPICO_CONVERTER)
|
||||||
|
|
||||||
__download_pkg(pico_mapper
|
if(DEFINED ENV{HISI_SDK_PATH})
|
||||||
http://mindspore-repo.csi.rnd.huawei.com/mindspore/enterprise/dpico/pico_mapper_1115.tar.gz
|
set(SD3403_ATC_LIB_PATH $ENV{HISI_SDK_PATH}/sd3403_sdk/dpico_atc_adapter)
|
||||||
b7c8ea7f4585cbc629b67a4a6ac1ad98)
|
else()
|
||||||
__download_pkg(protobuf-3.9-for-dpico
|
message(FATAL_ERROR "error, HISI_SDK_PATH env not found")
|
||||||
http://mindspore-repo.csi.rnd.huawei.com/mindspore/enterprise/dpico/protobuf-3.9.0.tar.gz
|
endif()
|
||||||
b5c5a0ba33d301ae51a2f878c17e88be)
|
|
||||||
__download_pkg(opencv-4.2-for-dpico
|
|
||||||
http://mindspore-repo.csi.rnd.huawei.com/mindspore/enterprise/dpico/opencv-4.2.0.tar.gz
|
|
||||||
00d2ff839f74c0314ee28acb120fff9a)
|
|
||||||
__download_pkg(proto-for-dpico
|
|
||||||
http://mindspore-repo.csi.rnd.huawei.com/mindspore/enterprise/dpico/proto1030.tar.gz
|
|
||||||
461563613d3205045ca3008fd43aea63)
|
|
||||||
|
|
||||||
set(PROTOC ${protobuf-3.9-for-dpico_SOURCE_DIR}/bin/protoc)
|
set(OPENCV_PATH ${SD3403_ATC_LIB_PATH}/opencv-4.2.0)
|
||||||
|
set(PROTOBUF_PATH ${SD3403_ATC_LIB_PATH}/protobuf-3.9.0)
|
||||||
|
set(PICO_PROTO_PATH ${SD3403_ATC_LIB_PATH}/pico_proto)
|
||||||
|
set(PICO_MAPPER_PATH ${SD3403_ATC_LIB_PATH}/pico_mapper)
|
||||||
|
|
||||||
|
set(PROTOC ${PROTOBUF_PATH}/bin/protoc)
|
||||||
|
set(PROTO_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/pico_proto)
|
||||||
|
file(MAKE_DIRECTORY ${PROTO_OUTPUT_PATH})
|
||||||
execute_process(COMMAND
|
execute_process(COMMAND
|
||||||
${PROTOC} -I=${proto-for-dpico_SOURCE_DIR} --cpp_out=${proto-for-dpico_SOURCE_DIR} pico_caffe.proto)
|
${PROTOC} -I=${PICO_PROTO_PATH} --cpp_out=${PROTO_OUTPUT_PATH} pico_caffe.proto)
|
||||||
execute_process(COMMAND
|
execute_process(COMMAND
|
||||||
${PROTOC} -I=${TOP_DIR}/third_party/proto/onnx --cpp_out=${proto-for-dpico_SOURCE_DIR} onnx.proto)
|
${PROTOC} -I=${TOP_DIR}/third_party/proto/onnx --cpp_out=${PROTO_OUTPUT_PATH} onnx.proto)
|
||||||
|
|
||||||
file(GLOB_RECURSE DPICO_SRC
|
file(GLOB_RECURSE DPICO_SRC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc
|
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cc
|
||||||
|
@ -29,15 +29,11 @@ file(GLOB_RECURSE DPICO_SRC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/mapper/*.cc
|
${CMAKE_CURRENT_SOURCE_DIR}/mapper/*.cc
|
||||||
)
|
)
|
||||||
|
|
||||||
set(PICO_MAPPER_LIB_PATH ${pico_mapper_SOURCE_DIR}/lib CACHE STRING "dpico mapper lib path")
|
|
||||||
set(OPENCV_4.2.0_LIB_PATH ${opencv-4.2-for-dpico_SOURCE_DIR}/lib CACHE STRING "dpico opencv-4.2.0 lib path")
|
|
||||||
set(PROTOBUF_3.9.0_LIB_PATH ${protobuf-3.9-for-dpico_SOURCE_DIR}/lib CACHE STRING "dpico protobuf-3.9.0 lib path")
|
|
||||||
|
|
||||||
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
|
include_directories(BEFORE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
include_directories(BEFORE ${opencv-4.2-for-dpico_SOURCE_DIR}/include/opencv4)
|
include_directories(BEFORE ${OPENCV_PATH}include/opencv4)
|
||||||
include_directories(BEFORE ${protobuf-3.9-for-dpico_SOURCE_DIR}/include)
|
include_directories(BEFORE ${PROTOBUF_PATH}/include)
|
||||||
include_directories(${pico_mapper_SOURCE_DIR}/include)
|
include_directories(${PICO_MAPPER_PATH}/include)
|
||||||
include_directories(${proto-for-dpico_SOURCE_DIR})
|
include_directories(${PROTO_OUTPUT_PATH})
|
||||||
|
|
||||||
link_directories(${pico_mapper_SOURCE_DIR}/lib)
|
link_directories(${pico_mapper_SOURCE_DIR}/lib)
|
||||||
set_property(SOURCE ${DPICO_SRC} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_LITE)
|
set_property(SOURCE ${DPICO_SRC} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=mindspore::SubModuleId::SM_LITE)
|
||||||
|
@ -45,11 +41,11 @@ set_property(SOURCE ${DPICO_SRC} PROPERTY COMPILE_DEFINITIONS SUBMODULE_ID=minds
|
||||||
add_library(dpico_atc_adapter SHARED ${DPICO_SRC})
|
add_library(dpico_atc_adapter SHARED ${DPICO_SRC})
|
||||||
add_dependencies(dpico_atc_adapter fbs_src fbs_inner_src)
|
add_dependencies(dpico_atc_adapter fbs_src fbs_inner_src)
|
||||||
target_link_libraries(dpico_atc_adapter
|
target_link_libraries(dpico_atc_adapter
|
||||||
pico_mapper_api
|
${PICO_MAPPER_PATH}/lib/libpico_mapper_api.so
|
||||||
${PROTOBUF_3.9.0_LIB_PATH}/libprotobuf.so.3.9.0.0
|
${PROTOBUF_PATH}/lib/libprotobuf.so.3.9.0.0
|
||||||
${OPENCV_4.2.0_LIB_PATH}/libopencv_core.so.4.2
|
${OPENCV_PATH}/lib/libopencv_core.so.4.2
|
||||||
${OPENCV_4.2.0_LIB_PATH}/libopencv_imgcodecs.so.4.2
|
${OPENCV_PATH}/lib/libopencv_imgcodecs.so.4.2
|
||||||
${OPENCV_4.2.0_LIB_PATH}/libopencv_imgproc.so.4.2
|
${OPENCV_PATH}/lib/libopencv_imgproc.so.4.2
|
||||||
stdc++fs)
|
stdc++fs)
|
||||||
|
|
||||||
if((NOT WIN32) AND ${CMAKE_BUILD_TYPE} STREQUAL "Release")
|
if((NOT WIN32) AND ${CMAKE_BUILD_TYPE} STREQUAL "Release")
|
||||||
|
|
|
@ -229,7 +229,7 @@ int DataPreprocessor::GenerateInputBinFromTxt(const std::string &raw_data_path,
|
||||||
status = GenerateInputBin<uint64_t>(preprocessed_line, op_shape, op_name);
|
status = GenerateInputBin<uint64_t>(preprocessed_line, op_shape, op_name);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
MS_LOG(ERROR) << "unsupported data type " << TypeIdToString(type_id);
|
MS_LOG(ERROR) << "unsupported data type " << dpico::TypeIdToString(type_id);
|
||||||
status = RET_ERROR;
|
status = RET_ERROR;
|
||||||
}
|
}
|
||||||
if (status != RET_OK) {
|
if (status != RET_OK) {
|
||||||
|
|
|
@ -283,7 +283,7 @@ STATUS DpicoPass::MarkNodes(const api::FuncGraphPtr &func_graph) {
|
||||||
primitive->AddAttr(kIsMapperSupported, MakeValue(is_supported));
|
primitive->AddAttr(kIsMapperSupported, MakeValue(is_supported));
|
||||||
}
|
}
|
||||||
#ifdef Debug
|
#ifdef Debug
|
||||||
PrintUnsupportedOps();
|
PrintUnsupportedOps(unsupported_ops, unsupported_ops_size, func_graph);
|
||||||
#endif
|
#endif
|
||||||
return RET_OK;
|
return RET_OK;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,24 +20,9 @@
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include "api/ir/func_graph_manager.h"
|
||||||
|
|
||||||
namespace mindspore {
|
namespace mindspore {
|
||||||
class AnfNode;
|
|
||||||
using AnfNodePtr = std::shared_ptr<AnfNode>;
|
|
||||||
using AnfNodePtrList = std::vector<AnfNodePtr>;
|
|
||||||
|
|
||||||
class CNode;
|
|
||||||
using CNodePtr = std::shared_ptr<CNode>;
|
|
||||||
using CNodePtrList = std::vector<CNodePtr>;
|
|
||||||
|
|
||||||
namespace api {
|
|
||||||
class FuncGraph;
|
|
||||||
using FuncGraphPtr = std::shared_ptr<FuncGraph>;
|
|
||||||
|
|
||||||
class FuncGraphManager;
|
|
||||||
using FuncGraphManagerPtr = std::shared_ptr<FuncGraphManager>;
|
|
||||||
} // namespace api
|
|
||||||
|
|
||||||
namespace dpico {
|
namespace dpico {
|
||||||
struct Subgraph;
|
struct Subgraph;
|
||||||
struct GraphSplitInfo;
|
struct GraphSplitInfo;
|
||||||
|
|
|
@ -127,7 +127,7 @@ std::string GetInputTypeStr(const AnfNodePtrList &subgraph_inputs,
|
||||||
}
|
}
|
||||||
std::string data_type;
|
std::string data_type;
|
||||||
if (kMapperSupportedTypes.find(type_id) == kMapperSupportedTypes.end()) {
|
if (kMapperSupportedTypes.find(type_id) == kMapperSupportedTypes.end()) {
|
||||||
MS_LOG(WARNING) << node_name << "'s data type " << TypeIdToString(type_id)
|
MS_LOG(WARNING) << node_name << "'s data type " << dpico::TypeIdToString(type_id)
|
||||||
<< " is unsupported by dpico, will set it to FP32";
|
<< " is unsupported by dpico, will set it to FP32";
|
||||||
data_type = "FP32";
|
data_type = "FP32";
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue