本文主要是介绍Ascend C算子开发(入门)——什么是Ascend C?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Ascend C算子开发(入门)——什么是Ascend C?
一、CANN与Ascend C
CANN的全称是Computer Architecture For Neural Network,适用于为神经网络加速计算,Ascend C是主要编程模块,可实现图开发、算子开发、应用开发等,MindStudio是全流程开发的工具链。
二、昇腾(Ascend)AI处理器
- 进程运行在Control CPU上
在设计算子时,要考虑数据从外部如何进入AI Core里面,放在哪里,需要放在哪个计算单元做计算,计算之后如何做同步,同步完之后如何传出。
耦合架构和分离架构的核心在于判断向量计算单元和矩阵计算单元是否放在一个内核里。
三、Ascend C的特点
- 采用标准C++语法,基于类库API进行编程
- 基础API
- C++类库API
- 高阶API
- 神经网络算子库
- 数学计算算子库
- 大型融合算子库:Flash Attention
- 基础API
-
核间支持SPMD数据并行,充分利用AI Core多核计算资源
只需要针对单核算子进行开发,写一段算子代码,给不同的数据块在不同的AI Core上执行。
这篇关于Ascend C算子开发(入门)——什么是Ascend C?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!