mirror of
https://github.com/PaddlePaddle/FastDeploy.git
synced 2025-10-17 06:00:59 +08:00
[Backend] Add Huawei Ascend NPU deploy using PaddleLite CANN. (#757)
* Add Huawei Ascend NPU deploy through PaddleLite CANN * Add NNAdapter interface for paddlelite * Modify Huawei Ascend Cmake * Update way for compiling Huawei Ascend NPU deployment * remove UseLiteBackend in UseCANN * Support compile python whlee * Change names of nnadapter API * Add nnadapter pybind and remove useless API * Support Python deployment on Huawei Ascend NPU * Add models suppor for ascend * Add PPOCR rec reszie for ascend * fix conflict for ascend * Rename CANN to Ascend * Rename CANN to Ascend * Improve ascend * fix ascend bug * improve ascend docs * improve ascend docs * improve ascend docs * Improve Ascend * Improve Ascend * Move ascend python demo * Imporve ascend * Improve ascend * Improve ascend * Improve ascend * Improve ascend * Imporve ascend * Imporve ascend * Improve ascend
This commit is contained in:
@@ -283,6 +283,11 @@ void RuntimeOption::UseXpu(int xpu_id,
|
||||
device = Device::XPU;
|
||||
}
|
||||
|
||||
void RuntimeOption::UseAscend(){
|
||||
enable_ascend = true;
|
||||
device = Device::ASCEND;
|
||||
}
|
||||
|
||||
void RuntimeOption::SetExternalStream(void* external_stream) {
|
||||
external_stream_ = external_stream;
|
||||
}
|
||||
@@ -408,6 +413,36 @@ void RuntimeOption::SetLiteSubgraphPartitionPath(
|
||||
nnadapter_subgraph_partition_config_path;
|
||||
}
|
||||
|
||||
void RuntimeOption::SetLiteSubgraphPartitionConfigBuffer(
|
||||
const std::string& nnadapter_subgraph_partition_config_buffer){
|
||||
lite_nnadapter_subgraph_partition_config_buffer = nnadapter_subgraph_partition_config_buffer;
|
||||
}
|
||||
|
||||
void RuntimeOption::SetLiteDeviceNames(const std::vector<std::string>& nnadapter_device_names){
|
||||
lite_nnadapter_device_names = nnadapter_device_names;
|
||||
}
|
||||
|
||||
void RuntimeOption::SetLiteContextProperties(const std::string& nnadapter_context_properties){
|
||||
lite_nnadapter_context_properties = nnadapter_context_properties;
|
||||
}
|
||||
|
||||
void RuntimeOption::SetLiteModelCacheDir(const std::string& nnadapter_model_cache_dir){
|
||||
lite_nnadapter_model_cache_dir = nnadapter_model_cache_dir;
|
||||
}
|
||||
|
||||
|
||||
void RuntimeOption::SetLiteDynamicShapeInfo(
|
||||
const std::map<std::string, std::vector<std::vector<int64_t>>>&
|
||||
nnadapter_dynamic_shape_info){
|
||||
lite_nnadapter_dynamic_shape_info = nnadapter_dynamic_shape_info;
|
||||
}
|
||||
|
||||
void RuntimeOption::SetLiteMixedPrecisionQuantizationConfigPath(
|
||||
const std::string& nnadapter_mixed_precision_quantization_config_path){
|
||||
lite_nnadapter_mixed_precision_quantization_config_path = nnadapter_mixed_precision_quantization_config_path;
|
||||
}
|
||||
|
||||
|
||||
void RuntimeOption::SetTrtInputShape(const std::string& input_name,
|
||||
const std::vector<int32_t>& min_shape,
|
||||
const std::vector<int32_t>& opt_shape,
|
||||
@@ -576,7 +611,7 @@ bool Runtime::Init(const RuntimeOption& _option) {
|
||||
FDINFO << "Runtime initialized with Backend::OPENVINO in "
|
||||
<< Str(option.device) << "." << std::endl;
|
||||
} else if (option.backend == Backend::LITE) {
|
||||
FDASSERT(option.device == Device::CPU || option.device == Device::TIMVX || option.device == Device::XPU,
|
||||
FDASSERT(option.device == Device::CPU || option.device == Device::TIMVX || option.device == Device::XPU || option.device == Device::ASCEND,
|
||||
"Backend::LITE only supports Device::CPU/Device::TIMVX/Device::XPU.");
|
||||
CreateLiteBackend();
|
||||
FDINFO << "Runtime initialized with Backend::LITE in " << Str(option.device)
|
||||
@@ -838,9 +873,15 @@ void Runtime::CreateLiteBackend() {
|
||||
lite_option.enable_fp16 = option.lite_enable_fp16;
|
||||
lite_option.power_mode = static_cast<int>(option.lite_power_mode);
|
||||
lite_option.optimized_model_dir = option.lite_optimized_model_dir;
|
||||
lite_option.nnadapter_subgraph_partition_config_path =
|
||||
option.lite_nnadapter_subgraph_partition_config_path;
|
||||
lite_option.nnadapter_subgraph_partition_config_path = option.lite_nnadapter_subgraph_partition_config_path;
|
||||
lite_option.nnadapter_subgraph_partition_config_buffer = option.lite_nnadapter_subgraph_partition_config_buffer;
|
||||
lite_option.nnadapter_device_names = option.lite_nnadapter_device_names;
|
||||
lite_option.nnadapter_context_properties = option.lite_nnadapter_context_properties;
|
||||
lite_option.nnadapter_model_cache_dir = option.lite_nnadapter_model_cache_dir;
|
||||
lite_option.nnadapter_dynamic_shape_info = option.lite_nnadapter_dynamic_shape_info;
|
||||
lite_option.nnadapter_mixed_precision_quantization_config_path = option.lite_nnadapter_mixed_precision_quantization_config_path;
|
||||
lite_option.enable_timvx = option.enable_timvx;
|
||||
lite_option.enable_ascend = option.enable_ascend;
|
||||
lite_option.enable_xpu = option.enable_xpu;
|
||||
lite_option.device_id = option.device_id;
|
||||
lite_option.xpu_l3_workspace_size = option.xpu_l3_workspace_size;
|
||||
|
Reference in New Issue
Block a user