百度跨平台AI推理加速引擎:Anakin
一、前言
\\
AI技术包含训练和推理两个阶段。推理阶段的性能好坏既关系到用户体验,又关系到企业的服务成本,甚至在一些极端应用上(比如无人驾驶)直接关系到个人生命财产安全。目前AI落地面临的挑战主要来源于两方面,一方面是AI算法的日新月异,带来了计算量的猛增,从AlexNet到AlphaGo,5年多的时间里计算量提升了30w倍。另一方面是底层硬件异构化的趋势愈发明显,近年来涌现出非常多优秀的架构来解决AI计算力问题。推理引擎的首要任务就是将性能优异且计算量庞大的深度学习框架快速部署到不同的硬件架构之上,并且能够保持性能相对高效。然而纵观开源社区和闭源解决方案,没有任何一款推理引擎可以同时满足开源、跨平台、高性能三个特性。因此,我们结合百度实际业务的需求、百度优秀工程师的研发能力以及行业合作伙伴的大力支持共同完成了百度自己的推理引擎Anakin v0.1.0。Anakin目前支持Intel-CPU、NVIDIA-GPU、AMD-GPU和ARM平台,后续将支持更多平台如寒武纪、比特大陆等。今天Anakin正式开源,期望能够借助社区的力量把Anakin打造的更加精美!
\\
二、 Anakin架构
\\
\\
图 1 Anakin框架
\\
Anakin框架的核心逻辑如图1所示,主要由Parser, Framework 和Saber组成。Parser是独立解析器,用于将不同训练框架生成的模型转化为统一的Anakin图描述。Framework是框架主体,使用C++实现,用于完成硬件无关的所有操作,比如构建网络、图融合、资源复用、计算调度等。Saber是一个高效的跨平台计算库,包括大量的汇编级优化代码,并支持众多国际行业合作伙伴的架构,如Intel-cpu,NV-gpu,AMD-gpu和ARM等,同时以后还将支持寒武纪MLU100和比特大陆BM1682这两款优秀的国产芯片。
\\
三、 Anakin功能特性
\\
Anakin v0.1.0具有开源、跨平台、高性能三个特性,它可以在不同硬件平台实现深度学习的高速推理功能。Anakin在NV、Intel、ARM和AMD-GPU架构上,体现了低功耗、高速预测的特点。
\\
1.支持众多异构平台-跨平台
\\
Anakin广泛的和各个硬件厂商合作,采用联合开发或者部分计算底层自行设计和开发的方式,为Anakin打造不同硬件平台的计算引擎。目前Anakin已经支持了多种硬件架构,如Intel-CPU、NVIDIA-GPU、AMD-GPU、ARM等,未来将会陆续支持比特大陆、寒武纪深度学习芯片等等不同硬件架构。我们希望Anakin可以为用户提供更灵活的底层选择,更方便简单的部署方式,并在不同底层硬件上达到最优性能。
\\
2. 高性能
\\
Anakin在众多硬件平台都有很好的性能收益, 本文列举了一些实验对比测试数据,更详尽的数据请参见:https://github.com/PaddlePaddle/Anakin/tree/developing/benchmark
\\
- 在NV架构上,我们选择Anakin v0.1.0、TensorRT v3.0.0、Tensorflow v1.7.0和Caffe v1.0.0进行了对比,具体的对比结果如图2所示。\
\\
图2 Public model on NV
\\
测试平台Nvidia-P4信息:
\\
- GPU Architecture NVIDIA Pascal™\\t
- Single-Precision Performance 5.5 TFLOPS\\t
- GPU Memory 8 GB\\t
- 在Intel架构上,我们选取Tensorflow-v1.8.0进行对比,具体的对比结果如图3所示。\
\\
图3 Anakin and Tensorflow on CPU
\\
测试平台信息:
\\
- i7-7700:Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz\\t
- 2650-v4:Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz\\t
- 2620-v4:Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz\\t
- 在移动端ARM上,我们选取Tensorflow-lite进行对比,具体的对比结果如图4所示:\
\\
图4 Anakin and TFlite on ARM
\\
测试平台信息:
\\
- 荣耀v9(root): 处理器:麒麟960, 4 big cores in 2.36GHz, 4 little cores in 1.8GHz\\t
- 高通835, 4 big cores in 2.36GHz, 4 little cores in 1.9GHz\\t
- 在AMD-GPU架构上,我们选取Anakin-v0.1.0进行横向对比,具体的对比结果如图5所示:\
\\
图5 MI8 and P4 on VGG16 model
\\
测试平台信息:
\\
MI8: AMD Radeon Instinct MI8
\\
- single-Precision Performance 8.192 TFLOPS\\t
- GPU Memory 4 GB\
P4: GPU Architecture NVIDIA Pascal™
\\
- Single-Precision Performance 5.5 TFLOPS\\t
- GPU Memory 8 GB\
图5中的折线图表示MI8和P4的执行效率的相对比例,具体的计算公式:
\\
P4_Latency * P4_TFLOPS / (MI8_Latency * MI8_TFLOPS);
\\
从图上的折线可知Anakin在MI8和P4上执行效率非常接近,在Thread_num大于2时Anakin_MI8效率更高。
\\
3. 汇编级的kernel优化
\\
Anakin追求的目标是极致,因此它提供了一套基于NVIDIA GPU SASS汇编级优化的库。SASS库支持多种(如sm61,sm50)NVIDA GPU 架构的汇编实现的conv 和 gemm 的核心计算。由于和NVIDIA 商业保密协议规定,目前只能开源编译好的SASS 库
\\
四、Anakin值得一提的技术亮点
\\
- 轻量的dashboard\
Anakin v0.1.0框架中的Parser提供了一个额外的小功能,可以让开发者查看Anakin优化前后的网络结构及参数,如图6和图7所示。这样有助于开发者方便的分析模型。同时,在优化后的Anakin执行图中会添加相应的优化标记,主要包括memory 复用、op融合、并行度分析、执行顺序分析、存储器使用以及同步标记等。例如,在图7中,对于标记了New标签的地方,在代码运行过程中,将只会对这些内容分配内存。这种处理方式将使得Anakin运行时所需的memory更少。
\\
\\
图6优化前的网络结构图
\\
\\
图7 优化后的网络结构图
\\
- Anakin-lite 轻量的移动端版本\
Anakin 还提供了在移动端运行的轻量版本anakin-lite, 我们借助上层图优化机制,帮助深度学习模型code自动生成,针对具体模型自动生成的可执行文件,并且结合针对ARM专门设计的一套轻量接口,合并编译生成模型的lite版本。
\\
Anakin-lite 保持精简化,全底层库大小经过剪裁只有150K 左右,加上自动生成的深度学习模型模块,总大小在200K。模型参数不再采用protobuf而是精简的weights堆叠的方式,尽可能减小model尺寸。同时,anakin-lite依然保有上层anakin 框架的优化分析信息(比如存储复用等),最终可以做到内存消耗相对较小,模型尺寸相对精简。
\\
- Anakin多层次的应用\
第一个层次:Anakin可以是一个计算库;
\\
第二个层次:Anakin可以是一个独立的推理引擎;
\\
第三个层次:Anakin可以通过Anakin-rpc构建一个完整的推理服务。
\\
五、Anakin的发展前景
\\
Anakin v0.1.0具有开源、跨平台、高性能三个特性,它可以在不同硬件平台实现深度学习的高速推理功能。对于每个开发厂商,仅仅使用一套Anakin框架,就能在不同的硬件服务器上实现快速推理。
\\
Anakin的终极目标是帮助实际业务模型快速迭代和上线,为深度学习模型产业化落地扫清障碍,从而让广大的工程师更专注算法设计,从繁重的优化和工程中解脱出来,进而推动深度学习的哪怕一点点的进步,这就是我们最大的愿望。
百度跨平台AI推理加速引擎:Anakin相关推荐
- 百度跨平台AI推理加速引擎--Anakin
一.前言 AI技术包含训练和推理两个阶段.推理阶段的性能好坏既关系到用户体验,又关系到企业的服务成本,甚至在一些极端应用上(比如无人驾驶)直接关系到个人生命财产安全.目前AI落地面临的挑战主要来源于两 ...
- 大模型的好伙伴,浅析推理加速引擎FasterTransformer
来自:吃果冻不吐果冻皮 进NLP群->加入NLP交流群 最近几个月,随着ChatGPT的现象级表现,大模型如雨后春笋般涌现.而模型推理是抽象的算法模型触达具体的实际业务的最后一公里. 但是在这个 ...
- Ampere 收购 OnSpecta,加速对云原生应用程序的 AI 推理
安晟培半导体科技有限公司(Ampere Computing)日前宣布收购 AI 技术初创公司 OnSpecta,该收购将助力 Ampere 通过 AI 推理应用程序进一步增强 Ampere® Altr ...
- 百度云+AI战略升级,加速推动人工智能工业化进程
9月2日,百度董事长兼CEO李彦宏发出全员内部信,宣布进一步升级"云+AI"战略,进-步提高百度智能云的战略地位. 百度智能云再升级 事实上,本次智能云的升级并非首次,百度早在20 ...
- 广告深度学习计算:多媒体AI推理服务加速利器high_service
本文作者:雨行.列宁.阿洛.腾冥.枭骑.无蹄.逍城.少奇.持信.云芑 本文是上一篇内容<广告深度学习计算:阿里妈妈智能创意服务优化>工作的进一步延伸,欢迎阅读交流. 概述 随着视频.文案. ...
- 百度Create AI开发者大会,百度CTO王海峰:“深度学习+”是创新发展新引擎
1月10日,百度Create AI开发者大会成功举办,聚焦"创造者精神",分享创新与增长理念,与开发者和创造者们一道激发科技想象力,开拓创新创造新天地. 百度首席技术官王海峰表示, ...
- 阿里云高级技术专家林立翔:基于阿里云弹性GPU服务的神龙AI加速引擎,无缝提升AI训练性能
2023 年 3 月 23 日 14:00,NVIDIA GTC 开发者大会阿里云开发者社区观看入口正式开放,阿里云高级技术专家林立翔带来了题为<基于阿里云弹性 GPU 服务的神龙 AI 加速引 ...
- 阅片机器人性能增8倍,帮电网大省钱:英特尔加速AI推理细节
智东西(公众号: zhidxcom)文 | 心缘 智东西7月13日消息,英特尔AIDC开发者大会于本周四在深圳举行,在上午场中,英特尔展示围绕硬件.软件和生态活动的AI产品阵列.(英特尔AIDC秀肌肉 ...
- 昇腾AI处理器软件栈--张量加速引擎(TBE)
神经网络构造中,算子组成了不同应用功能的网络结构.而张量加速引擎(Tensor Boost Engine)作为算子的兵工厂,为基于昇腾AI处理器运行的神经网络提供算子开发能力,用TBE语言编写的TBE ...
最新文章
- Ubuntu 7.10 J2EE开发环境lomboz+eclipse3.2.1+tomcat5.5.25+mysql5.
- 传输控制协议(TCP)基础知识概述
- GPM - 多语言实现视频
- python中二分查找什么意思_python中二分查找法的实现方法
- 安卓开发——基于ViewPager的图片轮播
- shell脚本中特定符合变量的含义
- Codeforces 15C Industrial Nim 简单的游戏
- SpringCloud 之客户端负载均衡策略
- Android仿虾米音乐播放器之专辑图片模糊处理
- 人脸识别mtcnn原理
- 数值分析期末考试复习(引论)
- 科普:淘宝网的反爬虫变迁史
- 深度卷积神经网络(CNN)
- 英语单词词性顺口溜_英语单词速记顺口溜背诵技巧
- 解决xyplorer删除后,显示“找不到应用程序”错误
- 2019-CSP赛后总结
- 【3D视觉创新应用竞赛作品系列​】基于嵌入式的室内静态场景实时重建系统
- 人为何会生病?(1)
- 访问者模式 Visitor
- 了解MySQL,走进他的心