共计 4538 个字符,预计需要花费 12 分钟才能阅读完成。
摘要:CANN(Compute Architecture for Neural Networks)异构计算架构,是以晋升用户开发效率和开释昇腾 AI 处理器极致算力为指标,专门面向 AI 场景的异构计算架构。
1、引言
从 2016 年,战败世界顶级棋手,强势将了人类一军的 AlphaGo,
到 2020 年,会写小说、编剧本、敲代码,科科满分样样全能的 GPT-3,
再到 2021 年,最靠近人类中文理解能力,泛化力超群的盘古大模型…
近几年的人工智能畛域,像开了挂一样,一直刷新人类认知,颠覆人类设想…
和人类把握某项技能一样,训练一个足够聪慧的 AI 算法模型往往须要成千上万的数据量。以 GPT- 3 为例,其参数量曾经达到 1750 亿、样本大小有 45TB 之多,单次训练工夫以月为单位,算力诉求已是挡在 AI 赛道上的绊脚石!
同时,随着人工智能利用日益成熟,文本、图片、音频、视频等非结构化数据的解决需要呈指数级增长,数据处理过程从通用计算逐渐向异构计算适度。
华为推出的昇腾 AI 根底软硬件平台。其中,昇腾 AI 处理器 + 异构计算架构 CANN,带着与生俱来的超强算力和异构计算能力,软硬件强强联合,正逐步成为促成 AI 产业疾速落地的催化剂。
CANN(Compute Architecture for Neural Networks)异构计算架构,是以晋升用户开发效率和开释昇腾 AI 处理器极致算力为指标,专门面向 AI 场景的异构计算架构。对上反对支流前端框架,向下对用户屏蔽系列化芯片的硬件差别,以全场景、低门槛、高性能的劣势,满足用户全方位的人工智能诉求。
2、支流前端框架兼容,疾速搞定算法移植
目前人工智能畛域内,AI 算法模型搭建方面的技能曾经是炉火纯青,市面上用于 AI 模型搭建的深度学习框架,除了华为开源的 MindSpore,还有 Google 的 TensorFlow、Facebook 的 PyTorch、Caffe 等。
CANN 通过 Plugin 适配层,能轻松承接基于不同框架开发的 AI 模型,将不同框架定义的模型转换成标准化的 Ascend IR(Intermediate Representation)表白的图格局,屏蔽框架差别。
这样,开发者只须要非常少的改变,即可疾速搞定算法移植,体验昇腾 AI 处理器的磅礴算力,大大减少了切换平台的代价,就说它香不香?
3、简略易用的开发接口,让小白也能玩转 AI
依附人工智能实现智能化转型,简直成为了各行各业的必修课,CANN 秉承 极简开发 的理念,提供了一套简略易用的 AscendCL(Ascend Computing Language)编程接口,为开发者屏蔽底层处理器的差别,你只须要把握一套 API,就能够全面利用于昇腾全系列 AI 处理器。
同时,可能满足开发者可能在将来 CANN 版本升级的状况下,仍然能够做到 后向全面兼容,且运行效率不打折扣!
简略的 AI 利用开发接口
人工智能寄托着人类对将来美好生活的神往,当咱们每天面对“这是什么垃圾,要扔在哪个桶里”的灵魂拷问的时候,一个 AI 垃圾分类桶利用,就能把你从生灵涂炭中解救出来。
AscendCL 提供了一套用于开发深度神经网络推理利用的 C 语言 API 库,兼具运行时资源管理、模型加载与执行、图像预处理等能力,可能让开发者轻松解锁图片分类、指标辨认等各类 AI 利用。并且能够做到即反对通过支流开源框架调用 AscendCL 库,也反对间接调用 CANN 凋谢的 AscendCL 编程接口。
上面教你 5 步搞定 AI 垃圾分类利用:
- 运行治理资源申请:用于初始化零碎外部资源。
- 加载模型文件并构建输入内存:将开源模型转换成 CANN 反对的 om 模型,并加载到内存;获取模型根本信息,构建模型输入内存,为后续模型推理做筹备。
- 数据预处理:对读入的图像数据进行预处理,而后构建模型的输出数据。
- 模型推理:依据构建好的模型输出数据进行模型推理。
- 解析推理后果:依据模型输入,解析模型的推理后果。
灵便的算子开发接口
当你的 AI 模型中有 CANN 尚未反对的算子,或者想要批改已有算子以晋升计算性能时,能够利用 CANN 凋谢的自定义算子开发接口,得心应手地开发你想要的算子。
面向不同程度的 AI 开发者,CANN 提供 高效(TBE-DSL)和业余(TBE-TIK)两种算子开发模式,可灵便满足不同档次程度的开发者。
其中,TBE-DSL 的入门难度较低,它能够主动实现数据的切分和调度,开发者只需关注算子自身的计算逻辑,无需理解硬件细节,即可开发出高性能算子。
TBE-TIK 绝对难一些,不像 TBE-DSL 只是在高层形象编程,而是提供指令级编程和调优能力,开发者须要手工实现类指令级调用,这样能充沛开掘硬件能力,实现更加高效和简单的算子。
便捷的 IR 构图接口
另外,开发者还能够通过标准化的 Ascend IR(Intermediate Representation)接口,抛开深度学习框架自身,间接调用 CANN 中的算子库,构建出能够在昇腾 AI 处理器上执行的高性能模型。
4、1200+ 高性能算子库,筑起磅礴算力源泉
基于深度学习框架构建的模型,其实是由一个个计算单元组成,咱们称这些计算单元为算子(Operator,简称 Op),它对应着特定的计算逻辑。
算子在硬件上的减速计算形成了减速神经网络的根底和外围。目前 CANN 提供了 1200+ 种 深度优化的、硬件亲和的算子,正是如此丰盛的高性能算子,筑起了磅礴的算力源泉,让你的神经网络「刹时」减速。
- NN(Neural Network)算子库:CANN 笼罩了包含 TensorFlow、Pytorch、MindSpore、ONNX 框架在内的,罕用深度学习算法的计算类型,在 CANN 所有的算子中占有最大比重,用户只须要关注算法细节的实现,大部分状况下不须要本人开发和调试算子。
- BLAS(Basic Linear Algebra Subprograms)算子库:BLAS 为根底线性代数程序集,是进行向量和矩阵等根本线性代数操作的数值库,CANN 反对通用的矩阵乘和根底的 Max、Min、Sum、乘加等运算。
- DVPP(Digital Video Pre-Processor)算子库:提供高性能的视频编解码、图片编解码、图像裁剪缩放等预处理能力。
- AIPP(AI Pre-Processing)算子库:次要实现扭转图像尺寸、色域转换(转换图像格式)、减均值 / 乘系数(图像归一化),并与模型推理过程交融,以满足推理输出要求。
- HCCL(Huawei Collective Communication Library)算子库:次要提供单机多卡以及多机多卡间的 Broadcast,allreduce,reducescatter,allgather 等汇合通信性能,在分布式训练中提供高效的数据传输能力。
5、高性能图编译器,赋予神经网络超能力
世间最苦是期待,等红绿灯,等寒暑假,等外卖,等那个对的人…
人工智能畛域也是一样,随着神经网络构造的疾速演进,单纯利用手工优化来解决 AI 模型性能问题越来越容易呈现瓶颈,CANN 的图编译器像是一个魔法师,将具备较高形象度的计算图,依据昇腾 AI 处理器的硬件构造特点,进行编译优化,从而可能高效执行。
魔法师到底有哪些「神操作」呢?
主动算子交融:基于算子、子图、SCOPE 等多维度进行主动交融,无效缩小计算节点,大幅缩小计算工夫。
Buffer 交融:针对神经网络计算大数据吞吐,memory bound 问题,通过缩小数据搬运次数、晋升昇腾 AI 处理器内缓存利用率,晋升计算效率。
咱们对 Buffer 交融前后做一比对:
交融前,算子 1 在昇腾 AI 处理器上计算完后,将数据从昇腾 AI 处理器内的缓存 buffer 搬运到内部存储,算子 2 从内部存储获取数据作为输出,搬入缓存 buffer 进行计算。交融后,算子 1 计算实现后,数据保留在缓存 buffer,算子 2 从缓存 buffer 间接获取数据进行算子 2 的计算,无效缩小数据搬运次数,晋升了计算性能。
全图下沉:昇腾 AI 处理器,集成了丰盛的计算设施资源,比方 AICore/AICPU/DVPP/AIPP 等,正是得益于昇腾 AI 处理器上丰盛的土壤,使得 CANN 不仅能够将计算局部下沉到昇腾 AI 处理器减速,还能够将控制流、DVPP、通信局部一并下沉执行。尤其在训练场景,这种把逻辑简单计算图的全副闭环在 AI 处理器内执行的能力,能无效缩小和 Host CPU 的交互工夫,晋升计算性能。
异构调度能力:当计算图中含有多类型的计算工作时,CANN 充分利用昇腾 AI 处理器丰盛的异构计算资源,在满足图中依赖关系的前提下,将计算任务分配给不同的计算资源,实现并行计算,晋升各计算单元的资源利用率,最终晋升计算工作的整体效率。
6、主动混合精度,无效达到收益均衡
顾名思义,主动混合精度是一种主动将半精度和单精度混合应用,从而减速模型执行的技术,在大规模模型训练场景下有着不可或缺的位置。
单精度(Float Precision32,FP32)是计算机罕用的一种数据类型,半精度(Float Precision16,FP16)则是一种绝对较新的浮点类型,在计算机中应用 2 字节(16 位)存储,实用于精度要求不高的场景。
不言而喻,应用 FP16 类型必定会带来计算精度上的损失,但对于深度学习训练而言,并不是所有计算都要求很高的精度。因而,能够将计算图中对精度不敏感的算子应用 FP16 类型减速计算,可无效缩小内存应用,达到性能和精度均衡。
7、E 级集群,开启 AI 超算时代
随着支流深度学习模型所可能解决的问题日趋简单,模型自身的复杂度也开始增大,人工智能畛域须要更弱小的算力,来满足将来网络的训练需要。
基于昇腾 AI 根底软硬件的“鹏城云脑 II”,突破了当今业内百 P 级 FLOPS(每秒十亿亿次计算)的算力天花板,让 E 级 FLOPS(每秒百亿亿次计算)算力场景迈上了历史舞台。
它集成了数千颗昇腾 AI 处理器,总算力达到 256-1024 PFLOPS,也就是每秒 25.6-102.4 亿亿次浮点运算。
如何高效调度上千颗昇腾 AI 处理器,是大规模集群网络面临的难题。
CANN 集成了 HCCL(Huawei Collective Communication Library,华为汇合通信库),为昇腾 AI 处理器多机多卡训练提供了数据并行 / 模型并行的高性能汇合通信计划:
- server 内高速 HCCS Mesh 互联和 server 间无阻塞 RDMA 组网的两级拓扑组网,配合拓扑自适应通信算法,能充分利用链路带宽,并将 server 间的数据传输量并行均分至各个独立的网络立体,大大晋升超大规模集群下模型训练线性度。
- 集成高速通信引擎和专用硬件调度引擎,大幅升高通信调度开销,实现通信工作和计算工作对立谐和调度,精准控制系统抖动。
如果把“鹏城云脑 II”比作一个大型交响乐团,那么 CANN 就是一名优良的指挥家,携手昇腾 AI 处理器,开启了 AI 超算时代新篇章。
8、写在最初
CANN 在 2018 年公布伊始便一直尝试冲破,带给开发者极简体验,开释 AI 硬件的极致性能,成为了撑持 CANN 在人工智能畛域行走的双腿。
置信它会矢志不渝地在 AI 这条赛道上,携手想要扭转世界的人,一起扭转世界,共筑将来!
2021 年年底,CANN 也要迎来簇新的、更加弱小的 5.0 版本,它到底会带来哪些惊喜呢?让咱们刮目相待吧!
点击关注,第一工夫理解华为云陈腐技术~