【AI系统】CANN 算子类型

简介: 本文介绍了算子的基本概念及其在编程和数学中的作用,重点探讨了CANN算子在AI编程和神经网络中的应用,特别是华为CANN算子在AI CPU上的架构和开发要求。CANN是华为推出的异构计算架构,旨在优化AI处理器的计算效率,支持多种AI框架,涵盖AI Core和AI CPU算子,以适应不同类型的计算需求。文中还详细说明了AI CPU算子的开发流程和适用场景,为开发者提供了宝贵的指导。

算子是编程和数学中的重要概念,它们是用于执行特定操作的符号或函数,以便处理输入值并生成输出值。本文将会介绍 CANN 算子类型及其在 AI 编程和神经网络中的应用,以及华为 CANN 算子在 AI CPU 的详细架构和开发要求。

算子基本介绍

一元算子通过对单个操作数进行操作,如取反或递增,而二元算子对两个操作数执行操作,例如加法或赋值。关系算子用于比较值之间的关系,逻辑算子用于在逻辑表达式中组合条件。位运算符操作二进制位,而赋值算子将值分配给变量。

算子在编程语言中定义了基本操作,而在数学中,它们描述了对数学对象的操作,如微积分中的导数和积分算子。算子的理解对于正确理解和编写代码以及解决数学问题至关重要。

在神经网络中,算子通常代表计算图中的张量处理节点,如卷积算子,全连接算子,激活算子等,这些算子无一例外地接受张量(及配置信息)作为输入,输出对张量的处理结果。

要注意,并非所有算子都具备完整的数学含义或数学表达,如调整数据排布格式的算子、数据类型转换的算子、广播与归纳类算子等等,属于纯编程操作,并无十分具体的数学含义。

在面向神经网络做优化的工作中,算子的开发与优化是一项较为重要的任务,许多新发明的神经网络或算法通常包含着新的算子的设计;另外,为了使这些算子达到最大的性能指标,算子的实现通常还要与具体的硬件平台相结合,同样一项算子操作(如卷积),在 CPU、GPU、NPU、TPU 上的实现存在着千差万别。

同一张神经网络中,不同算子适合运行的硬件平台也不尽相同,如在经典的 Host-Device 结构中,大部分涉及大量矩阵/向量计算的算子均适合放在专用计算内核上实施计算,但也不排除某些算子有过多分支、上下文切换等操作,适合放在 CPU 性质的设备上进行计算,下面将重点讨论这个话题。

CANN 算子体系

CANN 是华为针对 AI 场景推出的异构计算架构,对上支持多种 AI 框架,对下服务 AI 处理器与编程,发挥承上启下的关键作用,是提升昇腾 AI 处理器计算效率的关键平台。而 CANN 算子又包括两类,分别是 AI Core 算子和 AI CPU 算子。与算子名称相符,两种算子分别执行在昇腾 AI 处理器的 AI Core 和 AI CPU 上,昇腾 AI 处理器中 AI Core 与 AI CPU 的相互关联如下图所示:

昇腾 AI 处理器 SoC 逻辑图

其中,AI Core 是昇腾 AI 处理器的计算核心,负责执行矩阵、向量、标量计算密集的算子任务;AI CPU 负责执行不适合在 AI Core 上运行的算子任务,即非矩阵类复杂计算。

大多数场景下的算子开发均为针对 AI Core 的算子开发任务,然而昇腾框架并非只能进行 AI Core 算子开发,也可以进行 AI CPU 算子开发。AI CPU 负责执行昇腾 AI 处理器的 CPU 类算子(包括控制算子、标量和向量等通用计算)。

AI CPU 算子涉及组件

AI CPU 算子编译执行所涉及组件如下:

  • GE(Graph Engine):Graph Engine 是基于昇腾 AI 软件栈对不同的机器学习框架提供统一的 IR 接口,对接上层网络模型框架,例如 Tensorflow、PyTorch 等,GE 的主要功能包括图准备、图拆分、图优化、图编译、图加载、图执行和图管理等(此处图指网络模型拓扑图)。

  • AI CPU Engine:AI CPU 子图编译引擎,负责对接 GE,提供 AI CPU 算子信息库,进行算子注册、算子内存需求计算、子图优化和 Task 生成的能力。

  • AI CPU Schedule:AI CPU 的模型调度器,与 Task Schedule 配合完成 NN 模型的调度和执行。

  • AI CPU Processor:AI CPU 的 Task 执行器,完成算子运算。AI CPU Processor 包含算子实现库,算子实现库完成 AI CPU 算子的执行实现。

  • Data Processor:训练场景下,用于进行训练样本的数据预处理。

AI CPU 适用场景

在以下三种场景下,可以使用 AI CPU 的方式实现自定义算子:

  • 场景一:不适合跑在 AI Core 上的算子,例如非矩阵类的复杂计算,逻辑比较复杂的分支密集型算子等;例如离散数据类的计算,资源管理类的计算,依赖随机数生成类的计算。

  • 场景二:AI Core 不支持的算子,例如算子需要某些数据类型,但 AI Core 不支持;例如 Complex32、Complex64。

  • 场景三:某些场景下,为了快速打通模型执行流程,在 AI Core 算子实现较为困难的情况下,可通过自定义 AI CPU 算子进行功能调测,提升调测效率;功能调通之后,后续性能调测过程中再将 AI CPU 自定义算子转换为 AI Core 算子实现。

AI CPU 开发要求

针对 AI CPU 算子,CANN 未提供封装的计算接口,完全是由 C++语言进行计算逻辑的实现。但 AI CPU 算子的实现有如下三步的基本要求。

  • 第一步,自定义算子的类需要为 CpuKernel 类的派生类,并且需要在命名空间“aicpu”中进行类的声明和实现。AI CPU 提供了算子的基类“CpuKernel”,“CpuKernel” 提供了算子计算函数的定义。

  • 第二步,实现算子类“xxxCpuKernel”中的 Compute 函数,即实现算子的计算逻辑。

  • 第三步,算子计算逻辑实现结束后,用“REGISTER_CPU_KERNEL(算子类型,算子类名) ”进行算子的注册。

AICPU 算子基类

如果您想了解更多AI知识,与AI专业人士交流,请立即访问昇腾社区官方网站https://www.hiascend.com/ 或者深入研读《AI系统:原理与架构》一书,这里汇聚了海量的AI学习资源和实践课程,为您的AI技术成长提供强劲动力。不仅如此,您还有机会投身于全国昇腾AI创新大赛和昇腾AI开发者创享日等盛事,发现AI世界的无限奥秘~

目录
相关文章
|
5天前
|
人工智能 前端开发 小程序
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
2024年12月30日蜻蜓蜻蜓AI工具系统v1.0.0发布-优雅草科技本产品前端源代码已对外开源可免费商用-优雅草老八
|
1天前
|
机器学习/深度学习 人工智能 自然语言处理
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
AigcPanel 是一款开源的 AI 虚拟数字人系统,支持视频合成、声音克隆等功能,适用于影视制作、虚拟主播、教育培训等多种场景。
32 12
AigcPanel:开源的 AI 虚拟数字人系统,一键安装开箱即用,支持视频合成、声音合成和声音克隆
|
2天前
|
存储 人工智能 开发框架
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
Eliza 是一个开源的多代理模拟框架,支持多平台连接、多模型集成,能够快速构建智能、高效的AI系统。
31 8
Eliza:TypeScript 版开源 AI Agent 开发框架,快速搭建智能、个性的 Agents 系统
|
1天前
|
机器学习/深度学习 人工智能 监控
AI在交通管理系统中的应用
AI在交通管理系统中的应用
31 23
|
10天前
|
人工智能 自然语言处理 并行计算
ASAL:Sakana AI 联合 OpenAI 推出自动探索人工生命的系统,通过计算机模拟生命进化的过程
ASAL 是由 Sakana AI 联合 OpenAI 等机构推出的自动化搜索人工生命系统,基于基础模型实现多种搜索机制,扩展了人工生命研究的边界。
61 1
ASAL:Sakana AI 联合 OpenAI 推出自动探索人工生命的系统,通过计算机模拟生命进化的过程
|
13天前
|
机器学习/深度学习 人工智能 搜索推荐
AI在电子商务中的个性化推荐系统:驱动用户体验升级
AI在电子商务中的个性化推荐系统:驱动用户体验升级
92 17
|
13天前
|
人工智能 安全 机器人
OpenAI重拾规则系统,用AI版机器人定律守护大模型安全
在人工智能领域,大语言模型(LLM)展现出强大的语言理解和生成能力,但也带来了安全性和可靠性挑战。OpenAI研究人员提出“规则基于奖励(RBR)”方法,通过明确规则引导LLM行为,确保其符合人类价值观和道德准则。实验显示,RBR方法在安全性与有用性之间取得了良好平衡,F1分数达97.1。然而,规则制定和维护复杂,且难以完全捕捉语言的多样性。论文:https://arxiv.org/pdf/2411.01111。
53 13
|
9天前
|
机器学习/深度学习 传感器 人工智能
开源AI视频监控系统在监狱安全中的应用——实时情绪与行为分析、暴力预警技术详解
针对监狱环境中囚犯情绪波动和复杂人际互动带来的监控挑战,传统CCTV系统难以有效预警暴力事件。AI视频监控系统基于深度学习与计算机视觉技术,实现对行为、情绪的实时分析,尤其在低光环境下表现优异。该系统通过多设备协同、数据同步及自适应训练,确保高精度识别(95%以上)、快速响应(<5秒),并具备24小时不间断运行能力,极大提升了监狱安全管理的效率与准确性。
|
13天前
|
机器学习/深度学习 存储 人工智能
基于AI的实时监控系统:技术架构与挑战分析
AI视频监控系统利用计算机视觉和深度学习技术,实现实时分析与智能识别,显著提升高风险场所如监狱的安全性。系统架构包括数据采集、预处理、行为分析、实时决策及数据存储层,涵盖高分辨率视频传输、图像增强、目标检测、异常行为识别等关键技术。面对算法优化、实时性和系统集成等挑战,通过数据增强、边缘计算和模块化设计等方法解决。未来,AI技术的进步将进一步提高监控系统的智能化水平和应对复杂安全挑战的能力。
|
2天前
|
人工智能 运维 API
PAI企业级能力升级:应用系统构建、高效资源管理、AI治理
PAI平台针对企业用户在AI应用中的复杂需求,提供了全面的企业级能力。涵盖权限管理、资源分配、任务调度与资产管理等模块,确保高效利用AI资源。通过API和SDK支持定制化开发,满足不同企业的特殊需求。典型案例中,某顶尖高校基于PAI构建了融合AI与HPC的科研计算平台,实现了作业、运营及运维三大中心的高效管理,成功服务于校内外多个场景。