Ascend C算子开发(入门)——什么是Ascend C?

举报
Byyyi耀 发表于 2024/09/23 17:55:53 2024/09/23
【摘要】 Ascend C算子开发(入门)——什么是Ascend C? 一、CANN与Ascend CCANN的全称是Computer Architecture For Neural Network,适用于为神经网络加速计算,Ascend C是主要编程模块,可实现图开发、算子开发、应用开发等,MindStudio是全流程开发的工具链。 二、昇腾(Ascend)AI处理器进程运行在Control CP...

image.png

Ascend C算子开发(入门)——什么是Ascend C?

一、CANN与Ascend C

CANN的全称是Computer Architecture For Neural Network,适用于为神经网络加速计算,Ascend C是主要编程模块,可实现图开发、算子开发、应用开发等,MindStudio是全流程开发的工具链。
image.png

image.png

二、昇腾(Ascend)AI处理器

image.png

  • 进程运行在Control CPU上
    在设计算子时,要考虑数据从外部如何进入AI Core里面,放在哪里,需要放在哪个计算单元做计算,计算之后如何做同步,同步完之后如何传出。
    image.png
    耦合架构和分离架构的核心在于判断向量计算单元和矩阵计算单元是否放在一个内核里。

三、Ascend C的特点

  • 采用标准C++语法,基于类库API进行编程

    • 基础API
      • C++类库API
    • 高阶API
      • 神经网络算子库
      • 数学计算算子库
      • 大型融合算子库:Flash Attention
        image.png
  • 核间支持SPMD数据并行,充分利用AI Core多核计算资源

    只需要针对单核算子进行开发,写一段算子代码,给不同的数据块在不同的AI Core上执行。
    image.png

image.png

image.png

image.png

image.png

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。