| @@ -844,9 +844,12 @@ Status GeGenerator::BuildSingleOpModel(OpDescPtr &op_desc, const vector<GeTensor | |||
| * @param [in] vector<GeTensor> &inputs: Operator input data description information. | |||
| * @param [in] vector<GeTensor> &outputs: Operator output data description information. | |||
| * @param [in] engine_type: specific engine. | |||
| * @param [in] compile_flag: op build flag, compile flag by acl | |||
| * @param [out] ModelBufferData &Model_buff: Model_buff: model buffer of the op. | |||
| * @return SUCCESS handle successfully / others handle failed | |||
| */ | |||
| // old process will be deleted | |||
| Status GeGenerator::BuildSingleOpModel(OpDescPtr &op_desc, const vector<GeTensor> &inputs, | |||
| const vector<GeTensor> &outputs, OpEngineType engine_type, | |||
| ModelBufferData &model_buff) { | |||
| @@ -857,6 +860,12 @@ Status GeGenerator::BuildSingleOpModel(OpDescPtr &op_desc, const vector<GeTensor | |||
| return status; | |||
| } | |||
| Status GeGenerator::BuildSingleOpModel(OpDescPtr &op_desc, const vector<GeTensor> &inputs, | |||
| const vector<GeTensor> &outputs, OpEngineType engine_type, int32_t compile_flag, | |||
| ModelBufferData &model_buff) { | |||
| return SUCCESS; | |||
| } | |||
| Status GeGenerator::BuildSingleOpGraph(OpDescPtr &op_desc, const vector<GeTensor> &inputs, | |||
| const vector<GeTensor> &outputs, std::string graph_name, Graph &graph) { | |||
| ge::ComputeGraphPtr compute_graph = MakeShared<ComputeGraph>(graph_name); | |||
| @@ -110,6 +110,7 @@ const char *const SAVE_ORIGINAL_MODEL = "ge.saveOriginalModel"; | |||
| const char *const ORIGINAL_MODEL_FILE = "ge.originalModelFile"; | |||
| const char *const INPUT_FP16_NODES = "ge.INPUT_NODES_SET_FP16"; | |||
| const char *const OP_DEBUG_LEVEL = "ge.opDebugLevel"; | |||
| const char *const PERFORMANCE_MODE = "ge.performance_mode"; | |||
| } // namespace configure_option | |||
| // Configure stream num by Session constructor options param, | |||
| // its value should be int32_t type, default value is "1" | |||
| @@ -314,6 +315,11 @@ const std::string HCOM_MULTI_MODE = "ge.hcomMultiMode"; | |||
| // atc and ir option | |||
| const char *const INPUT_SHAPE_RANGE = "input_shape_range"; | |||
| // Configure express high compile performance or high execute performance | |||
| // normal: no need to compile, used saved .o files directly | |||
| // high: need to recompile, high execute performance mode | |||
| const std::string PERFORMANCE_MODE = "ge.performance_mode"; | |||
| // Graph run mode | |||
| enum GraphRunMode { PREDICTION = 0, TRAIN }; | |||
| @@ -388,6 +394,7 @@ static const char *const MDL_BANK_PATH = ge::MDL_BANK_PATH_FLAG.c_str(); | |||
| static const char *const OP_BANK_PATH = ge::OP_BANK_PATH_FLAG.c_str(); | |||
| static const char *const OP_BANK_UPDATE = ge::OP_BANK_UPDATE_FLAG.c_str(); | |||
| static const char *const OP_DEBUG_LEVEL = ge::OP_DEBUG_LEVEL.c_str(); | |||
| static const char *const PERFORMANCE_MODE = ge::PERFORMANCE_MODE.c_str(); | |||
| // for interface: aclgrphBuildModel | |||
| #ifdef __GNUC__ | |||
| @@ -412,7 +419,8 @@ const std::set<std::string> ir_builder_suppported_options = {INPUT_FORMAT, | |||
| OP_COMPILER_CACHE_MODE, | |||
| MDL_BANK_PATH, | |||
| OP_BANK_PATH, | |||
| OP_BANK_UPDATE}; | |||
| OP_BANK_UPDATE, | |||
| PERFORMANCE_MODE}; | |||
| // for interface: aclgrphParse | |||
| const std::set<std::string> ir_parser_suppported_options = { | |||
| @@ -67,8 +67,9 @@ struct DataBuffer { | |||
| void *data; // Data address | |||
| uint64_t length; // Data length | |||
| bool isDataSupportMemShare = false; | |||
| DataBuffer(void *dataIn, uint64_t len, bool isSupportMemShare) | |||
| : data(dataIn), length(len), isDataSupportMemShare(isSupportMemShare) {} | |||
| uint32_t placement = 0; | |||
| DataBuffer(void *dataIn, uint64_t len, bool isSupportMemShare, uint32_t placement = 0) | |||
| : data(dataIn), length(len), isDataSupportMemShare(isSupportMemShare), placement(placement) {} | |||
| DataBuffer() : data(nullptr), length(0), isDataSupportMemShare(false) {} | |||
| }; | |||
| @@ -76,10 +76,13 @@ class GE_FUNC_VISIBILITY GeGenerator { | |||
| /// @param [in] inputs: input tensors. | |||
| /// @param [in] outputs: output tensors. | |||
| /// @param [in] engine_type: engine type. | |||
| /// @param [in] compile_flag: op build flag, accurate build is 0, fuzz build is 1 | |||
| /// @param [out] model_buff: model buff of op. | |||
| /// @return SUCCESS or FAILED | |||
| Status BuildSingleOpModel(OpDescPtr &op_desc, const vector<GeTensor> &inputs, const vector<GeTensor> &outputs, | |||
| OpEngineType engine_type, ModelBufferData &model_buff); | |||
| Status BuildSingleOpModel(OpDescPtr &op_desc, const vector<GeTensor> &inputs, const vector<GeTensor> &outputs, | |||
| OpEngineType engine_type, int32_t compile_flag, ModelBufferData &model_buff); | |||
| /// | |||
| /// @ingroup ge | |||
| /// @brief: Build single Op into model buff. | |||
| @@ -88,6 +88,24 @@ TEST_F(UtestGeGenerator, test_build_single_op_online) { | |||
| EXPECT_EQ(generator.BuildSingleOpModel(op_desc, inputs, outputs, ENGINE_AIVECTOR, model_buffer), FAILED); | |||
| } | |||
| TEST_F(UtestGeGenerator, test_singleop_fuzz_build) { | |||
| GeTensorDesc tensor_desc; | |||
| shared_ptr<OpDesc> op_desc = make_shared<OpDesc>("Add", "add"); | |||
| op_desc->AddInputDesc(tensor_desc); | |||
| op_desc->AddInputDesc(tensor_desc); | |||
| op_desc->AddOutputDesc(tensor_desc); | |||
| GeTensor tensor(tensor_desc); | |||
| const vector<GeTensor> inputs = { tensor, tensor }; | |||
| const vector<GeTensor> outputs = { tensor }; | |||
| GeGenerator generator; | |||
| generator.Initialize({}); | |||
| ModelBufferData model_buffer; | |||
| bool compile_flag = true; | |||
| EXPECT_EQ(generator.BuildSingleOpModel(op_desc, inputs, outputs, ENGINE_AIVECTOR, compile_flag, model_buffer), SUCCESS); | |||
| } | |||
| TEST_F(UtestGeGenerator, test_check_aicore) { | |||
| GeGenerator generator; | |||
| generator.Initialize({}); | |||