CANN/asc-devkit 向量计算类API样例介绍

CANN/asc-devkit 向量计算类API样例介绍

向量计算类api样例介绍

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

概述

本路径下包含了与向量计算相关的多个API的样例。每个样例均基于Ascend C的<<<>>>直调方法,支持main函数和kernel函数在同一个cpp文件中实现。

算子开发样例

目录名称功能描述
abs本样例基于Reg编程接口实现Abs运算,Relu/Exp/Sqrt/Ln/Log/Log2/Log10/Neg接口皆可参考该样例
arange本样例基于Reg编程接口实现Arange运算,以标量值为起始生成递增/递减索引序列
cast本样例基于Reg编程接口实现Cast运算,用于RegTensor数据类型转换(位宽大转小/小转大)
compare本样例基于Reg编程接口实现Compare运算,用于比较两个向量或向量与标量的大小关系
data_relayout本样例基于Reg编程接口演示Interleave和Pack接口实现数据重排(Interleave交织 + Pack低位提取)
duplicate本样例基于Reg编程接口实现Duplicate运算(标量填充),将标量值填充到向量的每个位置
gather本样例基于Reg编程接口演示Gather接口(源操作数为寄存器)按索引收集元素,使用LoadAlign/StoreAlign的postUpdate模式
histogram本样例基于Reg编程接口实现Histogram运算,对输入数据进行直方图统计计算
mergemode本样例基于Reg编程接口综合演示MaskMergeMode::MERGING + postUpdate + UpdateMask + ReduceMax
mul本样例基于Reg编程接口实现Mul运算,Add/Sub/Div/Max/Min/Prelu接口皆可参考该样例
muls本样例基于Reg编程接口实现Muls运算,Adds/Maxs/Mins/LeakyRelu接口皆可参考该样例
reduce本样例基于Reg编程接口实现Reduce运算(SUM模式),Reduce接口支持SUM/MAX/MIN归约模式
reduce_block本样例基于Reg编程接口实现ReduceDataBlock运算(SUM模式),对每个DataBlock(32B)内元素归约
reduce_pair本样例基于Reg编程接口实现PairReduceElem运算(SUM模式),对相邻奇偶元素对进行归约求和
select本样例基于Reg编程接口实现Select运算,根据掩码在两个向量之间选取元素
squeeze本样例基于Reg编程接口实现Squeeze运算,将向量压缩为标量
subnormal本样例基于Reg编程接口实现Div运算,演示支持subnormal与不支持subnormal计算结果差异
trait本样例基于Reg编程接口实现Div运算,使用int64_t类型数据,演示单核情况下RegTensor位2倍宽数据处理性能优势
truncate本样例基于Reg编程接口实现Truncate运算,将浮点数截断到整数位

【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C++标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考