已关闭
[Requirement|需求建议]: SIMT UT优化 #1618
ruoshuisixue创建于  10 天前关闭于  10 天前
ruoshuisixue成员
10 天前 创建

Thanks for sending an requirement! Please fill in the following template to help quickly solve your problem.

Background(背景信息)

本次需求是对 SIMT 单元测试的调用逻辑做瘦身和分层。原来测试侧需要显式依赖 simt_compiler_stub.h/.cpp,其中混合了编译器桩、CPU Debug 运行支持、以及部分测试辅助能力,导致 UT 入口偏重、依赖链长、维护成本高。
这次改动把原先分散在 simt_compiler_stub 里的能力拆出来,改由 simt_stub.h 和新增的 simt_stub_fun.h 提供 SIMT CPU Debug 所需的基础桩能力,从而简化 UT 的 include 和调用路径。

Origin(信息来源)

Benefit / Necessity (价值/作用)

  • 降低 SIMT UT 对 simt_compiler_stub.h 的强耦合,减少头文件依赖复杂度。
  • 将“编译器桩”和“CPU Debug/测试辅助桩”拆分,职责更清晰,后续扩展和维护更方便。
  • 保持现有 UT 覆盖能力不变,同时让测试代码更直接,调用逻辑更简单。
  • 对于 blockIdx/blockNum 这类固定语义,在测试侧直接对齐 CPU stub 的返回值,避免额外的包装调用。

Design(设计方案)

  1. 新增 simt_stub_fun.h
    统一放置 SIMT 相关的 builtin、类型转换、shuffle、atomic 等声明和实现片段,避免这些内容继续散落在旧的 compiler stub 中。

  2. 精简 simt_stub.h
    在 ASCENDC_CPU_DEBUG 且架构满足条件时,仅保留 CPU Debug 真正需要的依赖,并包含 simt_stub_fun.h,把通用 SIMT 能力集中到一层。

  3. 移除旧的 simt_compiler_stub.h/.cpp
    将原先的全局状态、asc_get_block_idx/num、clz/bcnt1、__cce_simt_get_para_base_imp 等能力迁移到新的 stub 结构中,减少旧入口的存在感。

  4. 调整测试用例
    各个 SIMT UT 文件去掉对 simt_compiler_stub.h 的直接 include;test_operator_simt_c_common.cpp 直接使用固定值断言,和 CPU stub 行为保持一致。

likedislike
Rruoshuisixue成员
10 天前 添加了label:requirement
Rruoshuisixue成员
10 天前 issue状态由 待办的 改变为 已确认
Rruoshuisixue成员
10 天前 issue状态由 已确认 改变为 已解决
Rruoshuisixue成员
10 天前 关闭了 issue
CANN-robotCANN-robot成员
10 天前 添加了label:resolved