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

前言

介绍如何开发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自定义算子开发流程

算子的基本概念

【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第1张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第2张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第3张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第4张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第5张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第6张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第7张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第8张图片

Ascend 310处理器架构逻辑

【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第9张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第10张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第11张图片
【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第12张图片

AI CPU算子开发流程

【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第13张图片

算子分析

【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第14张图片

目录结构介绍

【CANN训练营】基于昇腾CANN平台的AI CPU算子开发_第15张图片

你可能感兴趣的:(人工智能,算法,深度学习)