Ascend C矢量编程文档升级:带你掌握多核复杂场景下的Tiling数据切分
昇腾Ascend C编程语言发布以来,许多开发者已通过官方教程文档快速掌握了Ascend C算子的开发方法。然而,对于一些深度开发者而言,需要了解在多核、Tiling切分等复杂场景下的更深入内容介绍,以及更详尽的理论知识和实践方法,以便熟练掌握自定义算子的开发。
为此,《Ascend C算子开发指南》进行了全面升级,由浅入深地介绍矢量算子开发教程,旨在帮助开发者更好地掌握Ascend C算子开发技能。目前,相关教程文档已在昇腾社区发布,开发者可点击LINK快速访问。
增加TBuf使用教程,提供临时变量处理方法
基于基础矢量算子开发教程,新增TBuf使用教程,帮助用户学习在算子计算过程中利用临时空间存储运算的中间结果,掌握TBuf数据结构在算子开发中的应用。
增加多核&Tiling切分教程,助力开发者掌握核间及核内数据切分策略
增加多核Tiling、尾块Tiling、尾核Tiling以及尾核&尾块教程,以帮助开发者掌握Host侧Tiling编程,了解如何在核间和核内进行数据切分。
(1)多核Tiling:当在AI处理器的多个核上运行算子,如何将输入数据均匀分配到各个核上,确保每个核的计算数据量相等,核内每个数据块的数据量相等,以达到算子执行效率最大化,并帮助开发者理解基本的分核概念。
(2)尾块Tiling:介绍在核间均匀分配数据,而在核内无法将数据切分为多个相同大小且32字节对齐的数据块的情况下,如何进行数据切分及尾块数据处理,以帮助开发者掌握在数据非对齐时进行数据切分和尾块处理的策略。
(3)尾核Tiling:介绍在输入数据无法在多个核之间均匀分配的场景下,当算子在AI处理器的多个核上运行时,如何进行有效的数据切分,使每个核处理不同的数据量,从而帮助开发者掌握数据切分产生尾核的处理策略。
(4)尾核&尾块:介绍输入数据无法在多个核间均匀分配,以及在单个核内无法被切分为多个相同大小且32字节对齐的数据块的场景,当算子在AI处理器的多个核上运行时,若数据无法平均分配到每个核,且每个核内的数据也不能均匀分割,如何进行核间和核内的数据切分,以及处理尾核和尾块数据,从而帮助开发者掌握数据切分后同时产生尾核和尾块的处理策略。
增加DoubleBuffer场景教程,轻松实现多流水并行
提供DoubleBuffer场景教程,解释DoubleBuffer的含义,帮助开发者学习其实现方法,从而掌握多流水并行的编程技巧。
增加Broadcast场景教程,提供数据广播的基础知识
新增Broadcast场景教程,针对不同形状(shape)的输入需要做按对应位置元素计算的场景,介绍如何将一个输入的shape进行广播(Broadcast)后,再执行计算的设计思路及实现方法,以帮助开发者有效掌握Broadcast处理技巧。
欢迎访问昇腾社区Ascend C信息专区,获取Ascend C更多学习资源:https://www.hiascend.com/ascend-c
- 点赞
- 收藏
- 关注作者
评论(0)