From 459c9a4ab2eac58571f0d331540bdc2cab5e01a1 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:19:21 +0800 Subject: [PATCH 01/38] Transdata --- .../format_transfer_fractal_z.cc | 193 ++++++++++++++++-- .../format_transfer_hwcn_fractalz_unittest.cc | 61 ++++++ 2 files changed, 233 insertions(+), 21 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 39f33927..954d0aca 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -29,6 +29,39 @@ namespace ge { namespace formats { namespace { +constexpr int64_t kCubeN = 16; +constexpr int64_t kDim = 1; + +static int64_t Measure(int64_t x, int64_t y) { + int64_t z = y; + while (x % y != 0) { + z = x % y; + x = y; + y = z; + } + return z; +} +// least common multiple +static int64_t Lcm(int64_t a, int64_t b) { + if (b == 0) { + return -1; + } + int64_t temp = (a * b) / (Measure(a, b)); + return temp; +} +// get the result of two number divisor and let result round up +static int64_t DivCeil(int64_t a, int64_t b) { + if (b == 0) { + return -1; + } else { + int64_t ret = a / b; + if ((a % b) != 0) { + ret++; + } + return ret; + } +} + Status CheckDataTypeSupport(DataType data_type) { return GetSizeByDataType(data_type) > 0 ? SUCCESS : UNSUPPORTED; } /** @@ -61,6 +94,35 @@ Status TransShapeToFz(int64_t n, int64_t c, int64_t h, int64_t w, DataType data_ return SUCCESS; } +Status TransShapeToFzWithGroups(int64_t n, int64_t c, int64_t h, int64_t w, DataType data_type, std::vector &dst_shape + , int64_t groups) { + auto c0 = GetCubeSizeByDataType(data_type); + if (c0 < 0) { + return ACL_ERROR_GE_DATATYPE_INVALID; + } + int64_t cin_ori = c; + int64_t cout_ori = n / groups; + int64_t cube_k = data_type == DT_INT8 ? 32 : 16; + int64_t e_mult = std::min( + Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), + groups); + int64_t cin_opt = DivCeil(e_mult * cin_ori, cube_k) * cube_k; + int64_t c1_dim = cin_opt / cube_k; + int64_t g_dim = DivCeil(groups, e_mult); + auto n1 = DivCeil(cout_ori * e_mult, kCubeN); + dst_shape.clear(); + dst_shape.push_back(g_dim * c1_dim * h * w); + dst_shape.push_back(n1); + dst_shape.push_back(16); + dst_shape.push_back(cube_k); + if (!IsShapeValid(dst_shape)) { + GELOGE(ACL_ERROR_GE_SHAPE_INVALID, "Failed to check dst shape %s", + ShapeToString(dst_shape).c_str()); + return ACL_ERROR_GE_SHAPE_INVALID; + } + return SUCCESS; +} + Status TransShapeNchwToFz(const std::vector &src_shape, DataType data_type, std::vector &dst_shape) { if (!CheckShapeValid(src_shape, kNchwDimsNum)) { return ACL_ERROR_GE_SHAPE_INVALID; @@ -82,10 +144,24 @@ Status TransShapeHwcnToFz(const std::vector &src_shape, DataType data_t auto w = src_shape.at(kHwcnW); auto c = src_shape.at(kHwcnC); auto n = src_shape.at(kHwcnN); - return TransShapeToFz(n, c, h, w, data_type, dst_shape); } +Status TransShapeHwcnToFzWithGroups(const std::vector &src_shape, DataType data_type, std::vector &dst_shape +, int64_t groups){ + if (!CheckShapeValid(src_shape, kHwcnDimsNum)) { + return ACL_ERROR_GE_SHAPE_INVALID; + } + + auto h = src_shape.at(kHwcnH); + auto w = src_shape.at(kHwcnW); + auto c = src_shape.at(kHwcnC); + auto n = src_shape.at(kHwcnN); + + return TransShapeToFzWithGroups(n, c, h, w, data_type, dst_shape, groups); +} + + Status TransShapeNhwcToFz(const std::vector &src_shape, DataType data_type, std::vector &dst_shape) { if (!CheckShapeValid(src_shape, kNhwcDimsNum)) { return ACL_ERROR_GE_SHAPE_INVALID; @@ -127,8 +203,7 @@ Status TransFormatFromNchwToFz(const TransArgs &args, TransResult &result) { std::shared_ptr dst(new (std::nothrow) uint8_t[dst_size], std::default_delete()); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( dst == nullptr, - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, - "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), dst_size); return ACL_ERROR_GE_MEMORY_ALLOCATION;); @@ -174,8 +249,7 @@ Status TransFormatFromNchwToFz(const TransArgs &args, TransResult &result) { } } if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, - "Failed to operate the dst memory at offset %ld, error-code %d pad mode %d", offset, + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory at offset %ld, error-code %d pad mode %d", offset, ret, need_pad_zero); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } @@ -189,6 +263,85 @@ Status TransFormatFromNchwToFz(const TransArgs &args, TransResult &result) { return SUCCESS; } +Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t groups){ + int64_t h_dim = args.src_shape[kHwcnH]; + int64_t w_dim = args.src_shape[kHwcnW]; + int64_t c_dim = args.src_shape[kHwcnC]; + int64_t n_dim = args.src_shape[kHwcnN]; + int64_t cin_ori = c_dim; + int64_t cout_ori = n_dim / groups; + if (cin_ori == 0 || cout_ori == 0) { + GELOGE(GRAPH_FAILED, + "Cin_ori, cout_ori must not be equal 0, " + "and current cin_ori, cout_ori, groups are %d %d %d", + cin_ori, cout_ori, groups); + return GRAPH_FAILED; + } + const int64_t cube_k = args.src_data_type == DT_INT8 ? 32 : 16; + int64_t e_mult = std::min( + Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), + groups); + int64_t cin_opt = DivCeil(e_mult * cin_ori, cube_k) * cube_k; + int64_t cout_opt = DivCeil(e_mult * cout_ori, kCubeN) * kCubeN; + int64_t c1_dim = cin_opt / cube_k; + int64_t g_dim = DivCeil(groups, e_mult); + int64_t dim_cin = cin_opt / cube_k; + int64_t data_size = GetCubeSizeByDataType(args.src_data_type); + int64_t size_output_data = + g_dim * kDim * dim_cin * h_dim * w_dim * cout_opt * cube_k * data_size; + GE_CHK_BOOL_EXEC_NOLOG(size_output_data != 0, result.length = static_cast(size_output_data); + return SUCCESS;); + errno_t ret = EOK; + std::shared_ptr dst(new (std::nothrow) uint8_t[size_output_data], std::default_delete()); + GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( + dst == nullptr, + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + TypeUtils::FormatToSerialString(args.src_format).c_str(), + TypeUtils::FormatToSerialString(args.dst_format).c_str(), size_output_data); + return ACL_ERROR_GE_MEMORY_ALLOCATION;); + ret = memset_s(dst.get(), size_output_data, 0, size_output_data); + if (ret != EOK) { + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory , error-code %d, ret %d", + ret); + return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; + } + for (int64_t g = 0; g < groups; g++) { + for (int64_t d = 0; d < kDim; d++) { + for (int64_t c = 0; c < c_dim; c++) { + for (int64_t h = 0; h < h_dim; h++) { + for (int64_t w = 0; w < w_dim; w++) { + for (int64_t n = 0; n < cout_ori; n++) { + int64_t e_val = g % e_mult; + int64_t dst_ci = e_val * cin_ori + c; + int64_t dst_co = e_val * cout_ori + n; + int64_t src_co = g * cout_ori + n; + int64_t tempory = dst_ci % cube_k; + int64_t srx_inx = 0; + int64_t dst_inx = + (g / e_mult) * kDim * c1_dim * h_dim * w_dim * cout_opt * + cube_k + + d * c1_dim * h_dim * w_dim * cout_opt * cube_k + + (dst_ci / cube_k) * h_dim * w_dim * cout_opt * cube_k + + h * w_dim * cout_opt * cube_k + w * cout_opt * cube_k + + dst_co * cube_k + tempory; + srx_inx = d * h_dim * w_dim * c_dim * n_dim + + h * w_dim * c_dim * n_dim + w * c_dim * n_dim + + c * n_dim + src_co; + char *dst_data = reinterpret_cast(dst.get() + dst_inx * data_size); + const char *src_data = reinterpret_cast(args.data + srx_inx * data_size); + for (int64_t index = 0; index < data_size; index++) { + *dst_data++ = *src_data++; + } + } + } + } + } + } + } + result.data = dst; + result.length = static_cast(size_output_data); + return SUCCESS; +} Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { int64_t h = args.src_shape[kHwcnH]; int64_t w = args.src_shape[kHwcnW]; @@ -215,8 +368,7 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { std::shared_ptr dst(new (std::nothrow) uint8_t[dst_size], std::default_delete()); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( dst == nullptr, - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, - "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), dst_size); return ACL_ERROR_GE_MEMORY_ALLOCATION;); @@ -238,8 +390,7 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { static_cast(data_size)); } else { if (protected_size < data_size) { - GELOGE(ACL_ERROR_GE_PARAM_INVALID, - "Failed to operate the dst memory, protected_size is %ld and size is %ld", + GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Failed to operate the dst memory, protected_size is %ld and size is %ld", protected_size, data_size); return ACL_ERROR_GE_PARAM_INVALID; } @@ -251,8 +402,7 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { } } if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, - "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", dst_offset, ret, pad_zero); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } @@ -293,8 +443,7 @@ Status TransFormatNhwcToFz(const TransArgs &args, TransResult &result) { std::shared_ptr dst(new (std::nothrow) uint8_t[dst_size], std::default_delete()); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( dst == nullptr, - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, - "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), dst_size); return ACL_ERROR_GE_MEMORY_ALLOCATION;); @@ -316,8 +465,7 @@ Status TransFormatNhwcToFz(const TransArgs &args, TransResult &result) { static_cast(data_size)); } else { if (protected_size < data_size) { - GELOGE(ACL_ERROR_GE_PARAM_INVALID, - "Failed to operate the dst memory, protected_size is %ld and size is %ld", + GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Failed to operate the dst memory, protected_size is %ld and size is %ld", protected_size, data_size); return ACL_ERROR_GE_PARAM_INVALID; } @@ -329,8 +477,7 @@ Status TransFormatNhwcToFz(const TransArgs &args, TransResult &result) { } } if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, - "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", dst_offset, ret, pad_zero); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } @@ -363,15 +510,16 @@ Status FormatTransferFractalZ::TransFormat(const TransArgs &args, TransResult &r if (args.src_format == FORMAT_NHWC && args.dst_format == FORMAT_FRACTAL_Z) { return TransFormatNhwcToFz(args, result); } - - if (args.src_format == FORMAT_HWCN && args.dst_format == FORMAT_FRACTAL_Z) { + if ((args.src_format == FORMAT_HWCN) && (GetPrimaryFormat(args.dst_format) == FORMAT_FRACTAL_Z)) { + if (GetSubFormat(args.dst_format) >= 1) { + return TransFormatHwcnToFzWithGroups(args, result, GetSubFormat(args.dst_format)); + } return TransFormatHwcnToFz(args, result); } if (args.src_format == FORMAT_NCHW && args.dst_format == FORMAT_FRACTAL_Z) { return TransFormatFromNchwToFz(args, result); } - return ACL_ERROR_GE_FORMAT_INVALID; } @@ -384,7 +532,10 @@ Status FormatTransferFractalZ::TransShape(Format src_format, const std::vector= 1) { + return TransShapeHwcnToFzWithGroups(src_shape, data_type, dst_shape, GetSubFormat(dst_format)); + } return TransShapeHwcnToFz(src_shape, data_type, dst_shape); } if (src_format == FORMAT_NCHW && dst_format == FORMAT_FRACTAL_Z) { diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index b0c0b706..b6b19874 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34427,6 +34427,40 @@ TEST_F(UtestFormatTransferHwcnFz, fp32_2c_2n_pad) { } } +TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { + uint16_t data[1 * 1 * 1 * 2] = {19, 88}; + uint16_t ret[1 * 1 * 16 * 16] ={19 , 0, 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 88, 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0,}; + FormatTransferFractalZ transfer; + ge::Format old_format = FORMAT_FRACTAL_Z; + int32_t groups = 2; + ge::Format new_format = static_cast(ge::GetFormatFromSub(old_format, groups)); + TransArgs args{ + reinterpret_cast(data), FORMAT_HWCN, new_format, std::vector({1, 1, 1, 2}), + std::vector({1, 1, 16, 16}), DT_FLOAT16}; + + TransResult result; + EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); + EXPECT_EQ(result.length, sizeof(ret) / sizeof(ret[0]) * 2); + for (int i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { + EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); + } +} + TEST_F(UtestFormatTransferHwcnFz, build_transfer_fp32) { float data[5 * 5 * 31 * 17]; TransArgs args{ @@ -34454,6 +34488,24 @@ TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8) { EXPECT_NE(transfer, nullptr); } +TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8) { + int8_t data[4 * 4 * 3 * 1]; + TransArgs args{ + reinterpret_cast(data), FORMAT_HWCN, FORMAT_FRACTAL_Z, std::vector({4, 4, 3, 1}), + std::vector({16, 1, 16, 32}), DT_INT8}; + auto transfer = BuildFormatTransfer(args); + EXPECT_NE(transfer, nullptr); +} + +TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8) { + int8_t data[4 * 4 * 3 * 1]; + TransArgs args{ + reinterpret_cast(data), FORMAT_HWCN, FORMAT_FRACTAL_Z, std::vector({4, 4, 3, 1}), + std::vector({16, 1, 16, 32}), DT_INT8}; + auto transfer = BuildFormatTransfer(args); + EXPECT_NE(transfer, nullptr); +} + TEST_F(UtestFormatTransferHwcnFz, build_transfer_not_support) { float data[50 * 2 * 16 * 16]; TransArgs args{ @@ -34462,5 +34514,14 @@ TEST_F(UtestFormatTransferHwcnFz, build_transfer_not_support) { auto transfer = BuildFormatTransfer(args); EXPECT_EQ(transfer, nullptr); } + +TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8_with_groups) { + int8_t data[4 * 4 * 3 * 1]; + TransArgs args{ + reinterpret_cast(data), FORMAT_HWCN, FORMAT_FRACTAL_Z, std::vector({4, 4, 3, 1}), + std::vector({16, 1, 16, 32}), DT_INT8}; + auto transfer = BuildFormatTransfer(args); + EXPECT_NE(transfer, nullptr); +} } // namespace formats } // namespace ge From aef76524d4ea1a88e404d6dc4a8cc5dffa4dee4e Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:20:58 +0800 Subject: [PATCH 02/38] Transdata --- .../format_transfer_hwcn_fractalz_unittest.cc | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index b6b19874..4ba8bd4b 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34488,24 +34488,6 @@ TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8) { EXPECT_NE(transfer, nullptr); } -TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8) { - int8_t data[4 * 4 * 3 * 1]; - TransArgs args{ - reinterpret_cast(data), FORMAT_HWCN, FORMAT_FRACTAL_Z, std::vector({4, 4, 3, 1}), - std::vector({16, 1, 16, 32}), DT_INT8}; - auto transfer = BuildFormatTransfer(args); - EXPECT_NE(transfer, nullptr); -} - -TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8) { - int8_t data[4 * 4 * 3 * 1]; - TransArgs args{ - reinterpret_cast(data), FORMAT_HWCN, FORMAT_FRACTAL_Z, std::vector({4, 4, 3, 1}), - std::vector({16, 1, 16, 32}), DT_INT8}; - auto transfer = BuildFormatTransfer(args); - EXPECT_NE(transfer, nullptr); -} - TEST_F(UtestFormatTransferHwcnFz, build_transfer_not_support) { float data[50 * 2 * 16 * 16]; TransArgs args{ @@ -34514,14 +34496,5 @@ TEST_F(UtestFormatTransferHwcnFz, build_transfer_not_support) { auto transfer = BuildFormatTransfer(args); EXPECT_EQ(transfer, nullptr); } - -TEST_F(UtestFormatTransferHwcnFz, build_transfer_int8_with_groups) { - int8_t data[4 * 4 * 3 * 1]; - TransArgs args{ - reinterpret_cast(data), FORMAT_HWCN, FORMAT_FRACTAL_Z, std::vector({4, 4, 3, 1}), - std::vector({16, 1, 16, 32}), DT_INT8}; - auto transfer = BuildFormatTransfer(args); - EXPECT_NE(transfer, nullptr); -} } // namespace formats } // namespace ge From 58eab15b5cd0f41a0ba7ec6bbbce8da2b61b8b01 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:26:54 +0800 Subject: [PATCH 03/38] transdata --- .../format_transfer_fractal_z.cc | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 954d0aca..eaf0f9b8 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -203,7 +203,8 @@ Status TransFormatFromNchwToFz(const TransArgs &args, TransResult &result) { std::shared_ptr dst(new (std::nothrow) uint8_t[dst_size], std::default_delete()); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( dst == nullptr, - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, + "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), dst_size); return ACL_ERROR_GE_MEMORY_ALLOCATION;); @@ -249,7 +250,8 @@ Status TransFormatFromNchwToFz(const TransArgs &args, TransResult &result) { } } if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory at offset %ld, error-code %d pad mode %d", offset, + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, + "Failed to operate the dst memory at offset %ld, error-code %d pad mode %d", offset, ret, need_pad_zero); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } @@ -368,7 +370,8 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { std::shared_ptr dst(new (std::nothrow) uint8_t[dst_size], std::default_delete()); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( dst == nullptr, - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, + "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), dst_size); return ACL_ERROR_GE_MEMORY_ALLOCATION;); @@ -390,7 +393,8 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { static_cast(data_size)); } else { if (protected_size < data_size) { - GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Failed to operate the dst memory, protected_size is %ld and size is %ld", + GELOGE(ACL_ERROR_GE_PARAM_INVALID, + "Failed to operate the dst memory, protected_size is %ld and size is %ld", protected_size, data_size); return ACL_ERROR_GE_PARAM_INVALID; } @@ -443,7 +447,8 @@ Status TransFormatNhwcToFz(const TransArgs &args, TransResult &result) { std::shared_ptr dst(new (std::nothrow) uint8_t[dst_size], std::default_delete()); GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( dst == nullptr, - GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", + GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, + "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), dst_size); return ACL_ERROR_GE_MEMORY_ALLOCATION;); @@ -465,7 +470,8 @@ Status TransFormatNhwcToFz(const TransArgs &args, TransResult &result) { static_cast(data_size)); } else { if (protected_size < data_size) { - GELOGE(ACL_ERROR_GE_PARAM_INVALID, "Failed to operate the dst memory, protected_size is %ld and size is %ld", + GELOGE(ACL_ERROR_GE_PARAM_INVALID, + "Failed to operate the dst memory, protected_size is %ld and size is %ld", protected_size, data_size); return ACL_ERROR_GE_PARAM_INVALID; } @@ -477,7 +483,8 @@ Status TransFormatNhwcToFz(const TransArgs &args, TransResult &result) { } } if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, + "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", dst_offset, ret, pad_zero); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } From 8284c726f2fccb5c7a1cae213380cf6cc66a7885 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:28:39 +0800 Subject: [PATCH 04/38] Transdata --- .../formats/format_transfers/format_transfer_fractal_z.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index eaf0f9b8..2449fa01 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -144,6 +144,7 @@ Status TransShapeHwcnToFz(const std::vector &src_shape, DataType data_t auto w = src_shape.at(kHwcnW); auto c = src_shape.at(kHwcnC); auto n = src_shape.at(kHwcnN); + return TransShapeToFz(n, c, h, w, data_type, dst_shape); } @@ -406,7 +407,8 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { } } if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, + "Failed to operate the dst memory at offset %ld, error-code %d, pad mode %d", dst_offset, ret, pad_zero); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } From 34056d6d109006b03540bbf0bc2c475b306c1e7b Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:29:56 +0800 Subject: [PATCH 05/38] Transdata --- tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index 4ba8bd4b..aa748071 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34444,7 +34444,7 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0, - 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0,}; + 0 , 0 , 0, 0 ,0 , 0, 0, 0 , 0 , 0 , 0, 0, 0 , 0 , 0, 0}; FormatTransferFractalZ transfer; ge::Format old_format = FORMAT_FRACTAL_Z; int32_t groups = 2; From 55d661ffebbcd885fc0ac84e7649fcccf1518eeb Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:40:05 +0800 Subject: [PATCH 06/38] Transdata --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 2449fa01..0a0d566d 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -276,7 +276,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, if (cin_ori == 0 || cout_ori == 0) { GELOGE(GRAPH_FAILED, "Cin_ori, cout_ori must not be equal 0, " - "and current cin_ori, cout_ori, groups are %d %d %d", + "and current cin_ori, cout_ori, groups are %lld %lld %lld", cin_ori, cout_ori, groups); return GRAPH_FAILED; } From 4b224a8d6ff27349c632511af8331e00ac34f634 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:46:08 +0800 Subject: [PATCH 07/38] Transdata --- .../formats/format_transfers/format_transfer_fractal_z.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 0a0d566d..1e4092bc 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -275,9 +275,9 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t cout_ori = n_dim / groups; if (cin_ori == 0 || cout_ori == 0) { GELOGE(GRAPH_FAILED, - "Cin_ori, cout_ori must not be equal 0, " - "and current cin_ori, cout_ori, groups are %lld %lld %lld", - cin_ori, cout_ori, groups); + "Cin_ori, cout_ori must not be equal 0, " + "and current cin_ori, cout_ori, groups are %ld %ld %ld", + in_ori, cout_ori, groups); return GRAPH_FAILED; } const int64_t cube_k = args.src_data_type == DT_INT8 ? 32 : 16; From 6ef4fa860c842c0109cd55d8349f41a9ac369d27 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 15:50:53 +0800 Subject: [PATCH 08/38] Transdata --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 1e4092bc..ebdc7295 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -277,7 +277,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, GELOGE(GRAPH_FAILED, "Cin_ori, cout_ori must not be equal 0, " "and current cin_ori, cout_ori, groups are %ld %ld %ld", - in_ori, cout_ori, groups); + cin_ori, cout_ori, groups); return GRAPH_FAILED; } const int64_t cube_k = args.src_data_type == DT_INT8 ? 32 : 16; From e11ff9d949b0994155d62507b6e92409461a9f24 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 16:15:50 +0800 Subject: [PATCH 09/38] Transdata --- .../formats/format_transfers/format_transfer_fractal_z.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index ebdc7295..69d16842 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -304,8 +304,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, return ACL_ERROR_GE_MEMORY_ALLOCATION;); ret = memset_s(dst.get(), size_output_data, 0, size_output_data); if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory , error-code %d, ret %d", - ret); + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory, ret %d", ret); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } for (int64_t g = 0; g < groups; g++) { From 0565225eedb5ec180869dc2566fc12df5abdb5da Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 17 Mar 2021 17:44:39 +0800 Subject: [PATCH 10/38] Transdata --- tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index aa748071..ab1520fd 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34448,7 +34448,7 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { FormatTransferFractalZ transfer; ge::Format old_format = FORMAT_FRACTAL_Z; int32_t groups = 2; - ge::Format new_format = static_cast(ge::GetFormatFromSub(old_format, groups)); + ge::Format new_format = static_cast(ge::GetFormatFromSub(old_format, groups)); TransArgs args{ reinterpret_cast(data), FORMAT_HWCN, new_format, std::vector({1, 1, 1, 2}), std::vector({1, 1, 16, 16}), DT_FLOAT16}; From 2f97c651e2a3dff205e0bd5f1a239ff3ad368e6b Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Fri, 19 Mar 2021 17:15:57 +0800 Subject: [PATCH 11/38] tttt --- .../formats/format_transfers/format_transfer_fractal_z.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 69d16842..968dedf7 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -25,7 +25,7 @@ #include "framework/common/debug/ge_log.h" #include "framework/common/debug/log.h" #include "graph/utils/type_utils.h" - +#include "iostream" namespace ge { namespace formats { namespace { @@ -519,7 +519,8 @@ Status FormatTransferFractalZ::TransFormat(const TransArgs &args, TransResult &r return TransFormatNhwcToFz(args, result); } if ((args.src_format == FORMAT_HWCN) && (GetPrimaryFormat(args.dst_format) == FORMAT_FRACTAL_Z)) { - if (GetSubFormat(args.dst_format) >= 1) { + if (GetSubFormat(args.dst_format) > 1) { + std::cout<<"come in groups process"<= 1) { + if (GetSubFormat(dst_format) > 1) { return TransShapeHwcnToFzWithGroups(src_shape, data_type, dst_shape, GetSubFormat(dst_format)); } return TransShapeHwcnToFz(src_shape, data_type, dst_shape); From 8e25598012539c291545ad65ec39c57001671c4e Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Fri, 19 Mar 2021 17:34:56 +0800 Subject: [PATCH 12/38] sdsd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 968dedf7..030c35db 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -518,6 +518,7 @@ Status FormatTransferFractalZ::TransFormat(const TransArgs &args, TransResult &r if (args.src_format == FORMAT_NHWC && args.dst_format == FORMAT_FRACTAL_Z) { return TransFormatNhwcToFz(args, result); } + std::cout<<"FORMAT:"< 1) { std::cout<<"come in groups process"< Date: Mon, 22 Mar 2021 09:26:26 +0800 Subject: [PATCH 13/38] sdddds --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 030c35db..ee1cf627 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -521,6 +521,7 @@ Status FormatTransferFractalZ::TransFormat(const TransArgs &args, TransResult &r std::cout<<"FORMAT:"< 1) { + std::cout<<"FORMAT_02:"< Date: Mon, 22 Mar 2021 11:03:36 +0800 Subject: [PATCH 14/38] ssdd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index ee1cf627..58e81444 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -419,6 +419,7 @@ Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { result.data = dst; result.length = static_cast(dst_size); + std::cout<<"result.length"< Date: Mon, 22 Mar 2021 18:37:18 +0800 Subject: [PATCH 15/38] ssddd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 58e81444..b66a1d6d 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -342,6 +342,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } result.data = dst; result.length = static_cast(size_output_data); + std::cout<<"result.length groups"< Date: Mon, 22 Mar 2021 19:04:14 +0800 Subject: [PATCH 16/38] ssddd --- .../formats/format_transfers/format_transfer_fractal_z.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index b66a1d6d..82d2ffcb 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -289,10 +289,16 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t c1_dim = cin_opt / cube_k; int64_t g_dim = DivCeil(groups, e_mult); int64_t dim_cin = cin_opt / cube_k; + std::cout<<"cin_opt:"<(size_output_data); + std::cout<<"size_output_data:"< dst(new (std::nothrow) uint8_t[size_output_data], std::default_delete()); From b544767367f9d4105f258e9e22c30b2d2f53840e Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Mon, 22 Mar 2021 19:25:48 +0800 Subject: [PATCH 17/38] sdsd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 82d2ffcb..a223ef92 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -293,7 +293,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, std::cout<<"cout_opt:"< Date: Mon, 22 Mar 2021 19:45:10 +0800 Subject: [PATCH 18/38] Transdata --- .../format_transfers/format_transfer_fractal_z.cc | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index a223ef92..53891991 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -289,16 +289,10 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t c1_dim = cin_opt / cube_k; int64_t g_dim = DivCeil(groups, e_mult); int64_t dim_cin = cin_opt / cube_k; - std::cout<<"cin_opt:"<(size_output_data); - std::cout<<"size_output_data:"< dst(new (std::nothrow) uint8_t[size_output_data], std::default_delete()); @@ -348,7 +342,6 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } result.data = dst; result.length = static_cast(size_output_data); - std::cout<<"result.length groups"<(dst_size); - std::cout<<"result.length"< 1) { - std::cout<<"FORMAT_02:"< Date: Mon, 22 Mar 2021 19:47:35 +0800 Subject: [PATCH 19/38] Transdata for va --- .../formats/format_transfers/format_transfer_fractal_z.cc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 53891991..fe8a8bd2 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -25,7 +25,6 @@ #include "framework/common/debug/ge_log.h" #include "framework/common/debug/log.h" #include "graph/utils/type_utils.h" -#include "iostream" namespace ge { namespace formats { namespace { @@ -304,7 +303,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, return ACL_ERROR_GE_MEMORY_ALLOCATION;); ret = memset_s(dst.get(), size_output_data, 0, size_output_data); if (ret != EOK) { - GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory, ret %d", ret); + GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory, ret is %d", ret); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; } for (int64_t g = 0; g < groups; g++) { From b36bf81ab08ce7049f0583c2b8fa2ff69d36e3de Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Mon, 22 Mar 2021 19:51:53 +0800 Subject: [PATCH 20/38] Transdata --- tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index ab1520fd..2c476234 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34448,7 +34448,7 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { FormatTransferFractalZ transfer; ge::Format old_format = FORMAT_FRACTAL_Z; int32_t groups = 2; - ge::Format new_format = static_cast(ge::GetFormatFromSub(old_format, groups)); + ge::Format new_format = static_cast(ge::GetFormatFromSub(old_format, groups)); TransArgs args{ reinterpret_cast(data), FORMAT_HWCN, new_format, std::vector({1, 1, 1, 2}), std::vector({1, 1, 16, 16}), DT_FLOAT16}; From 0ffa146eaa61af17216b2e256e5aa76daf86db58 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Mon, 22 Mar 2021 19:52:50 +0800 Subject: [PATCH 21/38] Transdata for va --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index fe8a8bd2..76c59a2f 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -25,6 +25,7 @@ #include "framework/common/debug/ge_log.h" #include "framework/common/debug/log.h" #include "graph/utils/type_utils.h" + namespace ge { namespace formats { namespace { From b3082e8faff21925045e89b5ba2bbf8520d05087 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Mon, 22 Mar 2021 19:57:46 +0800 Subject: [PATCH 22/38] Transdata --- .../format_transfer_fractal_z.cc | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 76c59a2f..f7eefd52 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -319,16 +319,13 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t src_co = g * cout_ori + n; int64_t tempory = dst_ci % cube_k; int64_t srx_inx = 0; - int64_t dst_inx = - (g / e_mult) * kDim * c1_dim * h_dim * w_dim * cout_opt * - cube_k + - d * c1_dim * h_dim * w_dim * cout_opt * cube_k + - (dst_ci / cube_k) * h_dim * w_dim * cout_opt * cube_k + - h * w_dim * cout_opt * cube_k + w * cout_opt * cube_k + - dst_co * cube_k + tempory; - srx_inx = d * h_dim * w_dim * c_dim * n_dim + - h * w_dim * c_dim * n_dim + w * c_dim * n_dim + - c * n_dim + src_co; + int64_t dst_inx = (g / e_mult) * kDim * c1_dim * h_dim * w_dim * cout_opt * cube_k + + d * c1_dim * h_dim * w_dim * cout_opt * cube_k + + (dst_ci / cube_k) * h_dim * w_dim * cout_opt * cube_k + + h * w_dim * cout_opt * cube_k + w * cout_opt * cube_k + + dst_co * cube_k + tempory; + srx_inx = d * h_dim * w_dim * c_dim * n_dim + h * w_dim * c_dim * n_dim + + w * c_dim * n_dim + c * n_dim + src_co; char *dst_data = reinterpret_cast(dst.get() + dst_inx * data_size); const char *src_data = reinterpret_cast(args.data + srx_inx * data_size); for (int64_t index = 0; index < data_size; index++) { From 992ac5e7c0452f34ffd7d6e069f446732721bdad Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 09:45:28 +0800 Subject: [PATCH 23/38] Transdata --- .../formats/format_transfers/format_transfer_fractal_z.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index f7eefd52..ec74b473 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -338,6 +338,9 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } } result.data = dst; + for (int i = 0; i < 256; ++i) { + std::cout<<(reinterpret_cast(result.data.get()))[i]<(size_output_data); return SUCCESS; } From a17d5b7a0c26897fc0078e2169137f8bdf8ba6c3 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 15:41:22 +0800 Subject: [PATCH 24/38] sdsdd --- .../format_transfer_fractal_z.cc | 9 +- .../format_transfer_hwcn_fractalz_unittest.cc | 199 ++++++++++++++++++ 2 files changed, 205 insertions(+), 3 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index ec74b473..091fe475 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -338,10 +338,13 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } } result.data = dst; - for (int i = 0; i < 256; ++i) { - std::cout<<(reinterpret_cast(result.data.get()))[i]<(size_output_data); + for (int i = 0; i < result.length / 2; ++i) { + if((i+1)%16 == 0){ + std::cout<(result.data.get()))[i]<<" "; + } return SUCCESS; } Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index 2c476234..e4d27073 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34461,6 +34461,205 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { } } +TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { +uint16_t data[3 * 3 * 4 * 8] = { +-11 , 99 ,-68 , 2 , -14 ,-59 , -24 ,-100, + 4 , 65 ,-11 , -7 , -74 ,-28 , 71 , -81, +-94 , 63 , 80 , -7 , 95 , 29 , -92 , 76, + 88 ,-68 , 67 , -98 , -82 , 11 , -20 , -68, + 36 , 17 , 15 , 89 , 31 , -8 , -51 , -49, +-49 , 89 , 79 , -97 , -7 ,-91 , 14 , -34, + 55 ,-40 , 85 , -59 , 31 , 35 , -41 , 89, + -4 ,-82 ,-90 , -48 , -44 ,-19 , -9 , 84, +100 , 43 , -7 , 94 , -4 , 91 , 67 , 16, +-63 , 79 ,-20 , 62 , -55 ,-38 , 13 , 61, + 98 , 99 ,-44 , 0 , 97 , 42 , -65 , -80, + 78 , 56 ,-26 , -17 , -23 , 22 , 76 , -84, + 34 , 88 ,-38 , -57 , -37 , 77 , 46 , 28, + 48 ,-11 , 6 , 18 , 8 ,-66 , -24 , 29, + -7 , 72 ,-34 , -79 , -99 ,-14 , -75 , 62, +-44 ,-98 ,-11 , 31 , -4 , 79 , -51 , -37, +-84 , -3 , 89 , -74 , 68 ,-85 , -17 , 93, + 81 ,-88 ,-38 , 8 , 69 , 82 , -91 , -91, +-45 , 42 , 7 , -96 , -81 , 96 , 39 , -35, +-93 ,-46 ,-73 , -7 , 9 , 81 , -5 , -63, +-35 ,-30 , 27 , -42 , 20 ,-52 , 36 , -91, +-87 , 1 , 8 , 7 , -78 , 21 , -76 , 97, + 52 ,-18 ,-55 , 57 , 95 , 67 , 3 , 69, +-98 , 85 ,-75 , 75 , -38 , -3 , -94 , 66, + 92 , 27 , -9 , 39 , 5 , 21 , -4 , 48, +-55 , 38 , 58 , -84 , -23 ,-13 , -71 , -91, + 99 , 58 ,-58 , -16 , 86 , 45 , -63 , -97, +-30 ,-10 ,-21 , -37 , 78 ,-94 , -8 , -49, +-18 ,-52 ,-67 , 65 , 78 ,-82 , -74 , -35, +-97 ,-15 , 43 , -22 , -30 ,-87 , 98 , 91, +-22 ,-88 , 83 , -63 , 79 , 63 , 42 , -74, +-29 ,-62 , 2 , -97 , -65 ,-45 , -76 , -57, +-71 , 65 , 0 , 69 , -76 , 41 , 58 , 98, + 90 , -3 , 75 , -56 , -41 ,-66 , -41 , 96, +-44 , 87 , 61 , -26 , -62 , 57 , -49 , -29, +-49 , 94 ,-90 , 96 , 33 , 32 , 10 , 25}; + uint16_t ret[1 * 1 * 16 * 16] ={ + -11 , 4 ,-94 , 88 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 99 , 65 , 63 ,-68 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -68 , -11 , 80 , 67 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2 , -7 , -7 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-14 , -74, 95, -82, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-59 , -28, 29, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-24 , 71, -92, -20, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,100 , -81, 76, -68, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 36 , -49 , 55 , -4 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17 , 89 ,-40 ,-82 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15 , 79 , 85 ,-90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89 , -97 ,-59 ,-48 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 31 , -7, 31, -44, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , -8 , -91, 35, -19, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-51 , 14, -41, -9, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-49 , -34, 89, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , +-100 , -63 , 98 , 78 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 43 , 79 , 99 , 56 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -7 , -20 ,-44 ,-26 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94 , 62 , 0 ,-17 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , -4 , -55, 97, -23, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 91 , -38, 42, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 67 , 13, -65, 76, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 16 , 61, -80, -84, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , + 34 , 48 , -7 ,-44 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88 , -11 , 72 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -38 , 6 ,-34 ,-11 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -57 , 18 ,-79 , 31 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-37 , 8, -99, -4, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 77 , -66, -14, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 46 , -24, -75, -51, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 28 , 29, 62, -37, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + -84 , 81 ,-45 ,-93 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -3 , -88 , 42 ,-46 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89 , -38 , 7 ,-73 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -74 , 8 ,-96 , -7 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 68 , 69, -81, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-85 , 82, 96, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-17 , -91, 39, -5, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 93 , -91, -35, -63, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + -35 , -87 , 52 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -30 , 1 ,-18 , 85 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27 , 8 ,-55 ,-75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -42 , 7 , 57 , 75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 20 , -78, 95, -38, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-52 , 21, 67, -3, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 36 , -76, 3, -94, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-91 , 97, 69, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , + 92 , -55 , 99 ,-30 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27 , 38 , 58 ,-10 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -9 , 58 ,-58 ,-21 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39 , -84 ,-16 ,-37 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 5 , -23, 86, 78, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 21 , -13, 45, -94, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , -4 , -71, -63, -8, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 48 , -91, -97, -49, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + -18 , -97 ,-22 ,-29 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -52 , -15 ,-88 ,-62 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -67 , 43 , 83 , 2 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65 , -22 ,-63 ,-97 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 78 , -30, 79, -65, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-82 , -87, 63, -45, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-74 , 98, 42, -76, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-35 , 91, -74, -57, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + -71 , 90 ,-44 ,-49 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65 , -3 , 87 , 94 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 75 , 61 ,-90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69 , -56 ,-26 , 96 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,-76 , -41, -62, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 41 , -66, 57, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 58 , -41, -49, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 98 , 96, -29, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; + FormatTransferFractalZ transfer; + ge::Format old_format = FORMAT_FRACTAL_Z; + int32_t groups = 2; + ge::Format new_format = static_cast(ge::GetFormatFromSub(old_format, groups)); + TransArgs args{ + reinterpret_cast(data), FORMAT_HWCN, new_format, std::vector({3, 3, 4, 8}), + std::vector({9, 1, 16, 16}), DT_FLOAT16}; + + TransResult result; + EXPECT_EQ(transfer.TransFormat(args, result), SUCCESS); + EXPECT_EQ(result.length, sizeof(ret) / sizeof(ret[0]) * 2); + for (int i = 0; i < sizeof(ret) / sizeof(ret[0]); ++i) { + EXPECT_EQ((reinterpret_cast(result.data.get()))[i], ret[i]); + } +} + TEST_F(UtestFormatTransferHwcnFz, build_transfer_fp32) { float data[5 * 5 * 31 * 17]; TransArgs args{ From 9c29d07b6884516f037a51284ba0a461293ddd9c Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 15:44:41 +0800 Subject: [PATCH 25/38] sdsd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 091fe475..2ef10cde 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -339,7 +339,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } result.data = dst; result.length = static_cast(size_output_data); - for (int i = 0; i < result.length / 2; ++i) { + for (int i = 0; i < (result.length / 2); ++i) { if((i+1)%16 == 0){ std::cout< Date: Tue, 23 Mar 2021 15:48:22 +0800 Subject: [PATCH 26/38] sdsd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 2ef10cde..dabb668d 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -339,7 +339,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } result.data = dst; result.length = static_cast(size_output_data); - for (int i = 0; i < (result.length / 2); ++i) { + for (int i = 0; i < ((result.length) / 2); ++i) { if((i+1)%16 == 0){ std::cout< Date: Tue, 23 Mar 2021 15:58:03 +0800 Subject: [PATCH 27/38] sdsd --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index dabb668d..458e7cea 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -339,7 +339,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } result.data = dst; result.length = static_cast(size_output_data); - for (int i = 0; i < ((result.length) / 2); ++i) { + for (size_t i = 0; i < ((result.length) / 2); ++i) { if((i+1)%16 == 0){ std::cout< Date: Tue, 23 Mar 2021 16:10:07 +0800 Subject: [PATCH 28/38] sddds --- tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index e4d27073..7397fd20 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34461,7 +34461,7 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { } } -TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { +TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups_wewe) { uint16_t data[3 * 3 * 4 * 8] = { -11 , 99 ,-68 , 2 , -14 ,-59 , -24 ,-100, 4 , 65 ,-11 , -7 , -74 ,-28 , 71 , -81, From f304ba98b81351519a94f1a81497cfe96cf7c4d3 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 16:15:01 +0800 Subject: [PATCH 29/38] sdsdsd --- tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index 7397fd20..63642e23 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34499,7 +34499,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 90 , -3 , 75 , -56 , -41 ,-66 , -41 , 96, -44 , 87 , 61 , -26 , -62 , 57 , -49 , -29, -49 , 94 ,-90 , 96 , 33 , 32 , 10 , 25}; - uint16_t ret[1 * 1 * 16 * 16] ={ + uint16_t ret[9 * 1 * 16 * 16] ={ -11 , 4 ,-94 , 88 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99 , 65 , 63 ,-68 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -68 , -11 , 80 , 67 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, From f8460f9e1d7571414b47d445d13808b357311aea Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 16:18:06 +0800 Subject: [PATCH 30/38] asdsad --- .../format_transfer_hwcn_fractalz_unittest.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index 63642e23..73e6d64e 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34515,7 +34515,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36 , -49 , 55 , -4 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17 , 89 ,-40 ,-82 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15 , 79 , 85 ,-90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34531,7 +34531,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -100 , -63 , 98 , 78 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43 , 79 , 99 , 56 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7 , -20 ,-44 ,-26 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34547,7 +34547,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34 , 48 , -7 ,-44 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88 , -11 , 72 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -38 , 6 ,-34 ,-11 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34563,7 +34563,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -84 , 81 ,-45 ,-93 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -3 , -88 , 42 ,-46 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89 , -38 , 7 ,-73 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34579,7 +34579,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -35 , -87 , 52 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -30 , 1 ,-18 , 85 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27 , 8 ,-55 ,-75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34595,7 +34595,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 92 , -55 , 99 ,-30 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27 , 38 , 58 ,-10 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -9 , 58 ,-58 ,-21 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34611,7 +34611,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -18 , -97 ,-22 ,-29 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -52 , -15 ,-88 ,-62 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -67 , 43 , 83 , 2 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34627,7 +34627,7 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, , + 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -71 , 90 ,-44 ,-49 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65 , -3 , 87 , 94 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 75 , 61 ,-90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, From 42c3f49c8296b16a91d141b511d5ae1afe7ebf80 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 16:38:15 +0800 Subject: [PATCH 31/38] sdwew --- .../format_transfer_hwcn_fractalz_unittest.cc | 215 +++++++++--------- 1 file changed, 108 insertions(+), 107 deletions(-) diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index 73e6d64e..85084fe3 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34463,51 +34463,51 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups_wewe) { uint16_t data[3 * 3 * 4 * 8] = { --11 , 99 ,-68 , 2 , -14 ,-59 , -24 ,-100, - 4 , 65 ,-11 , -7 , -74 ,-28 , 71 , -81, --94 , 63 , 80 , -7 , 95 , 29 , -92 , 76, - 88 ,-68 , 67 , -98 , -82 , 11 , -20 , -68, - 36 , 17 , 15 , 89 , 31 , -8 , -51 , -49, --49 , 89 , 79 , -97 , -7 ,-91 , 14 , -34, - 55 ,-40 , 85 , -59 , 31 , 35 , -41 , 89, - -4 ,-82 ,-90 , -48 , -44 ,-19 , -9 , 84, -100 , 43 , -7 , 94 , -4 , 91 , 67 , 16, --63 , 79 ,-20 , 62 , -55 ,-38 , 13 , 61, - 98 , 99 ,-44 , 0 , 97 , 42 , -65 , -80, - 78 , 56 ,-26 , -17 , -23 , 22 , 76 , -84, - 34 , 88 ,-38 , -57 , -37 , 77 , 46 , 28, - 48 ,-11 , 6 , 18 , 8 ,-66 , -24 , 29, - -7 , 72 ,-34 , -79 , -99 ,-14 , -75 , 62, --44 ,-98 ,-11 , 31 , -4 , 79 , -51 , -37, --84 , -3 , 89 , -74 , 68 ,-85 , -17 , 93, - 81 ,-88 ,-38 , 8 , 69 , 82 , -91 , -91, --45 , 42 , 7 , -96 , -81 , 96 , 39 , -35, --93 ,-46 ,-73 , -7 , 9 , 81 , -5 , -63, --35 ,-30 , 27 , -42 , 20 ,-52 , 36 , -91, --87 , 1 , 8 , 7 , -78 , 21 , -76 , 97, - 52 ,-18 ,-55 , 57 , 95 , 67 , 3 , 69, --98 , 85 ,-75 , 75 , -38 , -3 , -94 , 66, - 92 , 27 , -9 , 39 , 5 , 21 , -4 , 48, --55 , 38 , 58 , -84 , -23 ,-13 , -71 , -91, - 99 , 58 ,-58 , -16 , 86 , 45 , -63 , -97, --30 ,-10 ,-21 , -37 , 78 ,-94 , -8 , -49, --18 ,-52 ,-67 , 65 , 78 ,-82 , -74 , -35, --97 ,-15 , 43 , -22 , -30 ,-87 , 98 , 91, --22 ,-88 , 83 , -63 , 79 , 63 , 42 , -74, --29 ,-62 , 2 , -97 , -65 ,-45 , -76 , -57, --71 , 65 , 0 , 69 , -76 , 41 , 58 , 98, - 90 , -3 , 75 , -56 , -41 ,-66 , -41 , 96, --44 , 87 , 61 , -26 , -62 , 57 , -49 , -29, --49 , 94 ,-90 , 96 , 33 , 32 , 10 , 25}; + 11 , 99 , 68 , 2 , 14 , 59 , 24 , 100, + 4 , 65 , 11 , 7 , 74 , 28 , 71 , 81, + 94 , 63 , 80 , 7 , 95 , 29 , 92 , 76, + 88 , 68 , 67 , 98 , 82 , 11 , 20 , 68, + 36 , 17 , 15 , 89 , 31 , 8 , 51 , 49, + 49 , 89 , 79 , 97 , 7 , 91 , 14 , 34, + 55 , 40 , 85 , 59 , 31 , 35 , 41 , 89, + 4 , 82 , 90 , 48 , 44 , 19 , 9 , 84, +100 , 43 , 7 , 94 , 4 , 91 , 67 , 16, + 63 , 79 , 20 , 62 , 55 , 38 , 13 , 61, + 98 , 99 , 44 , 0 , 97 , 42 , 65 , 80, + 78 , 56 , 26 , 17 , 23 , 22 , 76 , 84, + 34 , 88 , 38 , 57 , 37 , 77 , 46 , 28, + 48 , 11 , 6 , 18 , 8 , 66 , 24 , 29, + 7 , 72 , 34 , 79 , 99 , 14 , 75 , 62, + 44 , 98 , 11 , 31 , 4 , 79 , 51 , 37, + 84 , 3 , 89 , 74 , 68 , 85 , 17 , 93, + 81 , 88 , 38 , 8 , 69 , 82 , 91 , 91, + 45 , 42 , 7 , 96 , 81 , 96 , 39 , 35, + 93 , 46 , 73 , 7 , 9 , 81 , 5 , 63, + 35 , 30 , 27 , 42 , 20 , 52 , 36 , 91, + 87 , 1 , 8 , 7 , 78 , 21 , 76 , 97, + 52 , 18 , 55 , 57 , 95 , 67 , 3 , 69, + 98 , 85 , 75 , 75 , 38 , 3 , 94 , 66, + 92 , 27 , 9 , 39 , 5 , 21 , 4 , 48, + 55 , 38 , 58 , 84 , 23 , 13 , 71 , 91, + 99 , 58 , 58 , 16 , 86 , 45 , 63 , 97, + 30 , 10 , 21 , 37 , 78 , 94 , 8 , 49, + 18 , 52 , 67 , 65 , 78 , 82 , 74 , 35, + 97 , 15 , 43 , 22 , 30 , 87 , 98 , 91, + 22 , 88 , 83 , 63 , 79 , 63 , 42 , 74, + 29 , 62 , 2 , 97 , 65 , 45 , 76 , 57, + 71 , 65 , 0 , 69 , 76 , 41 , 58 , 98, + 90 , 3 , 75 , 56 , 41 , 66 , 41 , 96, + 44 , 87 , 61 , 26 , 62 , 57 , 49 , 29, + 49 , 94 , 90 , 96 , 33 , 32 , 10 , 25}; uint16_t ret[9 * 1 * 16 * 16] ={ - -11 , 4 ,-94 , 88 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 99 , 65 , 63 ,-68 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -68 , -11 , 80 , 67 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2 , -7 , -7 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-14 , -74, 95, -82, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-59 , -28, 29, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-24 , 71, -92, -20, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,100 , -81, 76, -68, 0, 0, 0, 0, 0, 0, 0, 0, + 11 , 4 , 94 , 88 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 99 , 65 , 63 , 68 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 68 , 11 , 80 , 67 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2 , 7 , 7 , 98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 14 , 74, 95, 82, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 59 , 28, 29, 11, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 24 , 71, 92, 20, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 ,100 , 81, 76, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34516,14 +34516,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36 , -49 , 55 , -4 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 17 , 89 ,-40 ,-82 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 15 , 79 , 85 ,-90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89 , -97 ,-59 ,-48 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 31 , -7, 31, -44, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , -8 , -91, 35, -19, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-51 , 14, -41, -9, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-49 , -34, 89, 84, 0, 0, 0, 0, 0, 0, 0, 0, + 36 , 49 , 55 , 4 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 17 , 89 , 40 , 82 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 15 , 79 , 85 , 90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89 , 97 , 59 , 48 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 31 , 7, 31, 44, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 8 , 91, 35, 19, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 51 , 14, 41, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 49 , 34, 89, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34532,14 +34532,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, --100 , -63 , 98 , 78 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 100 , 63 , 98 , 78 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43 , 79 , 99 , 56 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -7 , -20 ,-44 ,-26 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 94 , 62 , 0 ,-17 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , -4 , -55, 97, -23, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 91 , -38, 42, 22, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 67 , 13, -65, 76, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 16 , 61, -80, -84, 0, 0, 0, 0, 0, 0, 0, 0, + 7 , 20 , 44 , 26 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 94 , 62 , 0 , 17 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 4 , 55, 97, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 91 , 38, 42, 22, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 67 , 13, 65, 76, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 16 , 61, 80, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34548,14 +34548,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34 , 48 , -7 ,-44 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 88 , -11 , 72 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -38 , 6 ,-34 ,-11 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -57 , 18 ,-79 , 31 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-37 , 8, -99, -4, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 77 , -66, -14, 79, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 46 , -24, -75, -51, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 28 , 29, 62, -37, 0, 0, 0, 0, 0, 0, 0, 0, + 34 , 48 , 7 , 44 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 88 , 11 , 72 , 98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 38 , 6 , 34 , 11 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 57 , 18 , 79 , 31 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 37 , 8, 99, 4, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 77 , 66, 14, 79, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 46 , 24, 75, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 28 , 29, 62, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34564,14 +34564,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -84 , 81 ,-45 ,-93 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -3 , -88 , 42 ,-46 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 89 , -38 , 7 ,-73 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -74 , 8 ,-96 , -7 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 68 , 69, -81, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-85 , 82, 96, 81, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-17 , -91, 39, -5, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 93 , -91, -35, -63, 0, 0, 0, 0, 0, 0, 0, 0, + 84 , 81 , 45 , 93 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 3 , 88 , 42 , 46 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 89 , 38 , 7 , 73 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 74 , 8 , 96 , 7 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 68 , 69, 81, 9, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 85 , 82, 96, 81, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 17 , 91, 39, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 93 , 91, 35, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34580,14 +34580,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -35 , -87 , 52 ,-98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -30 , 1 ,-18 , 85 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27 , 8 ,-55 ,-75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -42 , 7 , 57 , 75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 20 , -78, 95, -38, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-52 , 21, 67, -3, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 36 , -76, 3, -94, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-91 , 97, 69, 66, 0, 0, 0, 0, 0, 0, 0, 0, + 35 , 87 , 52 , 98 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 30 , 1 , 18 , 85 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27 , 8 , 55 , 75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 42 , 7 , 57 , 75 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 20 , 78, 95, 38, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 52 , 21, 67, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 36 , 76, 3, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 91 , 97, 69, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34596,14 +34596,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 92 , -55 , 99 ,-30 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27 , 38 , 58 ,-10 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -9 , 58 ,-58 ,-21 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 39 , -84 ,-16 ,-37 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 5 , -23, 86, 78, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 21 , -13, 45, -94, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , -4 , -71, -63, -8, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 48 , -91, -97, -49, 0, 0, 0, 0, 0, 0, 0, 0, + 92 , 55 , 99 , 30 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 27 , 38 , 58 , 10 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 9 , 58 , 58 , 21 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 39 , 84 , 16 , 37 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 5 , 23, 86, 78, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 21 , 13, 45, 94, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 4 , 71, 63, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 48 , 91, 97, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34612,14 +34612,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -18 , -97 ,-22 ,-29 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -52 , -15 ,-88 ,-62 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -67 , 43 , 83 , 2 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65 , -22 ,-63 ,-97 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 78 , -30, 79, -65, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-82 , -87, 63, -45, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-74 , 98, 42, -76, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-35 , 91, -74, -57, 0, 0, 0, 0, 0, 0, 0, 0, + 18 , 97 , 22 , 29 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 52 , 15 , 88 , 62 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 67 , 43 , 83 , 2 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65 , 22 , 63 , 97 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 78 , 30, 79, 65, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 82 , 87, 63, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 74 , 98, 42, 76, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 35 , 91, 74, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34628,14 +34628,14 @@ uint16_t data[3 * 3 * 4 * 8] = { 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - -71 , 90 ,-44 ,-49 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 65 , -3 , 87 , 94 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 75 , 61 ,-90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 69 , -56 ,-26 , 96 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 ,-76 , -41, -62, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 41 , -66, 57, 32, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 58 , -41, -49, 10, 0, 0, 0, 0, 0, 0, 0, 0, - 0 , 0 , 0 , 0 , 98 , 96, -29, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 71 , 90 , 44 , 49 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 65 , 3 , 87 , 94 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 75 , 61 , 90 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 69 , 56 , 26 , 96 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 76 , 41, 62, 33, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 41 , 66, 57, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 58 , 41, 49, 10, 0, 0, 0, 0, 0, 0, 0, 0, + 0 , 0 , 0 , 0 , 98 , 96, 29, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 , 0 , 0 , 0 , 0 , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -34660,6 +34660,7 @@ uint16_t data[3 * 3 * 4 * 8] = { } } + TEST_F(UtestFormatTransferHwcnFz, build_transfer_fp32) { float data[5 * 5 * 31 * 17]; TransArgs args{ From 9e32b684588de1358990d52a934e2ed1791e5daa Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Tue, 23 Mar 2021 19:41:13 +0800 Subject: [PATCH 32/38] Transdata --- .../formats/format_transfers/format_transfer_fractal_z.cc | 6 ------ .../ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 458e7cea..f7eefd52 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -339,12 +339,6 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } result.data = dst; result.length = static_cast(size_output_data); - for (size_t i = 0; i < ((result.length) / 2); ++i) { - if((i+1)%16 == 0){ - std::cout<(result.data.get()))[i]<<" "; - } return SUCCESS; } Status TransFormatHwcnToFz(const TransArgs &args, TransResult &result) { diff --git a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc index 85084fe3..651b733b 100644 --- a/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc +++ b/tests/ut/ge/common/format_transfer_hwcn_fractalz_unittest.cc @@ -34461,7 +34461,7 @@ TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups) { } } -TEST_F(UtestFormatTransferHwcnFz, fp16_1c_1n_with_groups_wewe) { +TEST_F(UtestFormatTransferHwcnFz, fp16_4c_8n_with_groups_02) { uint16_t data[3 * 3 * 4 * 8] = { 11 , 99 , 68 , 2 , 14 , 59 , 24 , 100, 4 , 65 , 11 , 7 , 74 , 28 , 71 , 81, From 604e04bdb2348b256ae6852ea13fad26a77255ad Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Wed, 24 Mar 2021 17:53:48 +0800 Subject: [PATCH 33/38] Transdata --- .../format_transfer_fractal_z.cc | 43 ++++++------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index f7eefd52..24f9ba50 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -49,18 +49,6 @@ static int64_t Lcm(int64_t a, int64_t b) { int64_t temp = (a * b) / (Measure(a, b)); return temp; } -// get the result of two number divisor and let result round up -static int64_t DivCeil(int64_t a, int64_t b) { - if (b == 0) { - return -1; - } else { - int64_t ret = a / b; - if ((a % b) != 0) { - ret++; - } - return ret; - } -} Status CheckDataTypeSupport(DataType data_type) { return GetSizeByDataType(data_type) > 0 ? SUCCESS : UNSUPPORTED; } @@ -94,22 +82,22 @@ Status TransShapeToFz(int64_t n, int64_t c, int64_t h, int64_t w, DataType data_ return SUCCESS; } -Status TransShapeToFzWithGroups(int64_t n, int64_t c, int64_t h, int64_t w, DataType data_type, std::vector &dst_shape - , int64_t groups) { +Status TransShapeToFzWithGroups(int64_t n, int64_t c, int64_t h, int64_t w, DataType data_type, std::vector &dst_shape, + int64_t groups) { auto c0 = GetCubeSizeByDataType(data_type); if (c0 < 0) { return ACL_ERROR_GE_DATATYPE_INVALID; } int64_t cin_ori = c; int64_t cout_ori = n / groups; - int64_t cube_k = data_type == DT_INT8 ? 32 : 16; + int64_t cube_k = GetCubeSizeByDataType(data_type); int64_t e_mult = std::min( Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), groups); - int64_t cin_opt = DivCeil(e_mult * cin_ori, cube_k) * cube_k; + int64_t cin_opt = Ceil(e_mult * cin_ori, cube_k) * cube_k; int64_t c1_dim = cin_opt / cube_k; - int64_t g_dim = DivCeil(groups, e_mult); - auto n1 = DivCeil(cout_ori * e_mult, kCubeN); + int64_t g_dim = Ceil(groups, e_mult); + auto n1 = Ceil(cout_ori * e_mult, kCubeN); dst_shape.clear(); dst_shape.push_back(g_dim * c1_dim * h * w); dst_shape.push_back(n1); @@ -274,24 +262,21 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t cin_ori = c_dim; int64_t cout_ori = n_dim / groups; if (cin_ori == 0 || cout_ori == 0) { - GELOGE(GRAPH_FAILED, - "Cin_ori, cout_ori must not be equal 0, " - "and current cin_ori, cout_ori, groups are %ld %ld %ld", - cin_ori, cout_ori, groups); + GELOGE(GRAPH_FAILED, "Cin_ori, cout_ori must not be equal 0, and current cin_ori, cout_ori," + "groups are %ld %ld %ld",cin_ori, cout_ori, groups); return GRAPH_FAILED; } - const int64_t cube_k = args.src_data_type == DT_INT8 ? 32 : 16; + const int64_t cube_k = GetCubeSizeByDataType(data_type); int64_t e_mult = std::min( Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), groups); - int64_t cin_opt = DivCeil(e_mult * cin_ori, cube_k) * cube_k; - int64_t cout_opt = DivCeil(e_mult * cout_ori, kCubeN) * kCubeN; + int64_t cin_opt = Ceil(e_mult * cin_ori, cube_k) * cube_k; + int64_t cout_opt = Ceil(e_mult * cout_ori, kCubeN) * kCubeN; int64_t c1_dim = cin_opt / cube_k; - int64_t g_dim = DivCeil(groups, e_mult); + int64_t g_dim = Ceil(groups, e_mult); int64_t dim_cin = cin_opt / cube_k; int64_t data_size = GetSizeByDataType(args.src_data_type); - int64_t size_output_data = - g_dim * kDim * dim_cin * h_dim * w_dim * cout_opt * cube_k * data_size; + int64_t size_output_data = g_dim * kDim * dim_cin * h_dim * w_dim * cout_opt * cube_k * data_size; GE_CHK_BOOL_EXEC_NOLOG(size_output_data != 0, result.length = static_cast(size_output_data); return SUCCESS;); errno_t ret = EOK; @@ -302,7 +287,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), size_output_data); return ACL_ERROR_GE_MEMORY_ALLOCATION;); - ret = memset_s(dst.get(), size_output_data, 0, size_output_data); + ret = memset_s(dst.get(), static_cast(size_output_data), 0, static_cast(size_output_data)); if (ret != EOK) { GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory, ret is %d", ret); return ACL_ERROR_GE_MEMORY_OPERATE_FAILED; From a9a8320ecfa7a3dd883605e8e53bab6f3a163edf Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Thu, 25 Mar 2021 09:50:25 +0800 Subject: [PATCH 34/38] Transdata --- .../format_transfer_fractal_z.cc | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 24f9ba50..dc84e267 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -29,9 +29,8 @@ namespace ge { namespace formats { namespace { -constexpr int64_t kCubeN = 16; constexpr int64_t kDim = 1; - +constexpr int64_t kCubeN = 16; static int64_t Measure(int64_t x, int64_t y) { int64_t z = y; while (x % y != 0) { @@ -266,7 +265,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, "groups are %ld %ld %ld",cin_ori, cout_ori, groups); return GRAPH_FAILED; } - const int64_t cube_k = GetCubeSizeByDataType(data_type); + const int64_t cube_k = GetCubeSizeByDataType(args.src_data_type); int64_t e_mult = std::min( Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), groups); @@ -277,16 +276,18 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t dim_cin = cin_opt / cube_k; int64_t data_size = GetSizeByDataType(args.src_data_type); int64_t size_output_data = g_dim * kDim * dim_cin * h_dim * w_dim * cout_opt * cube_k * data_size; - GE_CHK_BOOL_EXEC_NOLOG(size_output_data != 0, result.length = static_cast(size_output_data); - return SUCCESS;); + if(size_output_data == 0){ + result.length = static_cast(size_output_data); + return SUCCESS; + } errno_t ret = EOK; std::shared_ptr dst(new (std::nothrow) uint8_t[size_output_data], std::default_delete()); - GE_CHK_BOOL_TRUE_EXEC_WITH_LOG( - dst == nullptr, + if (dst == nullptr) { GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", - TypeUtils::FormatToSerialString(args.src_format).c_str(), - TypeUtils::FormatToSerialString(args.dst_format).c_str(), size_output_data); - return ACL_ERROR_GE_MEMORY_ALLOCATION;); + TypeUtils::FormatToSerialString(args.src_format).c_str(), + TypeUtils::FormatToSerialString(args.dst_format).c_str(), size_output_data); + return ACL_ERROR_GE_MEMORY_ALLOCATION; + } ret = memset_s(dst.get(), static_cast(size_output_data), 0, static_cast(size_output_data)); if (ret != EOK) { GELOGE(ACL_ERROR_GE_MEMORY_OPERATE_FAILED, "Failed to operate the dst memory, ret is %d", ret); From faf1d656e6e7be6d5fa69cc3ccc1e22535606075 Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Thu, 25 Mar 2021 09:51:53 +0800 Subject: [PATCH 35/38] Transdata --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index dc84e267..ddbc48f5 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -276,7 +276,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t dim_cin = cin_opt / cube_k; int64_t data_size = GetSizeByDataType(args.src_data_type); int64_t size_output_data = g_dim * kDim * dim_cin * h_dim * w_dim * cout_opt * cube_k * data_size; - if(size_output_data == 0){ + if (size_output_data == 0) { result.length = static_cast(size_output_data); return SUCCESS; } From 219170dc9d8b37f8ee01dc01d72e135fb1b021ee Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Thu, 25 Mar 2021 09:52:44 +0800 Subject: [PATCH 36/38] Transdata` --- .../formats/format_transfers/format_transfer_fractal_z.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index ddbc48f5..8147c279 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -277,8 +277,8 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, int64_t data_size = GetSizeByDataType(args.src_data_type); int64_t size_output_data = g_dim * kDim * dim_cin * h_dim * w_dim * cout_opt * cube_k * data_size; if (size_output_data == 0) { - result.length = static_cast(size_output_data); - return SUCCESS; + result.length = static_cast(size_output_data); + return SUCCESS; } errno_t ret = EOK; std::shared_ptr dst(new (std::nothrow) uint8_t[size_output_data], std::default_delete()); From 67181c11770ad8d37097700359519bc8aba9e70c Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Thu, 25 Mar 2021 09:54:17 +0800 Subject: [PATCH 37/38] transdata111 --- ge/common/formats/format_transfers/format_transfer_fractal_z.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index 8147c279..b6565ba0 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -286,7 +286,7 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, GELOGE(ACL_ERROR_GE_MEMORY_ALLOCATION, "Failed to trans format from %s to %s, can not alloc the memory for dst buf %ld", TypeUtils::FormatToSerialString(args.src_format).c_str(), TypeUtils::FormatToSerialString(args.dst_format).c_str(), size_output_data); - return ACL_ERROR_GE_MEMORY_ALLOCATION; + return ACL_ERROR_GE_MEMORY_ALLOCATION; } ret = memset_s(dst.get(), static_cast(size_output_data), 0, static_cast(size_output_data)); if (ret != EOK) { From c34f18ea54369793560a7ac9ccfc646ec538b51e Mon Sep 17 00:00:00 2001 From: zk <694972388@qq.com> Date: Thu, 25 Mar 2021 10:51:49 +0800 Subject: [PATCH 38/38] Transdsd --- .../format_transfers/format_transfer_fractal_z.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc index b6565ba0..c629a381 100644 --- a/ge/common/formats/format_transfers/format_transfer_fractal_z.cc +++ b/ge/common/formats/format_transfers/format_transfer_fractal_z.cc @@ -30,7 +30,6 @@ namespace ge { namespace formats { namespace { constexpr int64_t kDim = 1; -constexpr int64_t kCubeN = 16; static int64_t Measure(int64_t x, int64_t y) { int64_t z = y; while (x % y != 0) { @@ -91,12 +90,12 @@ Status TransShapeToFzWithGroups(int64_t n, int64_t c, int64_t h, int64_t w, Data int64_t cout_ori = n / groups; int64_t cube_k = GetCubeSizeByDataType(data_type); int64_t e_mult = std::min( - Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), + Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, static_cast(kCubeSize)) / (cout_ori)), groups); int64_t cin_opt = Ceil(e_mult * cin_ori, cube_k) * cube_k; int64_t c1_dim = cin_opt / cube_k; int64_t g_dim = Ceil(groups, e_mult); - auto n1 = Ceil(cout_ori * e_mult, kCubeN); + auto n1 = Ceil(cout_ori * e_mult, static_cast(kCubeSize)); dst_shape.clear(); dst_shape.push_back(g_dim * c1_dim * h * w); dst_shape.push_back(n1); @@ -267,10 +266,10 @@ Status TransFormatHwcnToFzWithGroups(const TransArgs &args, TransResult &result, } const int64_t cube_k = GetCubeSizeByDataType(args.src_data_type); int64_t e_mult = std::min( - Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, kCubeN) / (cout_ori)), + Lcm(Lcm(cin_ori, cube_k) / (cin_ori), Lcm(cout_ori, static_cast(kCubeSize)) / (cout_ori)), groups); int64_t cin_opt = Ceil(e_mult * cin_ori, cube_k) * cube_k; - int64_t cout_opt = Ceil(e_mult * cout_ori, kCubeN) * kCubeN; + int64_t cout_opt = Ceil(e_mult * cout_ori, static_cast(kCubeSize)) * static_cast(kCubeSize); int64_t c1_dim = cin_opt / cube_k; int64_t g_dim = Ceil(groups, e_mult); int64_t dim_cin = cin_opt / cube_k;