|
|
|
@ -151,7 +151,7 @@ Status HybridModelBuilder::BuildForSingleOp() {
|
|
|
|
|
GE_CHK_STATUS_RET(ValidateParams(), "Failed to validate GeRootModel");
|
|
|
|
|
hybrid_model_.model_name_ = ge_root_model_->GetRootGraph()->GetName();
|
|
|
|
|
GELOGI("[%s] Start to build hybrid model.", GetGraphName());
|
|
|
|
|
auto ret = ge_root_model_->GetSubgraphsInstanceNameToModel();
|
|
|
|
|
auto ret = ge_root_model_->GetSubgraphInstanceNameToModel();
|
|
|
|
|
const GeModelPtr ge_model = ret[ge_root_model_->GetRootGraph()->GetName()];
|
|
|
|
|
GE_CHK_STATUS_RET(IndexTaskDefs(ge_root_model_->GetRootGraph(), ge_model),
|
|
|
|
|
"[%s] Failed to index task defs", GetGraphName());
|
|
|
|
@ -977,7 +977,7 @@ Status HybridModelBuilder::InitWeights() {
|
|
|
|
|
|
|
|
|
|
auto &root_model = iter->second;
|
|
|
|
|
const auto &weight_buffer = root_model->GetWeight();
|
|
|
|
|
if (weight_buffer.GetSize == 0) {
|
|
|
|
|
if (weight_buffer.GetSize() == 0) {
|
|
|
|
|
GELOGD("weight is empty");
|
|
|
|
|
return SUCCESS;
|
|
|
|
|
}
|
|
|
|
@ -994,7 +994,7 @@ Status HybridModelBuilder::InitWeights() {
|
|
|
|
|
RT_MEMCPY_HOST_TO_DEVICE));
|
|
|
|
|
|
|
|
|
|
GELOGI("Init weight mem successfully, weight base %p, weight size = %zu",
|
|
|
|
|
weright_base,
|
|
|
|
|
weight_base,
|
|
|
|
|
hybrid_model_.weight_buffer_->GetSize());
|
|
|
|
|
for (auto &node : root_graph->GetDirectNode()) {
|
|
|
|
|
if (node->GetType() != CONSTANT) {
|
|
|
|
@ -1011,7 +1011,7 @@ Status HybridModelBuilder::InitWeights() {
|
|
|
|
|
GE_CHECK_NOTNULL(ge_tensor);
|
|
|
|
|
const GeTensorDesc &tensor_desc = ge_tensor->GetTensorDesc();
|
|
|
|
|
int64_t tensor_size = 0;
|
|
|
|
|
GE_CHK_GRAPH_STATUS_RET(TensorUtils::GetSize(&op_desc->MutableOutputDesc(0), tensor_size),
|
|
|
|
|
GE_CHK_GRAPH_STATUS_RET(TensorUtils::GetSize(*op_desc->MutableOutputDesc(0), tensor_size),
|
|
|
|
|
"[%s] Failed to get tensor size",
|
|
|
|
|
node->GetName().c_str());
|
|
|
|
|
int64_t data_offset = 0;
|
|
|
|
@ -1020,7 +1020,7 @@ Status HybridModelBuilder::InitWeights() {
|
|
|
|
|
node->GetName().c_str());
|
|
|
|
|
GELOGD("[%s] Start to init Constant node [%s], size = %ld, offset = %ld",
|
|
|
|
|
GetGraphName(),
|
|
|
|
|
constant_node->GetName().c_str(),
|
|
|
|
|
node->GetName().c_str(),
|
|
|
|
|
tensor_size,
|
|
|
|
|
data_offset);
|
|
|
|
|
|
|
|
|
@ -1078,7 +1078,7 @@ Status HybridModelBuilder::LoadGeModel(ComputeGraph &sub_graph, const GeModelPtr
|
|
|
|
|
return SUCCESS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Status HybridModelBuilder::IndexTaskDefs(const ComputeGraphPtrs &sub_graph, const GeModelPtr &ge_model) {
|
|
|
|
|
Status HybridModelBuilder::IndexTaskDefs(const ComputeGraphPtr &sub_graph, const GeModelPtr &ge_model) {
|
|
|
|
|
// index task defs
|
|
|
|
|
GELOGD("To index tasks for subgraph: %s", sub_graph->GetName().c_str());
|
|
|
|
|
std::unordered_map<int64_t, NodePtr> node_map;
|
|
|
|
|