| @@ -131,7 +131,7 @@ Status AiCoreOpTask::RegisterKernelHandle(const OpDesc &op_desc) { | |||||
| } | } | ||||
| void *bin_handle = nullptr; | void *bin_handle = nullptr; | ||||
| GELOGD("Start to register kernel for node[%s].", op_desc.GetName().c_str()); | |||||
| GELOGD("Start to register kernel for node: [%s].", op_desc.GetName().c_str()); | |||||
| rtDevBinary_t binary; | rtDevBinary_t binary; | ||||
| std::string json_string; | std::string json_string; | ||||
| GE_IF_BOOL_EXEC(AttrUtils::GetStr(&op_desc, TVM_ATTR_NAME_MAGIC, json_string), | GE_IF_BOOL_EXEC(AttrUtils::GetStr(&op_desc, TVM_ATTR_NAME_MAGIC, json_string), | ||||
| @@ -149,7 +149,7 @@ Status AiCoreOpTask::RegisterKernelHandle(const OpDesc &op_desc) { | |||||
| binary.version = 0; | binary.version = 0; | ||||
| binary.data = tbe_kernel->GetBinData(); | binary.data = tbe_kernel->GetBinData(); | ||||
| binary.length = tbe_kernel->GetBinDataSize(); | binary.length = tbe_kernel->GetBinDataSize(); | ||||
| GELOGI("TBE: binary.length: %lu.", binary.length); | |||||
| GELOGI("TBE: binary.length: %lu", binary.length); | |||||
| GE_CHK_RT_RET(rtRegisterAllKernel(&binary, &bin_handle)); | GE_CHK_RT_RET(rtRegisterAllKernel(&binary, &bin_handle)); | ||||
| handle_ = bin_handle; | handle_ = bin_handle; | ||||
| auto holder = std::unique_ptr<TbeHandleHolder>(new (std::nothrow) TbeHandleHolder(handle_)); | auto holder = std::unique_ptr<TbeHandleHolder>(new (std::nothrow) TbeHandleHolder(handle_)); | ||||
| @@ -760,6 +760,10 @@ set(GENERATOR_TEST_FILES | |||||
| "generator/ge_generator_unittest.cc" | "generator/ge_generator_unittest.cc" | ||||
| ) | ) | ||||
| set(EXECUTOR_TEST_FILES | |||||
| "exeutor/ge_exeutor_unittest.cc" | |||||
| ) | |||||
| set(SINGLE_OP_TEST_FILES | set(SINGLE_OP_TEST_FILES | ||||
| "single_op/single_op_model_unittest.cc" | "single_op/single_op_model_unittest.cc" | ||||
| "single_op/single_op_manager_unittest.cc" | "single_op/single_op_manager_unittest.cc" | ||||
| @@ -1066,6 +1070,7 @@ target_link_libraries(ut_libge_kernel_utest | |||||
| add_executable(ut_libge_distinct_load_utest | add_executable(ut_libge_distinct_load_utest | ||||
| ${COMMON_TEST_FILES} | ${COMMON_TEST_FILES} | ||||
| ${GENERATOR_TEST_FILES} | ${GENERATOR_TEST_FILES} | ||||
| ${EXECUTOR_TEST_FILES} | |||||
| ${DISTINCT_GRAPH_LOAD_TEST_FILES} | ${DISTINCT_GRAPH_LOAD_TEST_FILES} | ||||
| ${DISTINCT_GRAPH_LOAD_SRC_FILES} | ${DISTINCT_GRAPH_LOAD_SRC_FILES} | ||||
| ${SINGLE_OP_TEST_FILES} | ${SINGLE_OP_TEST_FILES} | ||||
| @@ -0,0 +1,43 @@ | |||||
| /** | |||||
| * Copyright 2019-2020 Huawei Technologies Co., Ltd | |||||
| * | |||||
| * Licensed under the Apache License, Version 2.0 (the "License"); | |||||
| * you may not use this file except in compliance with the License. | |||||
| * You may obtain a copy of the License at | |||||
| * | |||||
| * http://www.apache.org/licenses/LICENSE-2.0 | |||||
| * | |||||
| * Unless required by applicable law or agreed to in writing, software | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | |||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |||||
| * See the License for the specific language governing permissions and | |||||
| * limitations under the License. | |||||
| */ | |||||
| #include <gtest/gtest.h> | |||||
| #define private public | |||||
| #define protected public | |||||
| #include "generator/ge_executor.h" | |||||
| #include "graph/utils/tensor_utils.h" | |||||
| using namespace std; | |||||
| namespace ge { | |||||
| class UtestGeExecutor : public testing::Test { | |||||
| protected: | |||||
| void SetUp() {} | |||||
| void TearDown() {} | |||||
| }; | |||||
| TEST_F(UtestGeExecutor, test_single_op_exec) { | |||||
| GeExecutor exeutor; | |||||
| ModelData model_data; | |||||
| string model_name = "1234"; | |||||
| void *stream = nullptr; | |||||
| SingleOp *single_op = nullptr; | |||||
| exeutor.LoadSingleOp(model_name, model_data, stream, single_op); | |||||
| } | |||||
| } // namespace ge | |||||
| @@ -98,4 +98,16 @@ TEST_F(UtestGeHybrid, aicore_op_task_init_success) { | |||||
| aicore_task->handle_ = handle; | aicore_task->handle_ = handle; | ||||
| aicore_task->tiling_key_ = 1; | aicore_task->tiling_key_ = 1; | ||||
| ASSERT_EQ(aicore_task->LaunchKernel(stream), SUCCESS); | ASSERT_EQ(aicore_task->LaunchKernel(stream), SUCCESS); | ||||
| } | |||||
| TEST_F(UtestGeHybrid, task_update_tiling_info) { | |||||
| auto aicore_task = std::unique_ptr<hybrid::AiCoreOpTask>(new(std::nothrow)hybrid::AiCoreOpTask()); | |||||
| aicore_task->is_single_op_ = true; | |||||
| auto graph = make_shared<ComputeGraph>("graph"); | |||||
| OpDescPtr op_desc = CreateOpDesc("Add", "Add"); | |||||
| ge::AttrUtils::SetStr(op_desc, "compile_info_key", "key"); | |||||
| ge::AttrUtils::SetStr(op_desc, "compile_info_json", "json"); | |||||
| auto node = graph->AddNode(op_desc); | |||||
| optiling::OpRunInfo tiling_info; | |||||
| ASSERT_EQ(aicore_task->CalcTilingInfo(node, tiling_info), SUCCESS) | |||||
| } | } | ||||