CANN asc-devkit矢量广播矩阵函数
BroadCastVecToMM(ISASI)
【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
产品支持情况
功能说明
将矢量数据广播到矩阵中,每个数据块中的每16个elements会被连续复制16次;当前支持的数据传输通路:VECIN/VECCALC/VECOUT->CO1。
图 1功能示例

函数原型
template <typename T, typename U> __aicore__ inline void BroadCastVecToMM(const LocalTensor<T> &dst, const LocalTensor<U> &src, const int32_t blockCount, const uint8_t blockLen, const uint8_t srcGap, const uint8_t dstGap)参数说明
表 1模板参数说明
表 2参数说明
源操作数,相邻连续数据块的间隔(前面一个数据块的尾与后面数据块的头的间隔),单位为datablock(32Bytes)。 | ||
约束说明
- 操作数地址对齐要求请参见通用地址对齐约束。
调用示例
本示例中,输入bias形状为[1, 32],输出c的形状为[32, 32],格式为Nz。
图 2调用示例图

本示例仅展示样例中的部分代码。如需运行,请参考BroadCastVecToMM样例实现完整的代码。
// brcLocal为TPosition::CO1上的float类型的LocalTensor,srcLocal为TPosition::VECIN上的float类型的LocalTensor // blockCount = 1, blockLen = 1. 连续广播的数据块个数为1,每个数据块包含16个elements,共输出256个elements // srcGap = 0, dstGap = 1. 源操作数与目的操作数之间连续 AscendC::BroadCastVecToMM(brcLocal, srcLocal, 1, 1, 0, 1)【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
