CANN/asc-devkit UB数据搬运指南

📅 2026/7/16 14:50:13
CANN/asc-devkit UB数据搬运指南
UB与UB数据搬运【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit总体说明Unified BufferUB之间的数据搬运提供了灵活的接口支持共有两组接口DataCopy提供了基础的数据搬运能力支持连续和非连续数据搬运Copy除了支持连续和非连续数据搬运还提供了mask操作和DataBlock间隔操作的能力支持在接口内部和接口外部设置mask。具体接口功能如下表所示。表 1UB与UB数据搬运接口概述数据通路功能描述UB-UB连续数据搬运(DataCopy)提供基础的数据搬运能力数据在传输过程中保持原始格式和内容不变支持连续数据搬运。UB-UB高维切分数据搬运(DataCopy)提供基础的数据搬运能力数据在传输过程中保持原始格式和内容不变支持连续和非连续的数据搬运。UB-UB连续数据搬运(Copy)支持连续数据搬运数据搬运时格式和内容保持不变。UB-UB掩码式高维数据搬运(Copy)支持mask操作和DataBlock间隔操作支持在接口内部和接口外部设置mask。UB - UB连续数据搬运(DataCopy)支持Unified Buffer与Unified Buffer之间的连续数据搬运数据在传输过程中保持原始格式和内容不变。具体支持的数据通路为以逻辑位置TPosition表示Unified Buffer - Unified BufferVECIN - VECCALCVECCALC - VECOUT搬运的数据用于矢量计算具体的接口请参考UB - UB连续数据搬运(DataCopy).md)。src和dst分别为源操作数和目的操作数count为连续搬运的元素个数。template typename T __aicore__ inline void DataCopy(const LocalTensorT dst, const LocalTensorT src, const uint32_t count)UB - UB高维切分数据搬运(DataCopy)支持Unified Buffer与Unified Buffer之间的高维切分数据搬运数据在传输过程中保持原始格式和内容不变。高维切分数据搬运可通过配置数据块个数、单个数据块长度、地址偏移等搬运参数同时支持非连续和连续的数据搬运。具体支持的数据通路为以逻辑位置TPosition表示Unified Buffer - Unified BufferVECIN - VECCALCVECCALC - VECOUT搬运的数据用于矢量计算具体的接口请参考UB - UB高维切分数据搬运(DataCopy).md)。src和dst分别为源操作数和目的操作数repeatParams为DataCopyParams类型的搬运参数通过该参数可配置搬运的数据块大小、个数、间隔等信息同时支持非连续和连续搬运。template typename T __aicore__ inline void DataCopy(const LocalTensorT dst, const LocalTensorT src, const DataCopyParams repeatParams)UB - UB连续数据搬运(Copy)支持Unified Buffer和Unified Buffer之间的连续数据搬运数据搬运时格式和内容保持不变。具体支持的数据通路为以逻辑位置TPosition表示Unified Buffer - Unified BufferVECIN - VECCALCVECIN - VECOUTVECCALC - VECINVECCALC - VECOUTVECOUT - VECINVECOUT - VECCALC搬运的数据用于矢量计算具体的接口请参考UB - UB连续数据搬运(Copy).md)。src和dst分别为源操作数和目的操作数count为连续搬运的元素个数。template typename T, bool isSetMask true __aicore__ inline void Copy(const LocalTensorT dst, const LocalTensorT src, const uint32_t count)UB - UB掩码式高维数据搬运(Copy)支持Unified Buffer和Unified Buffer之间的数据搬运数据搬运时格式和内容保持不变支持mask操作和DataBlock间隔操作。具体支持的数据通路为以逻辑位置TPosition表示Unified Buffer - Unified BufferVECIN - VECCALCVECIN - VECOUTVECCALC - VECINVECCALC - VECOUTVECOUT - VECINVECOUT - VECCALC搬运的数据用于矢量计算具体的接口请参考UB - UB掩码式高维数据搬运(Copy).md)。src和dst分别为源操作数和目的操作数mask用于控制每次迭代内参与计算的元素repeatTime为重复迭代次数repeatParams为CopyRepeatParams类型的搬运参数。mask逐bit模式template typename T, bool isSetMask true __aicore__ inline void Copy(const LocalTensorT dst, const LocalTensorT src, const uint64_t mask[], const uint8_t repeatTime, const CopyRepeatParams repeatParams)mask连续模式template typename T, bool isSetMask true __aicore__ inline void Copy(const LocalTensorT dst, const LocalTensorT src, const uint64_t mask, const uint8_t repeatTime, const CopyRepeatParams repeatParams)【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考