|
@@ -85,14 +85,64 @@ class UtestModelManagerModelManager : public testing::Test { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void LoadStandardModelData(ModelData &data) { |
|
|
void LoadStandardModelData(ModelData &data) { |
|
|
static const std::string STANDARD_MODEL_DATA_PATH = |
|
|
|
|
|
"llt/framework/domi/ut/ome/test/data/standard_partition_model.txt"; |
|
|
|
|
|
proto::ModelDef model_def; |
|
|
|
|
|
ReadProtoFromText(STANDARD_MODEL_DATA_PATH.c_str(), &model_def); |
|
|
|
|
|
|
|
|
|
|
|
data.model_len = model_def.ByteSizeLong(); |
|
|
|
|
|
|
|
|
data.model_len = 512; |
|
|
data.model_data = new uint8_t[data.model_len]; |
|
|
data.model_data = new uint8_t[data.model_len]; |
|
|
model_def.SerializePartialToArray(data.model_data, data.model_len); |
|
|
|
|
|
|
|
|
uint8_t *model_data = reinterpret_cast<uint8_t *>(data.model_data); |
|
|
|
|
|
|
|
|
|
|
|
uint32_t mem_offset = sizeof(ModelFileHeader); |
|
|
|
|
|
ModelPartitionTable *partition_table = reinterpret_cast<ModelPartitionTable *>(model_data + mem_offset); |
|
|
|
|
|
partition_table->num = PARTITION_SIZE; |
|
|
|
|
|
|
|
|
|
|
|
mem_offset += sizeof(ModelPartitionTable) + sizeof(ModelPartitionMemInfo) * 5; |
|
|
|
|
|
{ |
|
|
|
|
|
Model model; |
|
|
|
|
|
ComputeGraphPtr graph = make_shared<ComputeGraph>("default"); |
|
|
|
|
|
model.SetGraph(GraphUtils::CreateGraphFromComputeGraph(graph)); |
|
|
|
|
|
model.SetVersion(123); |
|
|
|
|
|
|
|
|
|
|
|
Buffer buffer; |
|
|
|
|
|
model.Save(buffer); |
|
|
|
|
|
EXPECT_TRUE(mem_offset + buffer.GetSize() < 512); |
|
|
|
|
|
memcpy(model_data + mem_offset, buffer.GetData(), buffer.GetSize()); |
|
|
|
|
|
|
|
|
|
|
|
ModelPartitionMemInfo &partition_info = partition_table->partition[0]; |
|
|
|
|
|
partition_info.type = ModelPartitionType::MODEL_DEF; |
|
|
|
|
|
partition_info.mem_size = buffer.GetSize(); |
|
|
|
|
|
mem_offset += buffer.GetSize(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
ModelPartitionMemInfo &partition_info = partition_table->partition[1]; |
|
|
|
|
|
partition_info.type = ModelPartitionType::WEIGHTS_DATA; |
|
|
|
|
|
partition_info.mem_offset = mem_offset; |
|
|
|
|
|
partition_info.mem_size = 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
ModelPartitionMemInfo &partition_info = partition_table->partition[2]; |
|
|
|
|
|
partition_info.type = ModelPartitionType::TASK_INFO; |
|
|
|
|
|
partition_info.mem_offset = mem_offset; |
|
|
|
|
|
partition_info.mem_size = 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
ModelPartitionMemInfo &partition_info = partition_table->partition[3]; |
|
|
|
|
|
partition_info.type = ModelPartitionType::TBE_KERNELS; |
|
|
|
|
|
partition_info.mem_offset = mem_offset; |
|
|
|
|
|
partition_info.mem_size = 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
ModelPartitionMemInfo &partition_info = partition_table->partition[4]; |
|
|
|
|
|
partition_info.type = ModelPartitionType::CUST_AICPU_KERNELS; |
|
|
|
|
|
partition_info.mem_offset = mem_offset; |
|
|
|
|
|
partition_info.mem_size = 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(mem_offset < 512); |
|
|
|
|
|
ModelFileHeader *header = new (data.model_data) ModelFileHeader; |
|
|
|
|
|
header->length = mem_offset - sizeof(ModelFileHeader); |
|
|
|
|
|
data.model_len = mem_offset; |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
@@ -151,6 +201,17 @@ TEST_F(UtestModelManagerModelManager, case_load_model_encypt_type_unsupported) { |
|
|
EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); |
|
|
EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID); |
|
|
delete[](uint8_t *) data.model_data; |
|
|
delete[](uint8_t *) data.model_data; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST_F(UtestModelManagerModelManager, case_load_model_data_success) { |
|
|
|
|
|
ModelData data; |
|
|
|
|
|
LoadStandardModelData(data); |
|
|
|
|
|
|
|
|
|
|
|
uint32_t model_id = 1; |
|
|
|
|
|
ModelManager mm; |
|
|
|
|
|
EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), SUCCESS); |
|
|
|
|
|
delete[](uint8_t *) data.model_data; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/* |
|
|
/* |
|
|
shared_ptr<ModelListener> LabelCallBack(new DModelListener()); |
|
|
shared_ptr<ModelListener> LabelCallBack(new DModelListener()); |
|
|
|
|
|
|
|
|