From 22b028e4090b6ce105b229e5238edf21880a6302 Mon Sep 17 00:00:00 2001 From: zhoufeng Date: Tue, 30 Mar 2021 19:53:46 +0800 Subject: [PATCH] fix run on device bug Signed-off-by: zhoufeng --- mindspore/ccsrc/cxx_api/graph/acl/model_process.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mindspore/ccsrc/cxx_api/graph/acl/model_process.cc b/mindspore/ccsrc/cxx_api/graph/acl/model_process.cc index 9800934571..8de83016cc 100644 --- a/mindspore/ccsrc/cxx_api/graph/acl/model_process.cc +++ b/mindspore/ccsrc/cxx_api/graph/acl/model_process.cc @@ -101,6 +101,10 @@ Status ModelProcess::ConstructTensors(const std::vector &acl_tens aclrtMemcpyKind kind = is_run_on_device_ ? ACL_MEMCPY_HOST_TO_HOST : ACL_MEMCPY_DEVICE_TO_HOST; for (size_t i = 0; i < acl_tensor_list.size(); ++i) { tensor_list->emplace_back(names[i], data_types[i], shapes[i], nullptr, mem_sizes[i]); + if (acl_tensor_list[i].cur_device_data == nullptr) { + // when run on device, cur_device_data is nullptr before first execute + continue; + } auto ret = aclrtMemcpy((*tensor_list)[i].MutableData(), (*tensor_list)[i].DataSize(), acl_tensor_list[i].cur_device_data, acl_tensor_list[i].buffer_size, kind); if (ret != ACL_ERROR_NONE) { @@ -401,7 +405,7 @@ Status ModelProcess::CheckAndInitInput(const std::vector &inputs) { input_buffer = info.cur_device_data; } } else { - input_buffer = const_cast(data); + input_buffer = data; } auto data_buffer = aclCreateDataBuffer(input_buffer, info.buffer_size); if (data_buffer == nullptr) {