Ascend C算子开发(入门)——什么是Ascend C?
【摘要】 Ascend C算子开发(入门)——什么是Ascend C? 一、CANN与Ascend CCANN的全称是Computer Architecture For Neural Network,适用于为神经网络加速计算,Ascend C是主要编程模块,可实现图开发、算子开发、应用开发等,MindStudio是全流程开发的工具链。 二、昇腾(Ascend)AI处理器进程运行在Control CP...
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上执行。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)