概述【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit基础API实现对硬件能力的抽象开放芯片的能力保证完备性和兼容性。标注为ISASIInstruction Set Architecture Special Interface硬件体系结构相关的接口类别的API不能保证跨硬件版本兼容。根据功能的不同主要分为以下几类标量计算API实现调用Scalar计算单元执行计算的功能。Memory矢量计算API实现调用Vector计算单元执行计算的功能。矩阵计算API实现调用Cube计算单元执行计算的功能。数据搬运API计算API基于Local Memory数据进行计算所以数据需要先从Global Memory搬运至Local Memory再使用计算API完成计算最后从Local Memory搬出至Global Memory。执行搬运过程的接口称之为数据搬运API比如DataCopy接口。资源管理API用于分配管理内存比如AllocTensor、FreeTensor接口;同步控制API完成任务间的通信和同步比如EnQue、DeQue接口。不同的API指令间有可能存在依赖关系从抽象硬件架构可知不同的指令异步并行执行为了保证不同指令队列间的指令按照正确的逻辑关系执行需要向不同的组件发送同步指令。同步控制API内部即完成这个发送同步指令的过程开发者无需关注内部实现逻辑使用简单的API接口即可完成。根据对数据操作方法的不同分为以下几类连续计算API支持Tensor前n个数据计算。针对源操作数的连续n个数据进行计算并连续写入目的操作数解决一维tensor的连续计算问题。Add(dst, src1, src2, n);高维切分API支持Repeat和Stride。功能灵活的计算API提供与BuiltIn API完全对等编程能力充分发挥硬件优势支持对每个操作数的DataBlock StrideRepeat StrideMask等参数的操作。下图以矢量加法为例展示了连续计算API和高维切分API的特点。图1计算API几种计算方式的特点【免费下载链接】asc-devkit本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言原生支持C和C标准规范主要由类库和语言扩展层构成提供多层级API满足多维场景算子开发诉求。项目地址: https://gitcode.com/cann/asc-devkit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考