昇腾AI异构计算架构CANN——高效使能AI原生创新

异构计算与人工智能的关系是什么?昇腾AI异构计算架构CANN是什么?有哪些主要特点?开发者如何利用CANN的原生能力进行大模型创新,构筑差异化竞争力?带着这些问题,我们来认识昇腾AI异构计算架构——CANN。

1 异构计算与人工智能的关系

近年来,人工智能正在以惊人的速度融入到日常生活的众多方面,能够理解语音的智能助手、能够识别人脸的摄像头,能够检测路况的自动驾驶汽车…无论哪种,要想让机器拥有人类技能,就需要搭建一个像人类大脑一样的“神经网络”,我们称作AI算法或模型,并用大量的数据训练,直至它变得足够聪明,并能够基于经验对新的任务做出反馈。这个过程依赖高度复杂的算法和巨大的计算量,以GPT-3为例,其参数量已经达到1750亿、样本大小有45TB之多,单次训练时间要以月为单位,如何提高计算效率是人工智能要解决的核心问题。

在人工智能计算中,涉及较多的矩阵或向量的乘法和加法,CPU这类通用处理器的硬件特性决定了它处理此类计算需求的效率非常低,因此在现实应用中,主要利用擅长大规模并行计算任务的AI加速器完成,譬如NPU(昇腾AI处理器)等专用处理器。由于计算的多样性,在这些加速器内部存在非常多不同架构的计算单元,如scalar/vector/cube,就好比规划厨房空间时,针对不同的厨具设计不同的收纳空间,这样不同形状和大小的盘子、杯子就能放到各自专用的位置,从而最大限度地利用空间。

异构计算是指在同一计算系统集成不同类型或架构的处理单元,以便更有效的执行不同类型的任务。为充分利用这些异构算力,就需要构建一套统一的编译优化和编程接口体系,实现底层多样算力与上层框架/算法的解耦、互通,从而发挥不同处理器的优势,通过协同工作,来提高整个系统的性能、能效和灵活性。

2 昇腾AI异构计算架构CANN是什么

CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构,对上支持PyTorch、TensorFlow以及昇思MindSpore等业界主流AI框架,对下使能昇腾AI处理器,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供高效易用的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务。

3 异构计算架构CANN的技术优势

3.1 极致性能

CANN从2018年的第一个版本发展至今,经过多个版本的迭代,无论从计算加速角度,还是编程易用性角度来说,都积累了非常多的技术优势。

如何借助CANN让AI任务在异构硬件上加速计算?

我们知道,AI任务的逻辑核心是AI算法,就是文章开始提到的那个类似人类大脑一样的“神经网络”。这个神经网络是一张巨大的,有成千上万个节点连接而成的庞大计算图,直接递交给异构硬件的话,运行效率可想而知,就需要通过CANN对整个计算图进行编译优化。CANN会把计算图做加工和精简,消融掉若干节点,大图变成若干子图。

CANN根据各异构硬件上擅长处理的计算任务类型,将各计算子图下发到CPU、NPU、甚至是NPU内部更小的异构单元上执行。多任务执行过程时,由于图和图之间的依赖关系,顺序执行必然会因为任务之间的互相等待带来性能损耗,CANN通过类似工厂流水线的方式让计算任务自动并行起来,这样整个工厂的机器就能满负荷运转起来,各异构资源便能“物尽其用”。

了解更详细的CANN计算图优化技术,可参考前期发布的系列技术博客:

  1. GE图引擎:深度解读昇腾CANN计算图优化技术,提升算法计算效率
  2. GE图引擎:深度解读昇腾CANN多流并行技术,提高硬件资源利用率
  3. GE图引擎:深度解读昇腾CANN内存复用技术,降低网络内存占用
  4. GE图引擎:深度解读昇腾CANN模型下沉技术,提升模型调度性能
  5. GE图引擎:深度解读昇腾CANN小shape算子计算优化技术,进一步减少调度开销

除了针对计算图的优化,CANN更是将计算图中的节点(即AI算子)适配昇腾硬件进行了深度优化,并预置到内部的加速库中,组成了能够让AI任务飞速执行的弹药库。这其中不仅有包含常用深度学习算法计算类型的NNNeuralNetwork)算子库、能够提供高性能媒体数据处理能力的DVPPDigital Vision Pre-Processing)算子库、分布式训练中提供卡间高效数据传输的HCCLHuawei Collective Communication Library)算子库,更有覆盖Transformer网络大模型结构泛化的高性能融合算子库。

3.2 极简易用

在编程易用性方面,CANN能够端到端使能从算子到模型算法的开发及部署,帮助开发者快速构建基于昇腾平台的AI应用及业务。

从算法创新角度来说,CANN广泛支持业界主流深度学习框架,包括昇思MindSpore、PyTorch、TensorFlow 、PaddlePaddle、计图Jittor等等,支持从GPU生态低成本迁移至昇腾生态,开发者可以选择继续使用原有框架和算法,仅切换底层硬件即可;可以选择迁移到华为开源的昇思MindSpore框架获得昇腾全栈能力;也完全可以基于CANN进行原生开发,目前Pytorch已支持昇腾设备接入,意味着开发者可直接在昇腾设备上使用PyTorch原生算法开发。

在算法迁移或开发过程中,如果发现某些算子性能达不到预期要求,或者想针对新的业务场景开发新功能,就需要进行算子开发。在这个维度上,CANN提供了面向算子开发场景的昇腾Ascend C编程语言,它原生支持C/C++编程规范,通过多层接口抽象、并行编程范式、孪生调试等技术,极大提高了算子的开发效率,帮助AI开发者低成本完成算子开发和模型调优部署。特别在大模型场景下,利用Ascend C,能将Transformer网络中融合算子的开发周期从2人月缩短到2人周,为大模型开发和创新创造了便利条件。

从AI应用开发角度来说,CANN提供了AscendCL编程接口,它是一套用于开发AI推理应用的C语言API库,兼具运行时资源管理、模型加载与执行、图像预处理等能力,能够让开发者轻松解锁图片分类、目标识别等各类AI应用。AscendCL屏蔽了昇腾硬件差异,开发者只需要掌握一套API便可以全面应用于昇腾全系列硬件,并且在未来CANN版本升级的情况下,依然可以做到后向全面兼容,且运行效率不打折扣!

3.3 架构开放

2021年,CANN开放应用开发、算子开发、图开发接口,并在昇腾社区例行发布社区版本,包含最新版本特性供开发者提前使用。

2023年,CANN开放Runtime运行时,让开发者可以直接调用NPU内部资源,自主构筑极致性能大算子和加速库。

2024年,随着大模型的飞速演进,AI越来越难被普通的开发者和组织驾驭,为更进一步提升AI计算效率,支撑开发者的算法创新诉求,CANN进一步开放,为开发者提供了更加丰富、灵活的原生开发工具,支持开发者原生创新,构筑差异化优势。

借助CANN开放资源,开发者可以更深入地调用运行时能力,释放硬件性能;通过Ascend C接口类库及算子加速库,获得原生开发能力;通过集合通信库,自定义通信策略,获得更高的通信性能;通过GE图引擎接口,自定义图结构,获得最优图性能。

来源:https://www.hiascend.com/software/cann

了解CANN开放能力的更多详情,可参考前期发布的系列技术博客:

  1. Ascend C 2.0全新升级,支撑大模型融合算子高效开发
  2. 一文了解AOL算子加速库
  3. HCCL——昇腾高性能集合通信库
  4. HCCL集合通信算法开发Hello World示例(超详细)

4 开发者计划&生态进展

4.1 开发者计划

在开发者培养方面,CANN针对不同层次开发者,提供了全面的赋能体系,从而支持了个人、高校&科研院所、企业伙伴等百万开发者一起学AI、用AI。

在入门阶段,CANN提供学习文档、认证课程、系列教材供开发者自主学习,开展线上线下CANN训练营活动牵引开发者学习,还联合高校老师开展教学实践赋能学生群体。

https://www.hiascend.com/zh/document

在实践阶段,CANN提供丰富的应用案例供开发者体验、各种类型的众智和竞赛任务给予开发者开展实践,开发者可登陆昇腾社区官网学习体验。

在研究创新阶段,成立昇腾CANN学术基金鼓励创新成果孵化,同时通过技术行等专项支持大力扶持企业伙伴,探讨与解决关键技术问题,使能伙伴商业成功。

此外,在微信公众号(昇腾CANN)、CSDN(昇腾CANN)、知乎(昇腾CANN)、以及B站(昇腾AI开发者UP号)上,还会不定时发布一些科普性的技术博客、热点新闻事件和活动赛事,让开发者了解最新AI技术动向。

4.2 生态进展

在生态发展方面,CANN始终坚持开放、合作、共赢的原则,与百万开发者共建繁荣AI生态。过去的几年中,CANN与超过300家高校研究团队开展合作,保持技术先进性,累计组织过数百场线上线下活动,与300万的昇腾开发者共成长。

CANN积极与三方开源社区开展合作,目前已支持昇思MindSpore、飞桨(PaddlePaddlePaddle-Lite)、PyTorch、TensorFlow、计图(Jittor)业界主流深度学习框架、OpenCV DNNMMDeploy推理引擎,从而实现不同框架/引擎下的代码在异构硬件上的高效运行。

CANN联合科大讯飞在半年时间内通过孵化大模型融合算子、多维度分布式并行、以及基于CANN联合深度优化,实现了讯飞星火大模型训练和推理计算效率翻番。依托CANN的全栈协同优化,鹏城云脑构建了性能领先的AI训练集群,并已经面向全社会为大模型训练提供算力底座。此外,CANN助力紫东太初构建开放服务平台2.0,使能行业大模型高效开发、加速行业应用落地。

相信随着CANN的开放,会有越来越多的客户、伙伴、开发者基于CANN的原生能力快速创新,孵化出更多的商用成果,为社会创造更大的应用价值。

5 了解CANN最新技术动向

9月19日-21日,第九届华为全联接大会(HUAWEI CONNECT 2024)将在上海盛大开启,届时将迎来CANN 8.0版本的重磅发布,欢迎关注会议信息了解CANN最新技术动向,详情请登陆昇腾社区官网。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

随机验证码验证【JavaScript】

这段 JavaScript 代码实现了随机验证码的生成和验证功能。 实现效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-…

Vue3教程 - 2 开发环境搭建

更好的阅读体验&#xff1a;点这里 &#xff08; www.foooor.com &#xff09; 2 开发环境搭建 要进行 Vue 开发&#xff0c;需要安装 Node.js&#xff0c;因为构建 Vue 项目的工具&#xff0c;例如 Webpack、Vite等&#xff0c;这些工具依赖于Node.js环境来运行。 Node.js…

OpenAI GPT-3 API: What is the difference between davinci and text-davinci-003?

题意&#xff1a;OpenAI GPT-3 API&#xff1a;davinci 和 text-davinci-003 有什么区别 问题背景&#xff1a; Im testing the different models for OpenAI, and I noticed that not all of them are developed or trained enough to give a reliable response. 我正在测试…

玩手机数据集 8201张玩手机的照片,有对应的xml和txt文件,可以用于yolo训练

玩手机数据集 8201张玩手机的照片&#xff0c;有对应的xml和txt文件&#xff0c;可以用于yolo训练 玩手机数据集&#xff08;Phone Usage Detection Dataset&#xff09; 数据集概述 该数据集专为检测人们使用手机的行为设计&#xff0c;旨在帮助研究人员和工程师开发高效的…

Sentinel-1 数据处理时如何手动下载高程数据

在Sentinel-1 数据数据预处理时&#xff0c;会使用高程数据进行地形校正。但选择自动下载高程时&#xff0c;由于网络原因经常会卡死&#xff0c;造成预处理过程不能正常进行&#xff01; 这个问题经过我的反复实践&#xff0c;可以通过手动下载高程数据来解决。下面是具体方法…

MySQL之基本查询(一)(insert || select)

目录 一、表的增删查改 二、表的增加insert 三、表的读取select where 条件子句 结果排序 筛选分页结果 一、表的增删查改 我们平时在使用数据库的时候&#xff0c;最重要的就是需要对数据库进行各种操作。而我们对数据库的操作一般来说也就是四个操作&#xff0c;CRUD :…

【学术会议征稿】第七届电力电子与控制工程国际学术会议(ICPECE 2024)

高录用|快检索|JPCS独立出版ISSN:1742-6596 连续6年EI检索&#xff0c;稳定且快速 见刊后均1个月检索 第七届电力电子与控制工程国际学术会议&#xff08;ICPECE 2024&#xff09; 2024 7th International Conference on Power Electronics and Control Engineering 2024年…

认知作战壳吉桔:未来认知战战略全案发展趋势

认知作战壳吉桔&#xff1a;未来认知战战略全案发展趋势 认知作战壳吉桔&#xff1a;未来认知战战略全案发展趋势 关键词&#xff1a;认知战战术融合, 数据驱动决策, 生成式人工智能AIGC, 影响力认知, 个性化定制, 沉浸式体验, 视频直播认知, 受众体验优化, 社交媒体互动, 可…

[PICO VR]Unity如何往PICO VR眼镜里写持久化数据txt/json文本

前言 最近在用PICO VR做用户实验&#xff0c;需要将用户实验的数据记录到PICO头盔的存储空间里&#xff0c;记录一下整个过程 流程 1.开启写入权限 首先开启写入权限&#xff1a;Unity->Edit->Player->安卓小机器人->Other Settings->Configuration->Wri…

如何用LightningChart Python实现地震强度数据可视化应用程序?

LightningChart Python是知名图表控件公司LightningChart Ltd正在研发的 Python 图表&#xff0c;目前还未正式推出&#xff0c;感兴趣的朋友可以戳文末链接申请试用&#xff01; 什么是地面震动强度 Python 应用程序&#xff1f; 地面震动是地震的基本特征&#xff0c;会对建…

【Linux】fork入门级使用

目录 一、前置准备 1、进程的基本概念 2、进程标识符PID、PPID 1&#xff09;pid介绍 2&#xff09;获取pid和ppid 二、fork函数 1、fork的基本介绍 1&#xff09;fork&#xff08;&#xff09;&#xff1a; 创建子进程 2&#xff09;对于函数具体的描述 3&#xff09…

yuque-dl-语雀知识库下载为本地markdown

之前有下载语雀的需求&#xff0c;发现了一个开源项目&#xff0c;用起来还是很顺手的 需要环境 需要前端的node环境 https://nodejs.cn/ Node.js 18.4 or later 插入 npm i -g yuque-dl 使用 $ yuque-dl --helpUsage:$ yuque-dl <url>Commands:<url> …

Python 如何读取和写入文件

Python 如何读取和写入文件 文件操作是编程中常见的任务&#xff0c;几乎所有编程语言都支持文件的读写功能。在 Python 中&#xff0c;文件操作简单直观&#xff0c;适用于从初学者到经验丰富的开发者。无论是处理小型文本文件&#xff0c;还是需要处理大型数据文件&#xff…

fo-dicom是如何实现DICOM 的网络通信功能

一、前言 前面的文章&#xff0c;我们介绍了fo-dicom是一个怎样的开源库等一些内容&#xff1a; fo-dicom&#xff0c;第一个基于.NET Standard 2.0 开发的DICOM开源库fo-dicom开源库是如何满足 DICOM标准的基本要求fo-dicom开发之DICOM数据解析&#xff1a;常见数据类型及处…

【Transformers基础入门篇2】基础组件之Pipeline

文章目录 一、什么是Pipeline二、查看PipeLine支持的任务类型三、Pipeline的创建和使用3.1 根据任务类型&#xff0c;直接创建Pipeline&#xff0c;默认是英文模型3.2 指定任务类型&#xff0c;再指定模型&#xff0c;创建基于指定模型的Pipeline3.3 预先加载模型&#xff0c;再…

pycharm恢复两边侧边栏常驻显示

问题&#xff1a; pycharm两边的侧边栏菜单默认不显示&#xff08;打开project还得用alt1快捷键&#xff09;&#xff0c;非常不方便&#xff0c;如下图&#xff1a; pycharm版本&#xff1a;2022.3 professional 勾选&#xff1a;setttngs -> Appearance -> tool Wind…

云原生虚拟化kubevirt安装

kubevirt 介绍 Kubevirt 是 Redhat 开源的一套以容器方式运行虚拟机的项目&#xff0c;通过 kubernetes 云原生方式来管理虚拟机生命周期。它通过使用自定义资源&#xff08;CRD&#xff09;和其它 Kubernetes 功能来无缝扩展现有的集群&#xff0c;以提供一组可用于管理虚拟机…

JavaScript的注释与常见输出方式

注释 源码中注释是不被引擎所解释的&#xff0c;它的作用是对代码进行解释。Javascript 提供两种注释的写法:一种是单行注释&#xff0c;用//起头;另一种是多行注释&#xff0c;放在/*和*/之间。 单行注释&#xff1a; //这是单行注释 多行注释&#xff1a; /*这是 多行 注…

远程升级,你成功了吗?

最近又遇到了远程升级失败的情况&#xff0c;而且是不明原因的多次接连失败。。。 事情是这样的&#xff1a;最近有客户反馈在乡村里频繁出现掉线的情况。通过换货、换SIM卡对比排查测试&#xff0c;发现只有去年5月22号采购的那批模块在客户环境附近会出现掉线的情况&#xf…

服务器操作系统【sar 命令】

sar 安装、语法参数说明以及示例 文章目录 功能概述一、功能介绍1.安装配置2. 配置3. 启动二、sar 语法及参数说明三、示例及释义1.汇报 io 传输速率信息2.内存分页信息3.块设备状态信息4.hugepages 利用率统计信息5.列长度和负载平均值6.内存利用率统计信息7.swap 交换空间利用…