昇腾CANN是什么?

举报
佳菲猫 发表于 2022/05/06 21:50:05 2022/05/06
【摘要】 一个明智的人就是一个不会被表面现象所欺骗的人,他甚至预见到了事情将往哪一方向变化。——叔本华不久前,ML Commons协会公布了基于ML Perf v1.0标准的最新测试结果,NV和GOOGLE仍然是性能的领跑者,但作为国内不多的提交者,鹏城的成绩有目共睹,华为Ascend的性能突飞猛进;在这AI的时代,数据几何式增长,高性能计算硬件呼之欲出,如何服务各种场景下的计算需求,如何在高性能计算...

一个明智的人就是一个不会被表面现象所欺骗的人,他甚至预见到了事情将往哪一方向变化。——叔本华

不久前,ML Commons协会公布了基于ML Perf v1.0标准的最新测试结果,NV和GOOGLE仍然是性能的领跑者,但作为国内不多的提交者,鹏城的成绩有目共睹,华为Ascend的性能突飞猛进;

在这AI的时代,数据几何式增长,高性能计算硬件呼之欲出,如何服务各种场景下的计算需求,如何在高性能计算硬件和AI应用之间架起一座桥梁,CANN异步计算架构就是这座桥梁,一端是AI应用和框架,另一端是Ascend系列芯片。
昇腾全栈AI软硬件平台,构筑智能世界的基石,从上层应用和AI框架到异构计算架构和Ascend处理器,就像一个行走的人,需要大脑的决策支配,需要双腿大步向前,也需要腰背的传递信息和能量释放,CANN就是这个“虎背熊腰”;


CANN是Compute Architecture for Neural Networks的英文缩写,是华为公司针对AI场景推出的异构计算架构,通过提供多层次的编程接口,支持用户快速构建基于昇腾平台的AI应用和业务;

对不同前端提供统一的IR(Intermediate Representation)接口对接,支持TensorFlow/Caffe/MindSpore表达的计算图的解析/优化/编译,提供对后端计算引擎最优化部署能力,充分发挥设备性能。

硬件引擎

用户预设的算法任务,硬件执行单元计算,如何让硬件“理解”它要干什么,哪些硬件设备可以配合使用,如何给每个图节点预设最优的硬件执行单元,如何更高效的完成这些计算任务,就是图优化编译阶段的任务;对于Ascend系列芯片,分不同系列主要有6个引擎: AICore、VectorCore、AICPU、DVPP、AIPP、HCCL,都各自有自己“绝活”;

AICore,核心的tensor计算单元,负责矩阵tensor的卷积计算,每core上16x16x16半浮点精度/cycle,有vectorUnit的256半浮点精度/cycle;Vecto rCor,核心的vector计算单元,每core上有256半浮点精度/cycle;AICPU,逻辑计算单元;DVPP,集成了VPC、JPEGE、JPEGD、PNGD、VDEC和VENC等功能;AIPP,硬件图像预处理功能,包括色域转换,图像归一化(减均值/乘系数)和抠图(指定抠图起始点,抠出神经网络需要大小的图片)等功能;HCCL,多机通讯能力;

软件架构

· GE (Graph Engine):作为图编译和运行的控制中心,提供图运行环境管理、图执行引擎管理、算子库管理、子图优化管理、图操作管理和图执行控制。

· FE (Fusion Engine):管理算子的融合规则、依据融合规则对IR Graph进行匹配和算子融合操作、对系统支持的算子进行管理和维护算子列表、支持自定义算子。

· AICPUE (AICPU Engine):针对计算特征更亲和于CPU的部分算子,负责算子的信息管理和子图编译,包括算子注册、算子内存需求计算、子图优化和task生成,以支持这类算子在AI CPU运算单元的执行。

· HCCL (Huawei Collective Communication Library):负责HCCL算子信息管理。HCCL实现参与并行计算的所有worker的梯度聚合(allreduce)功能,为Ascend多机多卡训练提供数据并行方案。

· Runtime:为神经网络的任务分配提供了资源管理通道。昇腾AI芯片Runtime运行在应用程序的进程空间中,为应用程序提供了存储(Memory)管理、设备(Device)管理、执行流(Stream)管理、事件(Event)管理、核(Kernel)函数执行等功能。

· TS:Task Scheduler,负责计算图Task序列的管理和调度、执行。

· TBE:通过DSL(domain-specific language)描述算子的算法实现和优化调度来自动编译生成算子,同时还作为自定义算子的开发工具供生态开发者使用。

· 算子库:Ascend神经网络加速库,内置丰富算子,支撑神经网络训练和推理加速。

CANN是Ascend对其系列异构硬件使能,能做什么呢?如上文所说,它是个通道,发挥Ascend系列芯片算力的通道,没有CANN,无法发挥Ascend的蓬勃算力。其所有的软件架构、软件调度、加速库、算子实现,都是基于Ascend的硬件架构和指令集;可以说之所以有CANN,是因为Ascend,又或者说之所以Ascend不断的超越自身性能,CANN发挥着至关重要的作用。

无论从Ascend系列硬件演进还是CANN软件更新出发,路都还很长;希望CANN将不断健壮,在这个海量数据、万物互联、AI智能的时代,驶向命运的彼岸;

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。