华为 CANN

华为 CANN

  • 1 介绍
    • 1.1 概述
    • 1.2 CANN 是华为昇腾计算产业的重要一环
    • 1.3 昇腾系列处理器
    • 1.4 昇腾 AI 产业
    • 1.5 从 AI 算法到产品化落地流程
    • 1.6 多样性计算架构
    • 1.7 人工智能各层级图示
    • 1.8 人工智能技术发展历史
  • 2 CANN vs CUDA
    • 支持平台
    • 优化方向
    • 编程接口
    • 生态系统与应用
    • 性能与功能
  • 3 CANN逻辑架构
    • 昇腾计算语言(Ascend Computing Language,简称AscendCL)
    • 昇腾计算服务层(Ascend Computing Service Layer)
    • 昇腾计算编译层(Ascend Computing Compilation Layer)
    • 昇腾计算执行层(Ascend Computing Execution Layer)
    • 昇腾计算基础层(Ascend Computing Base Layer)
  • 4 支持的深度学习框架与第三方库
  • 5 全栈开放
  • 重点事件
    • 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公司提供芯片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/845597.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SwiftUI中SafeArea的管理与使用(ignoresSafeArea, safeAreaPadding, safeAreaInset)

SafeArea是指不与视图控制器提供的导航栏、选项卡栏、工具栏或其他视图重叠的内容空间。 在UIKit中,开发人员需要使用safeAreaInsets或safeAreaLayoutGuide来确保视图被放置在界面的可见部分。 SwiftUI彻底简化了上述过程,除非开发者明确要求视图突破安…

Java—— StringBuilder 和 StringBuffer

1.介绍 由于String的不可更改特性,为了方便字符串的修改,Java中又提供了StringBuilder和Stringbuffer类,这两个类大部分功能是相同的,以下为常用方法: public static void main(String[] args) {StringBuilder sb1 n…

百度中心之星

目录 新材料 星际航行 新材料 直接模拟:因为要考虑上次出现的位置,所以使用map映射最好,如果没有出现过就建立新映射,如果出现过但是已经反应过就跳过,如果出现过但是不足以反应,就建立新映射,…

react 怎样配置ant design Pro 路由?

Ant Design Pro 是基于 umi 和 dva 的框架,umi 已经预置了路由功能,只需要在 config/router.config.js 中添加路由信息即可。 例如,假设你需要为 HelloWorld 组件创建一个路由,你可以将以下代码添加到 config/router.config.js 中…

parallels版虚拟机Linux中安装parallels tools报错

按照一个博客的教程安装的可还是安装不了,请指点指点 1.先是输入name -a 输出:Linux user 6.6.9-arm64 #11 SMP Kali 6.6.9-1kali1 (2024-01-08) aarch64GNU/Linux2.按照版本号找对应的文件并下载 第一个文件: linux-headers-6.6.9-arm64_…

Three.js 性能监测工具 Stats.js

目录 前言 性能监控 引入 Stats 使用Stats 代码 前言 通过stats.js库可以查看three.js当前的渲染性能,具体说就是计算three.js的渲染帧率(FPS),所谓渲染帧率(FPS),简单说就是three.js每秒钟完成的渲染次数,一般渲染达到每秒钟60次为…

sqlite--SQL语句进阶

SQL语句进阶 函数和聚合 函数: SQL 语句支持利用函数来处理数据, 函数一般是在数据上执行的, 它给数据的转换和处理提供了方便常用的文本处理函数: 常用的文本处理函数: // 返回字符串的长度 length();//将字符串…

LeetCode42:接雨水

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 代码 单调栈 class Solution { public:int trap(vector<int>& height) {stack<int> stk;int result 0;stk.push(0);for (int …

MoeCTF 2022 usb

直接找 URB的第一个输入协议 我们需要提取的数据 HID Data 提取过滤器 tshark -r usb.pcapng -Y "usb.src\"2.2.1\"" -T json >1.json 拿 usbhid.data 字段 tshark -r usb.pcapng -Y "usb.src\"2.2.1\"" -T json -e usbhid.data …

如何在window是安装mysql数据库(从零开始)

mysql简介&#xff1a; MySQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是目前世界上最流行的数据库之一。MySQL最初由瑞典的MySQL AB公司开发&#xff0c;后来被Sun Microsystems收购&#xff0c;而后Sun Microsystems又被Oracle收购。My…

WPF 依赖属性原理、 附加属性

依赖属性如何节约内存 MSDN中给出了下面几种应用依赖属性的场景&#xff1a; 希望可在样式中设置属性。 希望属性支持数据绑定。 希望可使用动态资源引用设置属性。 希望从元素树中的父元素自动继承属性值。 希望属性可进行动画处理。 希望属性系统在属性系统、环境或用户…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-24.3,4 SPI驱动实验-I.MX6U SPI 寄存器

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

【小白专用 已验证24.5.30】ThinkPHP6 视图

ThinkPHP6 视图 模板引擎支持普通标签和XML标签方式两种标签定义&#xff0c;分别用于不同的目的 标签类型描述普通标签主要用于输出变量、函数过滤和做一些基本的运算操作XML标签也称为标签库标签&#xff0c;主要完成一些逻辑判断、控制和循环输出&#xff0c;并且可扩展 c…

注意力可视化代码

读取网络层输出的特征到txt文件&#xff0c;arr为文件名 def hot(self, feature, arr):# 在第二维&#xff08;通道维&#xff09;上相加summed_tensor torch.sum(feature, dim1, keepdimTrue) # 结果形状为 [1, 1, 64, 64]selected_matrix summed_tensor.squeeze(1) # 移除…

三丰云免费服务器

三丰云网址&#xff1a; https://www.sanfengyun.com 可申请免费云服务器&#xff0c;1核/1G内存/5M宽带/有公网IP/10G SSD硬盘/免备案。 收费云服务器&#xff0c;买2年送1年&#xff0c;有很多优惠

msf攻击windows实例

环境&#xff1a;攻击机kali&#xff08;192.168.129.139&#xff09;&#xff0c;目标机windows10&#xff08;192.168.129.132&#xff09; 方法一&#xff1a;通过web站点&#xff0c;使用无文件的方式攻击利用执行&#xff08;命令执行漏洞&#xff09; 方法二&#xff1…

提示工程(Prompt Engineering)和代码生成

文心一言 提示工程&#xff08;Prompt Engineering&#xff09;和代码生成之间的关系主要体现在如何通过精心设计的提示来指导或优化代码生成的过程。以下是关于提示工程和代码生成的详细解释&#xff1a; 一、提示工程&#xff08;Prompt Engineering&#xff09; 提示工程…

KotlinConf 2024:深入了解Kotlin Multiplatform (KMP)

KotlinConf 2024&#xff1a;深入了解Kotlin Multiplatform (KMP) 在近期的Google I/O大会上&#xff0c;我们推荐了Kotlin Multiplatform (KMP)用于跨移动、网页、服务器和桌面平台共享业务逻辑&#xff0c;并在Google Workspace中采用了KMP。紧接着&#xff0c;KotlinConf 2…

【设计模式深度剖析】【7】【结构型】【享元模式】| 以高脚杯重复使用、GUI中的按钮为例说明,并对比Java类库设计加深理解

&#x1f448;️上一篇:外观模式 | 下一篇:结构型设计模式对比&#x1f449;️ 设计模式-专栏&#x1f448;️ 目录 享元模式定义英文原话直译如何理解&#xff1f;字面理解例子&#xff1a;高脚杯的重复使用例子&#xff1a;GUI中的按钮传统方式使用享元模式 4个角色1. …

锻压设备智能制造工厂物联数字孪生平台,推进制造业数字化转型

锻压设备智能制造工厂物联数字孪生平台&#xff0c;推进制造业数字化转型。随着全球制造业的飞速发展&#xff0c;数字化转型已经成为企业提升竞争力、实现可持续发展的关键。在锻压设备智能制造领域&#xff0c;工业物联数字孪生平台以其强大的数据集成、分析和管理能力&#…