解析GPU面临的挑战及应用场景
  

旺旺薛饼 498

{{ttag.title}}
随着人工智能技术的成熟,利用人工智能替代自然人脑力劳动终将成为一个万亿美元的广阔市场,甚至会成为继互联网之后的下一个生产力革命。目前主流的人工智能软件算法是在神经网络(Neural Networks)技术基础上衍生的几个子类,如CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)等,这些算法的共性特征是都属于大规模并行计算任务。
在人工智能技术发展的早期,多种并行计算芯片被应用于加速人工智能计算,如GPU/FPGA/神经网络专用芯片等。其中GPU作为一种相比其他选项较为成熟的产品,在现有的早期项目中广泛使用。谷歌在图像识别项目、特斯拉与沃尔沃在其辅助驾驶和自动驾驶项目中均使用GPU加速人工智能算法。
Nvidia日前发布了2016年的一季报,其在数据中心和汽车的业务虽然体量较小,和PC游戏等相差数个数量级上,却增速非常高,达到了63%。Nvidia还针对数据中心云计算推出了Pascal运算平台以及Nvidia自主研发的人工智能算法。看似GPU已经在人工智能的加速计算中占主导地位;那么,未来人工智能的硬件加速也一定由GPU承担吗?事实并非如此,业内已经存在各种具备竞争力的替代解决方案。一、谷歌全新人工智能专用协处理器:TPU
谷歌在2016年5月末召开的I/O大会披露了TPU(Tensor Processing Unit)专用处理器项目。这种处理器针对谷歌的开源人工智能软件编程框架Tensor Flow进行了优化。
1、TPU 主要思路:针对人工智能算法需求裁剪计算精度
在机器学习算法上,TPU比传统的加速方案(谷歌之前使用GPU加速方案)在能耗效率上提升一个数量级,相比传统解决方案领先7年(摩尔定律三代节点)。
例如在GPU中,通常支持IEEE754-2008标准浮点数操作,这一浮点数字宽为32位,其中尾数字宽为23+1(使用隐藏尾数技术)位。如果数据通道中使用8位字宽的低精度尾数,则GPU中各个计算部件所需的晶体管和功耗均会大大减少。
例如,在GPU计算核心中,面积最大,功耗最高的计算部件是ALU,ALU中最重要的部件是浮点MA(乘加混合)单元,现有技术下这一单元的延迟与尾数的字宽log2N成大致正比,而面积/功耗/晶体管数量大体上与N2log2N成正比。如果字宽由24比特减少到8比特,那么MA的面积可降至约1/14左右,约一个数量级。2、从谷歌TPU 设计思路看人工智能硬件发展趋势
目前的GPU加速方案以及FPGA加速方案在人工智能计算领域都存明显缺点:
在计算单元上,GPU的内置计算单元主要针对图像处理设计,计算精度过高存在浪费;FPGA的LUT功能过于弱小,没有针对低精度浮点计算优化;
在NOC架构上,FPGA和GPU原始设计匹配的目标均与神经网络计算存在很大差异性,因此用于人工智能计算加速都存在一定缺憾。
以上表现在计算需求雷达图上即为图:GPU(蓝线)和FPGA(红线)均不能较好的覆盖住人工智能的需求(绿线)。除了进程交互问题外,实时性和计算延迟同样是人工智能加速的一个重要问题。在人工智能的一些应用场景,如无人驾驶汽车中,汽车的运行速度可能高达40m/s,在计算中额外0.1s的延迟意味着汽车多行驶4米,这就是生与死的差距。GPU的延迟和实时性较差从长期来看会影响其应用在类似无人驾驶这样在实时性和延迟要求较高的场景中。4、GPU/FPGA 用于神经网络计算的弱点:片上网络
在人工智能硬件领域,FPGA加速同样是一条有竞争力的技术路径。早在中国搜索引擎巨头百度就尝试与Altera合作探索使用FPGA加速神经网络运算用于搜索结果的优化中,微软也在bing搜索服务中做了相似的探索。Auviz Systems公司在2015年发布了一份研究数据,在神经网络计算中,高端FPGA可处理14个或更多图像/秒/瓦特,而同期一个高端的GPU仅能处理4个图像/秒/瓦特。
但目前学术界已有共识,不管是FPGA还是GPU,由于其最初设计匹配的计算模型与神经网络计算模型存在不同,其并行计算核心之间的通信架构-NOC(Network on Chip,片上网络)应用在神经网络运算中均存在缺点。
由于FPGA/GPU针对的并行计算模型不同,其片上网络的实现方式也就不同:
GPU最初针对图像处理SIMT类任务优化,各个处理核心之间的通信较少且形式简单,因此计算节点主要通过片上共享存储通信,原理如图: A/C计算节点分别向片上共享存储的不同地址写入数据,然后B/D通过读数据的方式完成A->B/C->D的通信。这种片上网络每次通信涉及读写片上共享存储各一次,不仅速度慢,当通信量更多(原本不会发生在图形处理任务中)的时候存储的读写端口还会因堵塞成为系统性能的关键瓶颈。
FPGA包含大量细粒度,可编程,但功能较弱的LUT(Look up table查找表)计算节点,各个LUT之间通过网格状NOC连接,网格的节点具备Routing(路由)功能。FPGA可以提供计算单元间直接通讯功能:A节点可通过路由网络沿着红色箭头将数据传输至芯片上任意计算节点B,且传输路径动态可编程。因此网格NOC相比共享内存方案能提供大的多的片上通讯容量,相比之下也不易出现瓶颈节点堵塞问题。Auviz Systems能够得出FPGA在神经网络处理中优于高端GPU的方案的结论,很大程度依靠FPGA的片上通信能力而不是羸弱的LUT计算能力。神经网络作为一种并行计算程序,适配的计算节点通讯硬件是提升性能的关键要素之一。目前FPGA和GPU的片上网络架构均不完全匹配神经网络的实际需求,相比之下GPU的共享内存连接的匹配度更差一些。学术界对于定制特殊的NOC去匹配神经网络加速需求已有一定研究,但之前因神经网络算法本身没有商用化,因此定制NOC硬件这一思路也停留在实验室内。随着人工智能实用化和产业化的发展,这些技术将对现有的GPU/FPGA方案形成威胁和替代。

打赏鼓励作者,期待更多好文!

打赏
暂无人打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
安全效果
【 社区to talk】
技术笔记
干货满满
每日一问
信服课堂视频
新版本体验
GIF动图学习
技术咨询
功能体验
2023技术争霸赛专题
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
POC测试案例
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
全能先锋系列
云化安全能力

本版版主

461
247
13

发帖

粉丝

关注

本版达人

feeling

本周分享达人

新手29676...

本周提问达人