本节将以Add算子为例,带您快速构建Ascend C矢量算子程序,并学习矢量算子开发的典型场景以及处理方式。涉及的场景包括:
- :开发一个简单的Add矢量算子。
- :在算子计算过程中使用临时空间存储运算的中间结果。
- :算子在AI处理器的多个核上运行,所有核的计算数据量相等且32字节对齐。
- :算子在AI处理器的多个核上运行,所有核的计算数据量相等,每个核上除最后一个数据块(尾块)外,其余数据块的数据量相等,每个核都需要处理尾块数据的计算。
- :算子在AI处理器的多个核上运行,数据无法平均分配到每个核。将所有核分为多个整核和多个尾核,整核的计算数据量相等,尾核的计算数据量相等。
- :算子在AI处理器的多个核上运行,数据无法平均分配到每个核,同时每个核内的数据无法均分,除最后一个数据块(尾块)外,其余数据块的数据量相等,每个核都需要单独处理尾块数据的计算。
- :使能double buffer,算子中的多条流水并行执行。
- :算子中两个输入的shape(形状)不相等,需要将一个输入的shape进行Broadcast(广播)后,再执行计算。
- :更多数据非32字节对齐场景的处理方案。
[object Object]