已合并
补充TLA Tile组件UT测试件 #730
init__zhb__创建于 6月18日
补充TLA Tile组件UT测试件 #730
已合并
init__zhb__创建于 6月18日
init__zhb__成员
6月18日

描述

补充TLA Tile组件UT测试件。

数据通路 被测组件 源文件 非TLA 特化数 TLA/Sparse 特化数
GM→L1 CopyGmToL1 / GMMPTD / DynamicOptimized / IntervalDataCopy ~24 10
L1→L0A CopyL1ToL0A 10 6
L1→L0B CopyL1ToL0B 13 6
L0C→GM CopyL0CToGm 7 3
GM→UB CopyGm2Ub / CopyGm2UbAligned / CopyPerTokenScale2Ub 4 1
UB→GM CopyUb2Gm / CopyUb2GmAligned 3 1
MMAD TileMmad 2 2
合计 ~63 ~27
  • 特别说明:本PR涉及对公共MakeIntegerSequence的修改,原因在于后续make_index_sequence = MakeIntegerSequence<size_t, N>make_int_sequence = MakeIntegerSequence<int, N>中涉及intsize_t两种类型,而MakeIntegerSequenceImpl中展开量的类型限定为size_t,GCC/Clang stub 编译阶段严格拒绝了可能的隐式转换。

关联的Issue

原因

测试

UT组件通过情况

  • Arch2201:
...


[----------] Global test environment tear-down
[==========] 581 tests from 19 test suites ran. (129 ms total)
[  PASSED  ] 548 tests.
[  SKIPPED ] 33 tests, listed below:
[  SKIPPED ] CopyGmToL1/TileCopyGmToL1TestAtlasA2.RowMajorTozNTestOneRow_GMMPTD/0
[  SKIPPED ] CopyGmToL1/TileCopyGmToL1TestAtlasA2.RowMajorTozNTestOneRow_GMMPTD/2

...
  • Arch3510:
...

[ RUN      ] Ascend950/TypedTileMmadA950Suite.DisableGemvMmad/14
[       OK ] Ascend950/TypedTileMmadA950Suite.DisableGemvMmad/14 (0 ms)
[----------] 120 tests from Ascend950/TypedTileMmadA950Suite (2 ms total)

[----------] Global test environment tear-down
[==========] 383 tests from 20 test suites ran. (32 ms total)
[  PASSED  ] 383 tests.

覆盖率

FULL

Overall coverage rate:
  lines......: 100.0% (2486 of 2486 lines)
  functions..: 99.3% (1480 of 1490 functions)
Reading tracefile /catlass/build/coverage/coverage.info
                                               |Lines      |Functions|Branches  
Filename                                       |Rate    Num|Rate  Num|Rate   Num
================================================================================
[/catlass/include/]
catlass/coord.hpp                              | 100%    17| 100%  23|    -    0
catlass/detail/alignment.hpp                   | 100%    10| 100%  25|    -    0
catlass/epilogue/tile/copy_gm_to_ub.hpp        | 100%    68| 100%   6|    -    0
catlass/epilogue/tile/copy_gm_to_ub_tla.hpp    | 100%    19| 100%   2|    -    0
catlass/epilogue/tile/copy_ub_to_gm.hpp        | 100%    45| 100%   5|    -    0
catlass/epilogue/tile/copy_ub_to_gm_tla.hpp    | 100%    10| 100%   1|    -    0
catlass/gemm/tile/ascend950/copy_gm_to_l1.hpp  | 100%   417| 100%  46|    -    0
catlass/gemm/tile/ascend950/copy_l0c_to_gm.hpp | 100%    99| 100%  10|    -    0
catlass/gemm/tile/ascend950/copy_l0c_to_ub.hpp | 100%    44| 100%   3|    -    0
catlass/gemm/tile/ascend950/copy_l1_to_bt.hpp  | 100%    12| 100%   4|    -    0
catlass/gemm/tile/ascend950/copy_l1_to_l0a.hpp | 100%    98| 100%  16|    -    0
catlass/gemm/tile/ascend950/copy_l1_to_l0b.hpp | 100%   162| 100%  20|    -    0
catlass/gemm/tile/atlasa2/copy_gm_to_l1.hpp    | 100%   611| 100%  68|    -    0
catlass/gemm/tile/atlasa2/copy_gm_to_ub.hpp    | 100%    12| 100%   2|    -    0
catlass/gemm/tile/atlasa2/copy_l0c_to_gm.hpp   | 100%    69| 100%   9|    -    0
catlass/gemm/tile/atlasa2/copy_l1_to_l0a.hpp   | 100%   171| 100%  22|    -    0
catlass/gemm/tile/atlasa2/copy_l1_to_l0b.hpp   | 100%   219| 100%  26|    -    0
catlass/gemm/tile/atlasa2/copy_ub_to_gm.hpp    | 100%    11| 100%   2|    -    0
catlass/gemm/tile/tile_mmad.hpp                | 100%    91| 100%  20|    -    0
catlass/layout/matrix.hpp                      | 100%   139| 100%  63|    -    0
catlass/layout/vector.hpp                      | 100%     5| 100%   3|    -    0
catlass/numeric_size.hpp                       | 100%     2| 100%   1|    -    0
tla/int_tuple.hpp                              | 100%    16| 100%  47|    -    0
tla/layout.hpp                                 | 100%    85|99.6% 244|    -    0
tla/numeric/integral_constant.hpp              | 100%     4| 100%  17|    -    0
tla/numeric/math.hpp                           | 100%     4| 100%   3|    -    0
tla/tensor.hpp                                 | 100%    24|99.2% 241|    -    0
tla/tuple.hpp                                  | 100%    22|98.8% 561|    -    0
================================================================================
                                         Total:| 100%  2486|99.3%  1k|    -    0
[100%] Built target coverage_collect

变异测试(部分)

  1. src和dst typo错误混杂
    Ref bugfix commit: 02d1078
    Mutation:

--- a/include/catlass/gemm/tile/ascend950/copy_l1_to_l0a.hpp
+++ b/include/catlass/gemm/tile/ascend950/copy_l1_to_l0a.hpp
@@ -626,7 +626,7 @@ struct CopyL1ToL0A<Arch::Ascend950, Gemm::GemmType<Element, layout::nZ, AscendC:
         const uint32_t L0M = layoutDst.shape(0) * layoutDst.shape(1);
         const uint32_t L0K = layoutDst.shape(2) * layoutDst.shape(3);
         const uint32_t srcOuterStrideRow = layoutSrc.stride(1);
-        const uint32_t dstOuterStrideCol = layoutDst.stride(3);
+        const uint32_t dstOuterStrideCol = layoutSrc.stride(3);
 
         AscendC::LoadData2DParamsV2 loadDataParams;
         loadDataParams.mStartPosition = 0;

Result: KILLED

[  FAILED  ] 3 tests, listed below:
[  FAILED  ] CopyL1ToL0A/TileCopyL1ToL0ATestAscend950.nZTozNTestBasic/0, where GetParam() = 8-byte object <80-00 00-00 40-00 00-00>
[  FAILED  ] CopyL1ToL0A/TileCopyL1ToL0ATestAscend950.nZTozNTestBasic/2, where GetParam() = 8-byte object <40-00 00-00 2A-00 00-00>
[  FAILED  ] CopyL1ToL0A/TileCopyL1ToL0ATestAscend950.nZTozNTestBasic/3, where GetParam() = 8-byte object <7B-00 00-00 08-00 00-00>

 3 FAILED TESTS
  1. 不对齐的情况
    Ref bugfix commit: 0439b54e
    Mutation:
--- a/include/catlass/gemm/tile/ascend950/copy_l0c_to_ub.hpp
+++ b/include/catlass/gemm/tile/ascend950/copy_l0c_to_ub.hpp
@@ -148,7 +148,7 @@ struct CopyL0CToUBTla<
         AscendC::FixpipeParamsC310<AscendC::CO2Layout::ROW_MAJOR> intriParams;
 
         // Fixpipe layout information
-        intriParams.nSize = RoundUp(tla::get<1>(dstTensor.originShape()), 32); // n must be multiple of 32 when split n
+        intriParams.nSize = tla::get<1>(dstTensor.originShape());  // n must be multiple of 32 when split n
         intriParams.mSize = tla::get<0>(dstTensor.originShape());
         intriParams.srcStride = tla::get<1, 1>(srcTensor.stride()) / tla::get<0, 0>(srcTensor.stride());
         intriParams.dstStride = tla::get<0>(dstTensor.stride());

Result: KILLED

[  FAILED  ] 1 test, listed below:
[  FAILED  ] CopyL0CToUbTlaAscend950/TileCopyL0CToUbTlaAscend950Test.L0CToRowMajorTestSplitN/1, where GetParam() = 8-byte object <41-00 00-00 7F-00 00-00>

 1 FAILED TEST
  1. 常量错误
    Ref bugfix commit: 81e1129e
    Mutation:
--- a/include/catlass/gemm/tile/ascend950/copy_l1_to_bt.hpp
+++ b/include/catlass/gemm/tile/ascend950/copy_l1_to_bt.hpp
@@ -80,7 +80,7 @@ struct CopyL1ToBT<Arch::Ascend950, Catlass::Gemm::GemmType<ElementSrc, layout::V
    using LayoutDst = layout::VectorLayout;
    using LayoutSrc = layout::VectorLayout;

-    static constexpr uint32_t ELE_NUM_PER_C0 = BytesToBits(BYTE_PER_C0) / SizeOfBits<ElementSrc>::value;
+    static constexpr uint32_t ELE_NUM_PER_C2 = BytesToBits(BYTE_PER_C2) / SizeOfBits<ElementSrc>::value;

    CATLASS_DEVICE
    CopyL1ToBT(){}
@@ -93,7 +93,7 @@ struct CopyL1ToBT<Arch::Ascend950, Catlass::Gemm::GemmType<ElementSrc, layout::V
    ){
        AscendC::DataCopyParams intriParams;
        intriParams.blockCount = 1;
-        intriParams.blockLen = CeilDiv(layoutDst.shape(0), ELE_NUM_PER_C0);
+        intriParams.blockLen = CeilDiv(layoutDst.shape(0), ELE_NUM_PER_C2);
        if (sizeof(ElementSrc) == 4) {

Result: SURVIVED KILLED(commit:b1d60262)

[  FAILED  ] 6 tests, listed below:
[  FAILED  ] Ascend950/TypedL1ToBTA950Suite.VectorToVectorTestHalf/0, where GetParam() = 8-byte object <80-00 00-00 01-00 00-00>
[  FAILED  ] Ascend950/TypedL1ToBTA950Suite.VectorToVectorTestHalf/1, where GetParam() = 8-byte object <43-00 00-00 01-00 00-00>
[  FAILED  ] Ascend950/TypedL1ToBTA950Suite.VectorToVectorTestHalf/2, where GetParam() = 8-byte object <00-01 00-00 01-00 00-00>
[  FAILED  ] Ascend950/TypedL1ToBTA950Suite.VectorToVectorTestFloat/0, where GetParam() = 8-byte object <80-00 00-00 01-00 00-00>
[  FAILED  ] Ascend950/TypedL1ToBTA950Suite.VectorToVectorTestFloat/1, where GetParam() = 8-byte object <43-00 00-00 01-00 00-00>
[  FAILED  ] Ascend950/TypedL1ToBTA950Suite.VectorToVectorTestFloat/2, where GetParam() = 8-byte object <00-01 00-00 01-00 00-00>

6 FAILED TESTS

文档更新

类型标签

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 init__zhb__ 的贡献)
CANN-robotCANN-robot成员
6月18日 添加了label:cann-cla/yes
CANN-robotCANN-robot成员
6月18日 添加了label:stat/needs-squash
CANN-robot
CANN-robot成员
6月18日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/catlass sunhao_hw, yuantao_ (2/2) sunhao_hw (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

init__zhb__, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
Iinit__zhb__成员
6月18日 设置为草稿状态
Iinit__zhb__成员
6月18日 修改了pull request 的描述
此处折叠了112条消息 查看更多
CANN-robotCANN-robot成员
6月24日 添加了label:lgtmapproved
CANN-robotCANN-robot成员
6月24日 合入了pull request
CANN-robot
CANN-robot成员
6月24日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike
Iinit__zhb__成员
6月24日 关联了issue:[Requirement|需求建议]: 建议充实补充Tile层UT组件
CANN-robot
CANN-robot成员
6月24日 评论:

Pull Request 已合并或已关闭。

If you want to solve this problem, you can click here to do it in the FAQs.

likedislike