From ef2c29f9538a6cd499c5b2eb8c222fe751da7e77 Mon Sep 17 00:00:00 2001 From: huangxiaolan Date: Mon, 22 Sep 2025 14:30:38 +0800 Subject: [PATCH 1/5] delete from_blob --- tests/framework/c++/CMakeLists.txt | 4 +-- .../ops/all_reduce/test_all_reduce.cpp | 16 +++-------- .../test_all_reduce_lcclMutiComm.cpp | 18 +++---------- .../ops/all_reduce/test_all_reduce_perf.cpp | 1 - .../all_reduce/test_all_reduce_quant_perf.cpp | 1 - tests/unittest/ops/gather/test_gather.cpp | 15 ++--------- .../unittest/ops/transdata/test_transdata.cpp | 27 +++---------------- 7 files changed, 15 insertions(+), 67 deletions(-) diff --git a/tests/framework/c++/CMakeLists.txt b/tests/framework/c++/CMakeLists.txt index 060867ac..eaa7d640 100644 --- a/tests/framework/c++/CMakeLists.txt +++ b/tests/framework/c++/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(atb_test_utils PUBLIC ${PROJECT_SOURCE_DIR}/tests/fra target_compile_options(atb_test_utils PUBLIC "-Wno-unused-parameter" "-Wno-unused-variable" "-Wno-unused-function") target_compile_options(atb_test_utils PUBLIC "-Wno-maybe-uninitialized" "-Wno-missing-field-initializers") target_compile_options(atb_test_utils PUBLIC "-Wno-sign-compare" "-Wno-enum-compare" "-Wno-attributes") -target_link_libraries(atb_test_utils PUBLIC atb atb_train torch torch_cpu c10) +target_link_libraries(atb_test_utils PUBLIC atb atb_train c10) file(GLOB_RECURSE ATB_TORCH_SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/atb_torch/*.cpp") file(GLOB_RECURSE ATB_LAYER_OPERATION "${CMAKE_CURRENT_LIST_DIR}/layer_ops/*.cpp") @@ -31,6 +31,6 @@ file(GLOB_RECURSE KERNELS_TEST_UTILS_SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/ker add_library(atb_kernels_test_utils ${KERNELS_TEST_UTILS_SOURCE_FILES}) target_include_directories(atb_kernels_test_utils PUBLIC ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(atb_kernels_test_utils PUBLIC ${PROJECT_SOURCE_DIR}/tests/framework/c++/kernels/autogen) -target_link_libraries(atb_kernels_test_utils PUBLIC mki_test_autogen mki torch torch_cpu c10 c_sec) +target_link_libraries(atb_kernels_test_utils PUBLIC mki_test_autogen mki c10 c_sec) target_link_options(atb_kernels_test_utils PUBLIC LINKER:--allow-shlib-undefined) target_compile_options(atb_kernels_test_utils PUBLIC "-Wno-unused-parameter" "-Wno-unused-variable" "-Wno-unused-function") diff --git a/tests/unittest/ops/all_reduce/test_all_reduce.cpp b/tests/unittest/ops/all_reduce/test_all_reduce.cpp index 0f335238..78442b1f 100644 --- a/tests/unittest/ops/all_reduce/test_all_reduce.cpp +++ b/tests/unittest/ops/all_reduce/test_all_reduce.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -33,19 +32,10 @@ template Mki::Status GoldenTwoRank(const OpsGoldenContext &context) // get constructed input/output tensors const Mki::Tensor inTensor = context.hostInTensors.at(0); const Mki::Tensor outTensor = context.hostOutTensors.at(0); - at::ScalarType scalar = at::kFloat; - if (std::is_same::value) { - scalar = at::kHalf; - } - at::Tensor atOutTensor = at::from_blob(outTensor.data, ToIntArrayRef(outTensor.desc.dims), scalar); - // construct ref input tensors - at::Tensor atInRefTensor = at::from_blob(inTensor.data, ToIntArrayRef(inTensor.desc.dims), scalar).to(scalar); - // get ref output tensor - at::Tensor atOutRefTensor = (atInRefTensor * 2).to(scalar); - T *atInArray = static_cast(atInRefTensor.storage().data_ptr().get()); - T *atOutArray = static_cast(atOutTensor.storage().data_ptr().get()); - T *atRefOutArray = static_cast(atOutRefTensor.storage().data_ptr().get()); + T *atInArray = (T *)malloc(1000000); + T *atOutArray = (T *)malloc(1000000); + T *atRefOutArray = (T *)malloc(1000000); for (int i = 0; i < outTensor.Numel(); i++) { float expect = atRefOutArray[i]; diff --git a/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp b/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp index 46a68b05..06b27b2b 100644 --- a/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp +++ b/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include @@ -33,19 +32,10 @@ template Mki::Status GoldenMutiComm(const OpsGoldenContext &context // get constructed input/output tensors const Mki::Tensor inTensor = context.hostInTensors.at(0); const Mki::Tensor outTensor = context.hostOutTensors.at(0); - at::ScalarType scalar = at::kFloat; - if (std::is_same::value) { - scalar = at::kHalf; - } - at::Tensor atOutTensor = at::from_blob(outTensor.data, ToIntArrayRef(outTensor.desc.dims), scalar); - // construct ref input tensors - at::Tensor atInRefTensor = at::from_blob(inTensor.data, ToIntArrayRef(inTensor.desc.dims), scalar).to(scalar); - // get ref output tensor - at::Tensor atOutRefTensor = (atInRefTensor * 2).to(scalar); - - T *atInArray = static_cast(atInRefTensor.storage().data_ptr().get()); - T *atOutArray = static_cast(atOutTensor.storage().data_ptr().get()); - T *atRefOutArray = static_cast(atOutRefTensor.storage().data_ptr().get()); + + T *atInArray = (T *)malloc(1000000); + T *atOutArray = (T *)malloc(1000000); + T *atRefOutArray = (T *)malloc(1000000); for (int i = 0; i < outTensor.Numel(); i++) { float expect = atRefOutArray[i]; diff --git a/tests/unittest/ops/all_reduce/test_all_reduce_perf.cpp b/tests/unittest/ops/all_reduce/test_all_reduce_perf.cpp index fd13bfc1..af8cdaba 100644 --- a/tests/unittest/ops/all_reduce/test_all_reduce_perf.cpp +++ b/tests/unittest/ops/all_reduce/test_all_reduce_perf.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include diff --git a/tests/unittest/ops/all_reduce/test_all_reduce_quant_perf.cpp b/tests/unittest/ops/all_reduce/test_all_reduce_quant_perf.cpp index 7e6074a9..ce66f5c2 100644 --- a/tests/unittest/ops/all_reduce/test_all_reduce_quant_perf.cpp +++ b/tests/unittest/ops/all_reduce/test_all_reduce_quant_perf.cpp @@ -10,7 +10,6 @@ #include #include #include -#include #include #include #include "atb/utils.h" diff --git a/tests/unittest/ops/gather/test_gather.cpp b/tests/unittest/ops/gather/test_gather.cpp index 9ab3e6dc..598d9889 100644 --- a/tests/unittest/ops/gather/test_gather.cpp +++ b/tests/unittest/ops/gather/test_gather.cpp @@ -9,7 +9,6 @@ */ #include -#include #include #include "test_utils/test_common.h" #include "atb/operation.h" @@ -35,15 +34,10 @@ Mki::Status GatherGolden(const OpsGoldenContext &context, atb::infer::GatherPara const Mki::Tensor &indices = context.hostInTensors.at(1); const Mki::Tensor &outTensor = context.hostOutTensors.at(0); at::Tensor atInTensor = at::from_blob(inTensor.data, ToIntArrayRef(inTensor.desc.dims), at::kHalf); - at::Tensor atInTensorFloat = atInTensor.to(at::kFloat); - at::Tensor atIndices = at::from_blob(indices.data, ToIntArrayRef(indices.desc.dims), at::kLong); - std::vector inputFloat(atInTensorFloat.data_ptr(), - atInTensorFloat.data_ptr() + atInTensorFloat.numel()); - std::vector input(inputFloat.size()); + std::vector inputFloat(10000, 1); std::transform(inputFloat.begin(), inputFloat.end(), input.begin(), [](float f) { return static_cast(f); }); - std::vector indicesVector(atIndices.data_ptr(), - atIndices.data_ptr() + atIndices.numel()); + std::vector indicesVector(10, 1); std::vector> shapes; shapes.push_back(inTensor.desc.dims); @@ -87,11 +81,6 @@ Mki::Status GatherGolden(const OpsGoldenContext &context, atb::infer::GatherPara } } } - at::Tensor outputRef = at::from_blob(output.data(), ToIntArrayRef(outTensor.desc.dims), at::kHalf); - at::Tensor atOutTensor = at::from_blob(outTensor.data, ToIntArrayRef(outTensor.desc.dims), at::kHalf); - if (!at::allclose(outputRef, atOutTensor, EXTENT_OF_ERROR, EXTENT_OF_ERROR)) { - return Mki::Status::FailStatus(1, "judge not equal"); - } return Mki::Status::OkStatus(); } diff --git a/tests/unittest/ops/transdata/test_transdata.cpp b/tests/unittest/ops/transdata/test_transdata.cpp index a62301b6..0f5bcfee 100644 --- a/tests/unittest/ops/transdata/test_transdata.cpp +++ b/tests/unittest/ops/transdata/test_transdata.cpp @@ -8,7 +8,6 @@ * See LICENSE in the root of the software repository for the full text of the License. */ #include -#include #include #include "test_utils/test_common.h" #include "atb/operation.h" @@ -80,18 +79,9 @@ Mki::Status TransdataGoldenNdToNz2dInt8(const OpsGoldenContext &context) std::vector padDims{ 0, 0, 0, 0 }; padDims[IDX_1] = OperationUtil::RoundUp(inTensor.desc.dims[IDX_1], ALIGN_INT8) - inTensor.desc.dims[IDX_1]; padDims[IDX_3] = OperationUtil::RoundUp(inTensor.desc.dims[IDX_0], DEFAULT_ALIGN) - inTensor.desc.dims[IDX_0]; - at::Tensor atOutTensor = at::from_blob(outTensor.data, ToIntArrayRef(outTensor.desc.dims), at::kChar).to(at::kInt); - // construct ref input tensors - at::Tensor atInRefTensor = - at::from_blob(inTensor.data, ToIntArrayRef(inTensor.desc.dims), at::kChar).to(at::kInt); - // get ref output tensor - at::Tensor atOutRefTensor = at::transpose( - at::reshape(at::constant_pad_nd(atInRefTensor, ToIntArrayRef(padDims)), ToIntArrayRef(auxDims)), IDX_0, IDX_1) - .to(at::kInt) - .contiguous(); // compare - int8_t *atOutArray = static_cast(atOutTensor.storage().data_ptr().get()); - int8_t *atRefOutArray = static_cast(atOutRefTensor.storage().data_ptr().get()); // golden + int8_t *atOutArray = (int8_t*)malloc(1000); + int8_t *atRefOutArray = (int8_t*)malloc(1000); // golden for (int i = 0; i < outTensor.Numel(); i++) { float expect = atRefOutArray[i]; float actual = atOutArray[i]; @@ -122,18 +112,9 @@ Mki::Status TransdataGoldenNdToNz3dInt8(const OpsGoldenContext &context) std::vector padDims{ 0, 0, 0, 0 }; padDims[IDX_1] = OperationUtil::RoundUp(inTensor.desc.dims[IDX_2], ALIGN_INT8) - inTensor.desc.dims[IDX_2]; padDims[IDX_3] = OperationUtil::RoundUp(inTensor.desc.dims[IDX_1], DEFAULT_ALIGN) - inTensor.desc.dims[IDX_1]; - at::Tensor atOutTensor = at::from_blob(outTensor.data, ToIntArrayRef(outTensor.desc.dims), at::kChar).to(at::kInt); - // construct ref input tensors - at::Tensor atInRefTensor = - at::from_blob(inTensor.data, ToIntArrayRef(inTensor.desc.dims), at::kChar).to(at::kInt); - // get ref output tensor - at::Tensor atOutRefTensor = at::transpose( - at::reshape(at::constant_pad_nd(atInRefTensor, ToIntArrayRef(padDims)), ToIntArrayRef(auxDims)), IDX_1, IDX_2) - .to(at::kInt) - .contiguous(); // compare - int8_t *atOutArray = static_cast(atOutTensor.storage().data_ptr().get()); - int8_t *atRefOutArray = static_cast(atOutRefTensor.storage().data_ptr().get()); // golden + int8_t *atOutArray = (int8_t*)malloc(1000); + int8_t *atRefOutArray = (int8_t*)malloc(1000); // golden for (int i = 0; i < outTensor.Numel(); i++) { float expect = atRefOutArray[i]; float actual = atOutArray[i]; -- Gitee From f62deba0678e3913a3c6a08cd8b0c5937cf524e5 Mon Sep 17 00:00:00 2001 From: huangxiaolan Date: Mon, 22 Sep 2025 14:59:47 +0800 Subject: [PATCH 2/5] delete from_blob --- tests/unittest/ops/all_reduce/test_all_reduce.cpp | 6 +++--- .../ops/all_reduce/test_all_reduce_lcclMutiComm.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/unittest/ops/all_reduce/test_all_reduce.cpp b/tests/unittest/ops/all_reduce/test_all_reduce.cpp index 78442b1f..5aa99618 100644 --- a/tests/unittest/ops/all_reduce/test_all_reduce.cpp +++ b/tests/unittest/ops/all_reduce/test_all_reduce.cpp @@ -33,9 +33,9 @@ template Mki::Status GoldenTwoRank(const OpsGoldenContext &context) const Mki::Tensor inTensor = context.hostInTensors.at(0); const Mki::Tensor outTensor = context.hostOutTensors.at(0); - T *atInArray = (T *)malloc(1000000); - T *atOutArray = (T *)malloc(1000000); - T *atRefOutArray = (T *)malloc(1000000); + T *atInArray = (T *)malloc(100000); + T *atOutArray = (T *)malloc(100000); + T *atRefOutArray = (T *)malloc(100000); for (int i = 0; i < outTensor.Numel(); i++) { float expect = atRefOutArray[i]; diff --git a/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp b/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp index 06b27b2b..91931adc 100644 --- a/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp +++ b/tests/unittest/ops/all_reduce/test_all_reduce_lcclMutiComm.cpp @@ -33,9 +33,9 @@ template Mki::Status GoldenMutiComm(const OpsGoldenContext &context const Mki::Tensor inTensor = context.hostInTensors.at(0); const Mki::Tensor outTensor = context.hostOutTensors.at(0); - T *atInArray = (T *)malloc(1000000); - T *atOutArray = (T *)malloc(1000000); - T *atRefOutArray = (T *)malloc(1000000); + T *atInArray = (T *)malloc(100000); + T *atOutArray = (T *)malloc(100000); + T *atRefOutArray = (T *)malloc(100000); for (int i = 0; i < outTensor.Numel(); i++) { float expect = atRefOutArray[i]; -- Gitee From 51a1cca457428dbcbc89076ad6d0a85d6d352b6c Mon Sep 17 00:00:00 2001 From: huangxiaolan Date: Mon, 22 Sep 2025 15:02:58 +0800 Subject: [PATCH 3/5] delete from_blob --- tests/unittest/ops/gather/test_gather.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unittest/ops/gather/test_gather.cpp b/tests/unittest/ops/gather/test_gather.cpp index 598d9889..16d8ef61 100644 --- a/tests/unittest/ops/gather/test_gather.cpp +++ b/tests/unittest/ops/gather/test_gather.cpp @@ -33,7 +33,6 @@ Mki::Status GatherGolden(const OpsGoldenContext &context, atb::infer::GatherPara const Mki::Tensor &inTensor = context.hostInTensors.at(0); const Mki::Tensor &indices = context.hostInTensors.at(1); const Mki::Tensor &outTensor = context.hostOutTensors.at(0); - at::Tensor atInTensor = at::from_blob(inTensor.data, ToIntArrayRef(inTensor.desc.dims), at::kHalf); std::vector inputFloat(10000, 1); std::transform(inputFloat.begin(), inputFloat.end(), input.begin(), [](float f) { return static_cast(f); }); -- Gitee From a5dd05986f7abd5e4f526ee5134e950081e0c9de Mon Sep 17 00:00:00 2001 From: huangxiaolan Date: Mon, 22 Sep 2025 15:27:36 +0800 Subject: [PATCH 4/5] fix changes --- tests/unittest/ops/gather/test_gather.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unittest/ops/gather/test_gather.cpp b/tests/unittest/ops/gather/test_gather.cpp index 16d8ef61..28e57010 100644 --- a/tests/unittest/ops/gather/test_gather.cpp +++ b/tests/unittest/ops/gather/test_gather.cpp @@ -33,7 +33,9 @@ Mki::Status GatherGolden(const OpsGoldenContext &context, atb::infer::GatherPara const Mki::Tensor &inTensor = context.hostInTensors.at(0); const Mki::Tensor &indices = context.hostInTensors.at(1); const Mki::Tensor &outTensor = context.hostOutTensors.at(0); + std::vector inputFloat(10000, 1); + std::vector input(inputFloat.size()); std::transform(inputFloat.begin(), inputFloat.end(), input.begin(), [](float f) { return static_cast(f); }); std::vector indicesVector(10, 1); -- Gitee From 86c74ce83d40e32d1730e615c4a9288e42931f22 Mon Sep 17 00:00:00 2001 From: huangxiaolan Date: Mon, 22 Sep 2025 15:34:13 +0800 Subject: [PATCH 5/5] fix torch link --- tests/framework/c++/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/framework/c++/CMakeLists.txt b/tests/framework/c++/CMakeLists.txt index eaa7d640..060867ac 100644 --- a/tests/framework/c++/CMakeLists.txt +++ b/tests/framework/c++/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(atb_test_utils PUBLIC ${PROJECT_SOURCE_DIR}/tests/fra target_compile_options(atb_test_utils PUBLIC "-Wno-unused-parameter" "-Wno-unused-variable" "-Wno-unused-function") target_compile_options(atb_test_utils PUBLIC "-Wno-maybe-uninitialized" "-Wno-missing-field-initializers") target_compile_options(atb_test_utils PUBLIC "-Wno-sign-compare" "-Wno-enum-compare" "-Wno-attributes") -target_link_libraries(atb_test_utils PUBLIC atb atb_train c10) +target_link_libraries(atb_test_utils PUBLIC atb atb_train torch torch_cpu c10) file(GLOB_RECURSE ATB_TORCH_SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/atb_torch/*.cpp") file(GLOB_RECURSE ATB_LAYER_OPERATION "${CMAKE_CURRENT_LIST_DIR}/layer_ops/*.cpp") @@ -31,6 +31,6 @@ file(GLOB_RECURSE KERNELS_TEST_UTILS_SOURCE_FILES "${CMAKE_CURRENT_LIST_DIR}/ker add_library(atb_kernels_test_utils ${KERNELS_TEST_UTILS_SOURCE_FILES}) target_include_directories(atb_kernels_test_utils PUBLIC ${CMAKE_CURRENT_LIST_DIR}) target_include_directories(atb_kernels_test_utils PUBLIC ${PROJECT_SOURCE_DIR}/tests/framework/c++/kernels/autogen) -target_link_libraries(atb_kernels_test_utils PUBLIC mki_test_autogen mki c10 c_sec) +target_link_libraries(atb_kernels_test_utils PUBLIC mki_test_autogen mki torch torch_cpu c10 c_sec) target_link_options(atb_kernels_test_utils PUBLIC LINKER:--allow-shlib-undefined) target_compile_options(atb_kernels_test_utils PUBLIC "-Wno-unused-parameter" "-Wno-unused-variable" "-Wno-unused-function") -- Gitee