已关闭
[Requirement|需求建议]: 新增 SIMD&SIMT 混合编程 UB 使用上限样例及测试覆盖 #1282
wulinyu创建于 7月18日关闭于 13 天前
29 天前 关联了pull request:docs: 完善SIMT编程指导并新增UB使用限制样例
15 天前 修改了issue 的描述
15 天前 修改了issue 的描述
15 天前 修改了issue 的描述
15 天前 修改了issue 的描述
13 天前 将 zhangshunwei2 设为负责人
13 天前 issue状态由 待办的 改变为 已解决
13 天前 关闭了 issue
13 天前 添加了label:resolved


Backgroud(背景信息)
新增
simd_simt_ub_usage_limit样例工程,用于展示 SIMD&SIMT mixed 形态下 Unified Buffer(UB)的静态/动态内存使用方式、容量上限和越界问题定位方法。该样例用于补齐现有 devkit 在 SIMD&SIMT 混合编程 UB 使用方式与容量边界方面的样例空缺。样例通过 Case 0~Case 3 讲述 UB 越界导致精度异常的定位方法、不同场景下的 UB 可用上限、UB 上的静态 UB 与动态 UB 布局,以及不同执行位置越界访问 UB 区域时的现象。
Origin(信息来源)
SIMT 需求访谈:补齐现有 devkit 样例空缺,方便开发者上手。
Benefit / Necessity (价值/作用)
帮助开发者理解混合编程场景下 SIMT VF、SIMD VF 与 MainScalar 对 UB 的共同使用关系,掌握静态内存、动态内存、预留空间和 Data Cache 对可用 UB 空间的影响。
Design(设计方案)
在
examples/05_simd_simt_hybrid/02_best_practices/simd_simt_ub_usage_limit/下新增样例工程,交付件包括:case0_ub_out_of_bounds.asccase1_ub_limit.asccase2_ub_layout.asccase3_out_of_bounds_result.ascCMakeLists.txtREADME.md/README_en.md样例采用 SIMD&SIMT mixed 形态:
__global__ __vector__kernel 通过asc_vf_call调用 VF 函数。SIMT VF 使用__simt_vf__,线程数配置为1024;SIMD VF 使用__simd_vf__。样例不引入syncthreads()/syncwarp(),不专门验证 UB bank 冲突。默认运行覆盖 4 个正向 场景:
<<<...>>>的动态 UB 参数配置动态内存,验证动态内存配置方式和访问范围。样例通过
SCENARIO_NUM覆盖 4 类 Case:README 补充 UB 越界反例/调试 case:
STC 覆盖样例编译、默认运行、Case 0~Case 3 输出校验、Case 1 UB 边界、README 越界定位说明检视,以及默认路径不触发越界失败。