CANN/asc-devkit内存访问最佳实践
Memory Access Practices样例介绍【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit概述基于搬运类API使用的优化样例通过直调的实现方式介绍了减少无效数据搬运、减少搬运指令数量等方法。样例列表目录名称功能描述支持的产品bank_conflict_nd2nz本样例介绍 Atlas A2/A3 系列产品和 Ascend 950PR/Ascend 950DT 上ND 矩阵转换为 NZ 布局时通过调整 UB 内写步长规避 bank 冲突的实现并提供核函数直调方法。Ascend 950PR/Ascend 950DTAtlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品bank_conflict_ub本样例基于 Add 指令通过配置不同的 LocalTensor 地址验证和分析 UBUnified Buffer中的 bank 冲突和地址重叠对性能的影响。样例通过编译参数 SCENARIO_NUM 选择不同的地址配置场景覆盖无冲突、读读冲突、读写冲突、地址完全重叠等典型场景。Atlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品data_copy本样例介绍Global Memory到UB、Global Memory到L1的数据搬运实践对比分块粒度、非对齐数据搬运、L2Cache复用和同地址访问冲突规避对DataCopy/DataCopyPad性能的影响。Ascend 950PR/Ascend 950DTAtlas A3 训练系列产品/Atlas A3 推理系列产品Atlas A2 训练系列产品/Atlas A2 推理系列产品【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考