高通 Hexagon V65 HVX 编程参考手册(20)

5.12 HVX/SCATTER-DOUBLE-RESOURCE

HVX/SCATTER-DOUBLE-RESOURCE 指令子类包括对向量 TCM 执行分散操作的指令。

Vector scatter
向量分散指令对向量 TCM 执行分散操作。分散操作将值从寄存器文件复制到 VTCM 中的区域。该内存区域由两个标量寄存器指定:Rt32 是基数,Mu2 指定该区域的长度为 1(以字节为单位)。该区域必须位于 VTCM 中并且不能跨越页面边界。矢量寄存器 Vvv32 指定该区域中的字节偏移量。由 Vw32 指定的半字或字粒度的元素被发送到每个元素的 Rt + Vvv32 指向的地址。在内存中,元素要么写入内存,要么随内存累加(scatter-accumulate)。

如果将多个值写入同一内​​存位置,则无法保证顺序。这适用于单个散点或多个散点。

偏移量向量 Vvv32 可以包含以字长指定的字节偏移量。向量对包含下向量中的偶数元素偏移量和上向量中的奇数元素偏移量。对于常规分散操作,最终元素地址不必按字节对齐。但是,对于分散累积指令,地址是对齐的。如果偏移量穿过分散区域的末尾,则将其丢弃。偏移量必须为正,否则将被丢弃。

在这里插入图片描述
在这里插入图片描述

注意

  • 此指令使用任何一对HVX资源(乘以或移位/置换)。
    在这里插入图片描述
    在这里插入图片描述

5.13 HVX/SCATTER

HVX/散点指令子类包括对向量TCM执行散射操作的指令。

Vector scatter
向量分散指令对向量 TCM 执行分散操作。分散操作将值从寄存器文件复制到 VTCM 中的区域。该内存区域由两个标量寄存器指定:Rt32 是基数,Mu2 指定该区域的长度为 1(以字节为单位)。该区域必须位于 VTCM 中并且不能跨越页面边界。矢量寄存器 Vv32 指定该区域中的字节偏移量。由 Vw32 指定的半字或字粒度的元素被发送到每个元素的 Rt + Vv32 指向的地址。在内存中,元素要么写入内存,要么随内存累加(scatter-accumulate)。

如果将多个值写入同一内​​存位置,则无法保证顺序。

偏移向量 Vv32 可以包含以半字或字大小指定的字节偏移。对于常规分散操作,最终元素地址不必按字节对齐。但是,对于分散累积指令,地址是对齐的。如果偏移量穿过分散区域的末端,则它会被丢弃。偏移量必须为正,否则它们将被丢弃。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐