华为 CANN

华为 CANN

  • [1 介绍](#1 介绍)
    • [1.1 概述](#1.1 概述)
    • [1.2 CANN 是华为昇腾计算产业的重要一环](#1.2 CANN 是华为昇腾计算产业的重要一环)
    • [1.3 昇腾系列处理器](#1.3 昇腾系列处理器)
    • [1.4 昇腾 AI 产业](#1.4 昇腾 AI 产业)
    • [1.5 从 AI 算法到产品化落地流程](#1.5 从 AI 算法到产品化落地流程)
    • [1.6 多样性计算架构](#1.6 多样性计算架构)
    • [1.7 人工智能各层级图示](#1.7 人工智能各层级图示)
    • [1.8 人工智能技术发展历史](#1.8 人工智能技术发展历史)
  • [2 CANN vs CUDA](#2 CANN vs CUDA)
  • [3 CANN逻辑架构](#3 CANN逻辑架构)
    • [昇腾计算语言(Ascend Computing Language,简称AscendCL)](#昇腾计算语言(Ascend Computing Language,简称AscendCL))
    • [昇腾计算服务层(Ascend Computing Service Layer)](#昇腾计算服务层(Ascend Computing Service Layer))
    • [昇腾计算编译层(Ascend Computing Compilation Layer)](#昇腾计算编译层(Ascend Computing Compilation Layer))
    • [昇腾计算执行层(Ascend Computing Execution Layer)](#昇腾计算执行层(Ascend Computing Execution Layer))
    • [昇腾计算基础层(Ascend Computing Base Layer)](#昇腾计算基础层(Ascend Computing Base Layer))
  • [4 支持的深度学习框架与第三方库](#4 支持的深度学习框架与第三方库)
  • [5 全栈开放](#5 全栈开放)
  • 重点事件
    • [Nvidia 禁止其他平台运行 CUDA](#Nvidia 禁止其他平台运行 CUDA)
  • 参考

1 介绍

1.1 概述

CANN 是华为推出的计算架构。NVIDIA 成功的的关键是创建了 CUDA 计算架构。国内目前有希望追上 CUDA 的,就是华为的 CANN。

财富本身和驾驭财富的能力都很重要!

算力本身和驾驭算力的能力都很重要!

CUDA 和 CANN 就是驾驭 AI 算力的利器!

CANN 是针对 AI 场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的 AI 应用和业务。为了解决大量在开发和部署中遇到的问题及挑战,CANN 是基于以下核心思想而设计。

  • 支持端边云全场景协同,支持超过 10 种设备形态、EMUI、Andriod、openEuler、UOS、Ubuntu、Debian、Suse 等超过 14 种操作系统和多种 AI 计算框架。对于上层应用,无需关注关注操作系统的变化和硬件的演进。

  • 支持多种计算架构和计算框架,一套体系支持 CPU、NPU 等架构和多种 AI计算框架

  • 支持向后兼容和演进,向后兼容是为了保护开发者的已有开发投资。

  • 平台还有极强的伸缩性和适应性,适应不同的算力和内存的变化。

CANN 不仅仅是一个简单的软件平台,首先它是一个开发体系,包含了编程语言,编译及调试工具和编程模型,创造了基于异腾系列处理器的一个编程的框架,未来将持续演进

1.2 CANN 是华为昇腾计算产业的重要一环

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,包括昇腾系列处理器、系列硬件、CANN(Compute Architecture for Neural Networks,异构计算架构)、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链。

1.3 昇腾系列处理器

随着深度学习需求日益扩大,基于神经网络的 AI处理器技术创新蓬勃发展。

NPU(NeuralProcessing Unit,神经网络处理器)针对矩阵运算进行专门优化设计,解决了传统芯片在神经网络运算时效率低下的问题。异腾系列处理器是基于华为达芬奇 架构的 NPU,华为达芬奇架构是面向 AI计算设计的架构,通过独创的 161616的 3D Cube 设计,每时钟周期可以进行 4096 个 16 位半精度浮点 MAC 运算,为人工智能提供强大的算力支持。基于统一的达芬奇架构,可以支持端边云不同场景的差异化算力需求,并具备从几十毫瓦 IP 到几百瓦芯片的平滑扩展,覆盖了端边云全场景部署的能力。昇腾处理器是全球首个覆盖全场景 A1芯片,构建了昇腾计算产品、使能上层软件和应用的底座,也是全产业链可持续创新和发展的驱动力。

1.4 昇腾 AI 产业

1.5 从 AI 算法到产品化落地流程

1.6 多样性计算架构

1.7 人工智能各层级图示

1.8 人工智能技术发展历史

2 CANN vs CUDA

华为 CANN(Compute Architecture for Neural Networks)与 NVIDIA 的 CUDA(Compute Unified Device Architecture)在多个方面存在显著的差异。以下是两者之间的对比:

支持平台

  • CUDA:由 NVIDIA 推出,主要支持 NVIDIA 的 GPU 系列。CUDA指令集架构(ISA)以及GPU内部的并行计算引擎是CUDA的核心,使GPU能够解决复杂的计算问题。

  • CANN:由华为推出,专为昇腾AI处理器设计。它支持多种AI框架,为AI处理器和编程提供了服务,是提升昇腾AI处理器计算效率的关键平台。

优化方向

  • CUDA:针对通用计算进行了优化,使得开发人员可以使用C语言(以及C++和FORTRAN)为CUDA架构编写程序,并在支持CUDA的处理器上以超高性能运行。

  • CANN:针对神经网络计算场景进行了优化,提供了高效易用的编程接口,帮助用户快速构建基于昇腾平台的AI应用和业务。因此,CANN在AI计算方面比CUDA更高效。

编程接口

  • CANN:提供Ascend C作为算子开发语言,支持C和C++标准规范,,对应用程序开发者屏蔽了底层多种芯片差异,提升了用户APP编程的易用性。同时,CANN还提供了标准的异腾计算AIR,支持多框架,方便用户在昇腾芯片上快速部署神经网络业务。

  • CUDA:有一套API和编程模型,基于C语言,提供CUDA C/C++作为编程接口,并支持FORTRAN等其他语言。

生态系统与应用

  • CUDA:已被广泛应用于各个领域,包括图像与视频处理、计算生物学和化学、流体力学模拟等。拥有庞大的开发者社区和丰富的学习资源,NVIDIA提供广泛的技术支持和优化工具。

  • CANN:作为华为昇腾AI生态的关键组成部分,CANN正在推动AI应用和业务在华为平台上的快速发展。华为昇腾社区提供支持,包括ModelZoo、工具包和开发支持,旨在构建全场景人工智能平台。

性能与功能

  • CUDA:通过线程组层次结构、共享存储器、屏障同步等核心抽象概念,以及优化的内存管理和并行算法库,提升计算性能。

  • CANN:通过自动流水、算子深度融合、自适应梯度切分和智能计算调优等技术,优化AI计算性能。

3 CANN逻辑架构

昇腾计算语言(Ascend Computing Language,简称AscendCL)

AscendCL接口是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装。它提供设备(Device)管理、上下文(Context)管理、流(Stream)管理、内存管理、模型加载与执行、算子加载与执行、媒体数据处理、图(Graph)管理等API库,供用户开发人工智能应用。

昇腾计算服务层(Ascend Computing Service Layer)

主要提供昇腾算子库AOL(Ascend Operator Library),通过神经网络(Neural Network,NN)库、线性代数计算库(Basic Linear Algebra Subprograms,BLAS)等高性能算子加速计算;昇腾调优引擎AOE(Ascend Optimization Engine),通过算子调优OPAT、子图调优SGAT、梯度调优GDAT、模型压缩AMCT提升模型端到端运行速度。同时提供AI框架适配器Framework Adaptor用于兼容TensorFlow、PyTorch等主流AI框架。

昇腾计算编译层(Ascend Computing Compilation Layer)

昇腾计算编译层通过图编译器(Graph Compiler)将用户输入中间表达(Intermediate Representation,IR)的计算图编译成昇腾硬件可执行模型;同时借助张量加速引擎TBE(Tensor Boost Engine)的自动调度机制,高效编译算子。

昇腾计算执行层(Ascend Computing Execution Layer)

负责模型和算子的执行,提供运行时库(Runtime)、图执行器(Graph Executor)、数字视觉预处理(Digital Vision Pre-Processing,DVPP)、人工智能预处理(Artificial Intelligence Pre-Processing,AIPP)、华为集合通信库(Huawei Collective Communication Library,HCCL)等功能单元。

昇腾计算基础层(Ascend Computing Base Layer)

主要为其上各层提供基础服务,如共享虚拟内存(Shared Virtual Memory,SVM)、设备虚拟化(Virtual Machine,VM)、主机-设备通信(Host Device Communication,HDC)等。

4 支持的深度学习框架与第三方库

5 全栈开放

华为昇腾坚持开源开放原则,目的是为了希望构建良好的产业生态,按能力分层开放。面向不同开发者提供不同开发工具和套件,使能开发者满足在极简开发和极致性能两方面的需求。

※ 面向最上层的业务应用开发者,他们把 AI变成服务,引入各行各业。对于这类开发者MindX 开放支持上层的 ModelArts 和 HiAI等应用使能服务,同时也可以支持第三方平台提供应用使能服务;MindX也逐步提供 SDK,SDK是面向同一类行业场景的完整开发工具包和对应的行业知识库,让针对一类行业的开发经验和行业知识可以积淀下来,快速复制。SDK 让开发者、ISV 只需极少量代码甚至不需要代码就可以实现 Al的功能。

※ 面向 AI 模型开发者,他们专注于算法开发,开源框架 MindSpore 可以支持高效开发,同时华为提供模型转换工具支持主流模型便捷的转换到 MindSpore。

※ 面向算子开发者,提供了 CANN 和 MindStudio 来支持底层开发。基于统一编程接口AscendCL(Ascend Computing Language,昇腾统一编程语言)的 CANN,实现分层开放能力。AscendCL封装了内存管理、AI任务管理、AI任务执行、业务流、事件、图引擎等通用接口,开发者只需要掌握一套 API,就可以全面使用昇腾硬件的能力。同时,AscendCl将开放环境与底层硬件相解耦,实现后向兼容,可以最大程度的保护开发者的数字资产。

重点事件

Nvidia 禁止其他平台运行 CUDA

Nvidia在CUDA 11.6的用户许可协议中明确指出,禁止在其他硬件平台上通过转换层运行CUDA

参考

1、昇腾社区--CANN是什么

2、昇腾社区--CANN

3、昇腾计算产业发展白皮书--华为-中国信通院-中国人工智能产业发展联盟

4、华为--昇腾计算产业概述

5、鲲鹏计算产业发展白皮书--2020

6、华为--迈向智能世界白皮书

7、德勤--全球人工智能发展白皮书--2020

8、Nvidia 对 CUDA 的最新限制引起中国 AI 界的关注

9、大力出奇迹,揭秘昇腾CANN的AI超能力

10、关于华为昇腾(Ascend)AI芯片,CANN计算架构,MindSpore深度学习框架,MindStudio开发工具

11、华为:绕过CUDA、平替英伟达,我来为中国AI公司提供芯片

相关推荐
funnycoffee12340 分钟前
Huawei 6730 Switch software upgrade example版本升级
java·前端·华为
制造数字化方案研究院42 分钟前
59页|PPT|华为集成服务交付ISD业务变革总体方案:业务规则、流程、IT、组织及度量“四位一体”的管理体系
运维·华为
博睿谷IT99_43 分钟前
华为物联网认证:开启万物互联的钥匙
物联网·华为·华为认证·职业规划
遇到困难睡大觉哈哈13 小时前
HarmonyOS 公共事件机制介绍以及多进程之间的通信实现(9000字详解)
华为·harmonyos
伍哥的传说16 小时前
鸿蒙系统(HarmonyOS)应用开发之实现电子签名效果
开发语言·前端·华为·harmonyos·鸿蒙·鸿蒙系统
Fanmeang21 小时前
OSPF高级特性之FRR
运维·网络·华为·ip·ospf·spf·frr
kumalab21 小时前
HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
华为·harmonyos
瑶光守护者1 天前
【卫星通信】超低比特率语音编解码器(ULBC)的信道特性评估
深度学习·华为·卫星通信·3gpp·ulbc
不凡的凡1 天前
鸿蒙图片相似性对比
华为·harmonyos
yenggd11 天前
动态ds-vnp之normal和shortcut两种方式配置案例
网络·华为