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

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成员
8 天前 添加了label:requirement
Rruoshuisixue成员
8 天前 issue状态由 待办的 改变为 已确认
Rruoshuisixue成员
8 天前 issue状态由 已确认 改变为 已解决
Rruoshuisixue成员
8 天前 关闭了 issue
CANN-robotCANN-robot成员
8 天前 添加了label:resolved