【CANN训练营】基于昇腾CANN平台的AI CPU算子开发

举报
Tianyi_Li 发表于 2022/07/16 21:54:35 2022/07/16
【摘要】 前言介绍如何开发CANN AICPU自定义算子,以一个AICPU算子为示例进行讲解,分析+实现+测试验证一个端到端的完整开发流程。

前言

介绍如何开发CANN AICPU自定义算子,以一个AICPU算子为示例进行讲解,分析+实现+测试验证一个端到端的完整开发流程。

概述

AI CPU算子,是运行在昇腾AI处理器中AI CPU计算单元上的表达一个完整计算逻辑的运算,如下情况下,开发者需要自定义AI CPU算子。

在NN模型训练或者推理过程中,将第三方开源框架转化为适配昇腾AI处理器的模型时遇到了昇腾AI处理器不支持的算子。此时,为了快速打通模型执行流程,用户可以通过自定义AI CPU算子进行功能调测,提升调测效率。功能调通之后,后续性能调测过程中再将AI CPU自定义算子转换成TBE算子实现。

某些场景下,无法实现在AI Core上运行的自定义算子(比如部分算子需要Complex32、Complex64类型,但AI Core指令不支持;再比如包含了大量标量计算的算子,而AI Core不擅长对标量进行处理),此时可以通过开发AI CPU自定义算子实现昇腾AI处理器对此算子的支持。

目标

能够基于AI CPU进行简单的算子开发的人员,可以达成:

  1. 学习AI CPU算子基本实现原理和实现方法。

  2. 能够基于课程中的样例,扩展进行其他自定义AI CPU算子的开发。

如果您具有如下技能,可以更好地完成学习:

  1. 具备C++程序开发能力

  2. 理解数学表达式

  3. 对机器学习、深度学习有一定的了解

  4. 了解Ascend平台运行流程和原理

  5. 了解Ascend平台的TBE自定义算子开发流程

算子的基本概念

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

Ascend 310处理器架构逻辑

image.png
image.png
image.png
image.png

AI CPU算子开发流程

image.png

算子分析

image.png

目录结构介绍

image.png

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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