昇腾CANN/asc-devkit: L1与BiasTable Buffer数据搬运
L1与BiasTable Buffer数据搬运
【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
L1ToBiasTable Buffer连续数据搬运(DataCopy)
DataCopy能够实现L1 Buffer至BiasTable Buffer的连续数据搬运,数据搬运时格式和内容保持不变。
具体支持的数据通路为(以逻辑位置TPosition表示):
- L1 Buffer -> BiasTable Buffer
- C1 -> C2
搬运的数据用于矩阵计算,接口具体介绍请参考:L1ToBiasTable-Buffer数据搬运(DataCopy)。
src和dst分别为源操作数和目的操作数;count为连续搬运的元素个数。
template <typename T> __aicore__ inline void DataCopy(const LocalTensor<T>& dst, const LocalTensor<T>& src, const uint32_t count)L1ToBiasTable Buffer高维切分数据搬运(DataCopy)
DataCopy能够实现L1 Buffer至BiasTable Buffer的连续数据搬运和非连续数据搬运,数据搬运时格式和内容保持不变。
高维切分是指能够通过配置数据块个数、单个数据块长度、地址偏移等搬运参数实现非连续搬运。
具体支持的数据通路为(以逻辑位置TPosition表示):
- L1 Buffer -> BiasTable Buffer
- C1 -> C2
搬运的数据用于矩阵计算,接口具体介绍请参考:L1ToBiasTable-Buffer数据搬运(DataCopy)。
src和dst分别为源操作数和目的操作数;repeatParams为搬运参数。
连续或非连续搬运场景(高维切分)
template <typename T> __aicore__ inline void DataCopy(const LocalTensor<T>& dst, const LocalTensor<T>& src, const DataCopyParams& repeatParams)连续或非连续搬运场景,支持源操作数和目的操作数数据类型不一致
template <typename T, typename U> __aicore__ inline void DataCopy(const LocalTensor<T>& dst, const LocalTensor<U>& src, const DataCopyParams& repeatParams)
【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
