开发者
资源
[object Object]

【优先级】中

[object Object]

在非连续搬运场景可以使用DataCopyPad接口的Loop模式和DataCopy的多维数据搬运接口来减少搬运次数,优化搬运性能。

[object Object]

【描述】DataCopyPad接口在Normal/Compact模式基础上,可以使用Loop模式搬运二维数据,假设我们希望以下图的方式搬运8个48B大小的数据块:

【反例】调用多次搬运接口进行搬运(以DataCopyPad为例)

[object Object]

图 1 使用多次DataCopyPad接口进行搬运[object Object][object Object]

【正例】使用Loop模式进行搬运

[object Object]

图 2 使用Loop模式进行搬运[object Object][object Object]

【总结】当数据块之间需要插入不同大小Padding时,使用Loop模式搬运代替多次的DataCopyPad能够减少搬运指令的使用,提升性能。

[object Object]

【描述】假设我们希望以下图的方式搬运2个8B大小的数据块:

图 3 搬运前后数据[object Object][object Object]

【反例】使用多次DataCopyPad进行搬运

图 4 使用多次DataCopyPad进行搬运[object Object][object Object]

[object Object]

【正例】使用多维数据搬运

DataCopy接口在Atlas 350 加速卡上支持多维数据的搬运,具体可参考。以2D场景的搬运为例,代码如下:

[object Object]

图 5 搬运前后数据[object Object][object Object]

【总结】使用多维数据搬运在部分场景下能够减少搬运指令的条数,从而提升性能。