Browse Source

fix

pull/2049/head
guopeian 3 years ago
parent
commit
8a6a3119a9
4 changed files with 7 additions and 30 deletions
  1. +1
    -4
      ge/single_op/single_op.cc
  2. +4
    -23
      ge/single_op/task/op_task.cc
  3. +1
    -2
      ge/single_op/task/op_task.h
  4. +1
    -1
      ge/single_op/task/tbe_task_builder.cc

+ 1
- 4
ge/single_op/single_op.cc View File

@@ -433,16 +433,13 @@ Status DynamicSingleOp::ExecuteAsync(const vector<GeTensorDesc> &input_desc,
if (!inputs_size.empty()) { if (!inputs_size.empty()) {
StreamResource *stream_resource = SingleOpManager::GetInstance().GetResource(resource_id_, stream_); StreamResource *stream_resource = SingleOpManager::GetInstance().GetResource(resource_id_, stream_);
GE_CHK_STATUS_RET_NOLOG(UpdateInputsBufferAddr(stream_resource, stream_, inputs_size, update_buffers)); GE_CHK_STATUS_RET_NOLOG(UpdateInputsBufferAddr(stream_resource, stream_, inputs_size, update_buffers));
GE_CHK_STATUS_RET_NOLOG(SetHostTensorValue(input_desc, input_buffers));
} }


if (hybrid_model_executor_ != nullptr) { if (hybrid_model_executor_ != nullptr) {
GELOGD("Execute multi-task dynamic single op by hybrid model executor"); GELOGD("Execute multi-task dynamic single op by hybrid model executor");
if (!inputs_size.empty()) {
GE_CHK_STATUS_RET_NOLOG(SetHostTensorValue(input_desc, input_buffers));
}
hybrid::HybridModelExecutor::ExecuteArgs args; hybrid::HybridModelExecutor::ExecuteArgs args;
GE_CHK_STATUS_RET_NOLOG(InitHybridModelArgs(update_buffers, output_buffers, input_desc, args)); GE_CHK_STATUS_RET_NOLOG(InitHybridModelArgs(update_buffers, output_buffers, input_desc, args));

return hybrid_model_executor_->Execute(args); return hybrid_model_executor_->Execute(args);
} }
GE_CHECK_NOTNULL(op_task_); GE_CHECK_NOTNULL(op_task_);


+ 4
- 23
ge/single_op/task/op_task.cc View File

@@ -293,9 +293,6 @@ Status TbeOpTask::UpdateNodeByShape(const vector<GeTensorDesc> &input_desc, cons
} }


Status TbeOpTask::EnableDynamicSupport(const NodePtr &node, void *tiling_buffer, uint32_t max_tiling_size) { Status TbeOpTask::EnableDynamicSupport(const NodePtr &node, void *tiling_buffer, uint32_t max_tiling_size) {
node_ = node;
tiling_buffer_ = tiling_buffer;
max_tiling_size_ = max_tiling_size;
if (tiling_buffer != nullptr) { if (tiling_buffer != nullptr) {
uintptr_t *arg_base = nullptr; uintptr_t *arg_base = nullptr;
size_t arg_num = 0; size_t arg_num = 0;
@@ -313,6 +310,9 @@ Status TbeOpTask::EnableDynamicSupport(const NodePtr &node, void *tiling_buffer,
} }
arg_base[tiling_index] = reinterpret_cast<uintptr_t>(tiling_buffer); arg_base[tiling_index] = reinterpret_cast<uintptr_t>(tiling_buffer);
} }
node_ = node;
tiling_buffer_ = tiling_buffer;
max_tiling_size_ = max_tiling_size;
return SUCCESS; return SUCCESS;
} }


@@ -481,25 +481,6 @@ void TbeOpTask::GetIoAddr(uintptr_t *&arg_base, size_t &arg_count) {
} }
} }


Status AtomicAddrCleanOpTask::EnableDynamicSupport(const NodePtr &node, void *tiling_buffer, uint32_t max_tiling_size) {
node_ = node;
tiling_buffer_ = tiling_buffer;
max_tiling_size_ = max_tiling_size;
if (tiling_buffer != nullptr) {
uintptr_t *arg_base = nullptr;
size_t arg_num = 0;
GetIoAddr(arg_base, arg_num);
uint32_t tiling_index = atomic_output_indices_.size();
if (arg_num == 0 || arg_num < tiling_index) {
GELOGE(ACL_ERROR_GE_INTERNAL_ERROR, "[Check][Size]Tiling index %u, arg number %zu is invalid.",
tiling_index, arg_num);
return ACL_ERROR_GE_INTERNAL_ERROR;
}
arg_base[tiling_index] = reinterpret_cast<uintptr_t>(tiling_buffer);
}
return SUCCESS;
}

Status AtomicAddrCleanOpTask::UpdateNodeByShape(const vector<GeTensorDesc> &input_desc, Status AtomicAddrCleanOpTask::UpdateNodeByShape(const vector<GeTensorDesc> &input_desc,
const vector<GeTensorDesc> &output_desc) { const vector<GeTensorDesc> &output_desc) {
return SUCCESS; return SUCCESS;
@@ -604,7 +585,7 @@ Status AiCpuBaseTask::SetExtInfoAndType(const std::string &kernel_ext_info, uint


int32_t unknown_shape_type_val = 0; int32_t unknown_shape_type_val = 0;
(void) AttrUtils::GetInt(op_desc_, ::ge::ATTR_NAME_UNKNOWN_SHAPE_TYPE, unknown_shape_type_val); (void) AttrUtils::GetInt(op_desc_, ::ge::ATTR_NAME_UNKNOWN_SHAPE_TYPE, unknown_shape_type_val);
GELOGI("Get unknown_type is %d.", unknown_shape_type_val);
GELOGD("Get unknown_type is %d.", unknown_shape_type_val);
unknown_type_ = static_cast<UnknowShapeOpType>(unknown_shape_type_val); unknown_type_ = static_cast<UnknowShapeOpType>(unknown_shape_type_val);


aicpu_ext_handle_.reset(new(std::nothrow) ::ge::hybrid::AicpuExtInfoHandler(op_desc_->GetName(), aicpu_ext_handle_.reset(new(std::nothrow) ::ge::hybrid::AicpuExtInfoHandler(op_desc_->GetName(),


+ 1
- 2
ge/single_op/task/op_task.h View File

@@ -97,7 +97,7 @@ class TbeOpTask : public OpTask {
const void *GetArgs() const; const void *GetArgs() const;
size_t GetArgSize() const; size_t GetArgSize() const;
const std::string &GetStubName() const; const std::string &GetStubName() const;
virtual Status EnableDynamicSupport(const NodePtr &node, void *tiling_buffer, uint32_t max_tiling_size);
Status EnableDynamicSupport(const NodePtr &node, void *tiling_buffer, uint32_t max_tiling_size);
const std::string &GetTaskType() const override; const std::string &GetTaskType() const override;
void SetHandle(void *handle); void SetHandle(void *handle);


@@ -149,7 +149,6 @@ class TbeOpTask : public OpTask {
class AtomicAddrCleanOpTask : public TbeOpTask { class AtomicAddrCleanOpTask : public TbeOpTask {
public: public:
Status InitAtomicAddrCleanIndices(); Status InitAtomicAddrCleanIndices();
Status EnableDynamicSupport(const NodePtr &node, void *tiling_buffer, uint32_t max_tiling_size) override;


private: private:
Status UpdateNodeByShape(const vector<GeTensorDesc> &input_desc, Status UpdateNodeByShape(const vector<GeTensorDesc> &input_desc,


+ 1
- 1
ge/single_op/task/tbe_task_builder.cc View File

@@ -425,7 +425,7 @@ Status TbeTaskBuilder::InitTilingInfo(TbeOpTask &task) {
GELOGD("[%s] Done allocating tiling buffer, size=%ld.", op_desc_->GetName().c_str(), max_size); GELOGD("[%s] Done allocating tiling buffer, size=%ld.", op_desc_->GetName().c_str(), max_size);
} }


GE_CHK_STATUS_RET_NOLOG(task.EnableDynamicSupport(node_, tiling_buffer, static_cast<uint32_t>(max_size)));
task.EnableDynamicSupport(node_, tiling_buffer, static_cast<uint32_t>(max_size));
return SUCCESS; return SUCCESS;
} }




Loading…
Cancel
Save