【AICon】硅谷视野+中国实践,汇聚全球顶尖技术的 AI 科技盛会 >>> 了解详情
写点什么

FPGA 在深度学习应用中或将取代 GPU

  • 2020-12-08
  • 本文字数:2572 字

    阅读完需:约 8 分钟

FPGA在深度学习应用中或将取代GPU

人工智能的兴起触发了市场对 GPU 的大量需求,但 GPU 在 AI 场景中的应用面临使用寿命短、使用成本高等问题。现场可编程门阵列 (FPGA) 这一可以定制化硬件处理器反倒是更好的解决方案。随着可编程性等问题在 FPGA 上的解决,FPGA 将成为市场人工智能应用的选择。


现场可编程门阵列 (FPGA) 解决了 GPU 在运行深度学习模型时面临的许多问题


在过去的十年里,人工智能的再一次兴起使显卡行业受益匪浅。英伟达 (Nvidia) 和 AMD 等公司的股价也大幅上涨,因为事实表明,它们的 GPU 在训练和运行 深度学习模型 方面效果明显。实际上,英伟达也已经对自己的业务进行了转型,之前它是一家纯粹做 GPU 和游戏的公司,现在除了作为一家云 GPU 服务提供商外,英伟达还成立了专业的人工智能研究实验室。


不过,机器学习软件公司 Mipsology 的首席执行官兼联合创始人卢多维奇•拉祖尔 (Ludovic Larzul) 表示,GPU 还存在着一些缺陷,这使其在 AI 应用中面临着一些挑战。


Larzul 表示,想要解决这些问题的解决方案便是实现现场可编程门阵列 (FPGA),这也是他们公司的研究领域。FPGA 是一种处理器,可以在制造后定制,这使得它比一般处理器更高效。但是,很难对 FPGA 进行编程,Larzul 希望通过自己公司开发的新平台解决这个问题。


专业的人工智能硬件已经成为了一个独立的产业,但对于什么是深度学习算法的最佳基础设施,人们仍然没有定论。如果 Mipsology 成功完成了研究实验,许多正受 GPU 折磨的 AI 开发者将从中受益。

GPU 深度学习面临的挑战


三维图形是 GPU 拥有如此大的内存和计算能力的根本原因,它与 深度神经网络 有一个共同之处:都需要进行大量矩阵运算。



显卡可以并行执行矩阵运算,极大地加快计算速度。图形处理器可以把训练神经网络的时间从几天、几周缩短到几小时、几分钟。


随着图形硬件公司供货的不断增加,GPU 在深度学习中的市场需求还催生了大量公共云服务,这些服务为深度学习项目提供强大的 GPU 虚拟机。


但是显卡也受硬件和环境的限制。Larzul 解释说:“神经网络训练通常是在一个确定的环境中进行的,运行神经网络的系统会在部署中遇到各种限制——这可能会对 GPU 的实际使用造成压力。”


GPU 需要大量的电力,会产生大量的热量,并需要使用风扇冷却。当你在台式工作站、笔记本电脑或机架式服务器上训练神经网络时,这不是什么大问题。但是,许多部署深度学习模型的环境对 GPU 并不友好,比如自动驾驶汽车、工厂、机器人和许多智慧城市环境,在这些环境中硬件必须忍受热、灰尘、湿度、运动和电力限制等环境因素。


Larzul 说:“在一些关键的应用场景中,比如智慧城市的视频监控,要求硬件暴露在对 GPU 有不利影响的环境因素 (比如太阳) 下。“ GPU 受晶体管技术的限制,导致它们在高温下运行时需要及时冷却,而这并不总是可以实现的。要做到这点需要更多的电力、维护成本等。”


使用寿命也是一个问题。一般来说,GPU 的使用 寿命约为 2-5 年,这对那些每隔几年就换一次电脑的玩家来说不是什么大问题。但在其他领域,如汽车行业,需要硬件有更高的耐用性,这就带来了问题。特别是过多的暴露在恶劣的环境中,再加上高强度的使用,GPU 的使用寿命将会更短。


Larzul 说:“从商业可行性方面考虑,自动驾驶汽车等应用可能需要多达 7-10 个 GPU(其中大多数会在不到四年的时间内失效),对于大多数购车者来说,智能或自动驾驶汽车的成本将变得不切实际。”


机器人、医疗保健和安全系统等其他行业也面临着类似的挑战。

FPGA 和深度学习


FPGA 是可定制的硬件设备,可对其组件进行调节,因此可以针对特定类型的架构 (如 卷积神经网络) 进行优化。其可定制性特征降低了对电力的需求,并在运算速度和吞吐量方面提供了更高的性能。它们的使用寿命也更长,大约是 GPU 的 2-5 倍,并且对恶劣环境和其它特殊环境因素有更强的适应性。


有一些公司已经在他们的人工智能产品中使用了 FPGA。微软 就是其中一家,它将基于 FPGA 的机器学习技术作为其 Azure 云服务产品的一部分来提供。


不过 FPGA 的缺陷是难于编程。配置 FPGA 需要具备硬件描述语言 (如 Verilog 或 VHDL) 的知识和专业技能。机器学习程序是用 Python 或 C 等高级语言编写的,将其逻辑转换为 FPGA 指令非常困难。在 FPGA 上运行 TensorFlow、PyTorch、Caffe 和其他框架建模的神经网络通常需要消耗大量的人力时间和精力。


“要对 FPGA 进行编程,你需要组建一支懂得如何开发 FPGA 的硬件工程师团队,并聘请一位了解神经网络的优秀架构师,花费几年时间去开发一个硬件模型,最终编译运行在 FPGA 上,与此同时你还需要处理 FPGA 使用效率和使用频率的问题。“Larzul 说。此外你还需要具备广泛的数学技能,以较低的精度准确地计算模型,并需要一个软件团队将 AI 框架模型映射到硬件架构。


Larzul 的公司 Mipsology 希望通过 Zebra 来弥合这一差距。Zebra 是一种软件平台,开发者可以轻松地将深度学习代码移植到 FPGA 硬件上。


Larzul 说:“我们提供了一个软件抽象层,它隐藏了通常需要高级 FPGA 专业知识的复杂性。”“只需加载 Zebra,输入一个 Linux 命令,Zebra 就可以工作了——它不需要编译,不需要对神经网络进行任何更改,也不需要学习任何新工具。不过你可以保留你的 GPU 用于训练。”


Zebra 提供了将深度学习代码转换为 FPGA 硬件指令的抽象层

AI 硬件前景


Mipsology 的 Zebra 平台是开发者探索在 AI 项目中使用 FPGA 的 众多方案之一。Xilinx 是 FPGA 领域的领导者,已经开发了 Zebra 并将其集成到了电路板中。其他公司,如谷歌和特斯拉,也正积极的为其开发专用的 AI 硬件,用于自己的云产品和边缘计算产品环境中。


神经形态芯片 方面也有着一些发展,这是一种专门为神经网络设计的计算机架构。英特尔在神经形态计算领域处于领先地位,已经开发了几种模型架构,不过该领域仍处于早期发展阶段。


还有专门用于特定应用的集成电路 (ASIC),即专为某一特定人工智能需求制造的芯片。但 ASIC 缺乏 FPGA 的灵活性,无法重新编程。


Larzul 最后说,“我们决定专注于软件业务,探索研究提升神经网络性能和降低延迟的方案。Zebra 运行在 FPGA 上,因此无需更换硬件就可以支持 AI 推理。FPGA 固件的每次刷新都能给我们带来更高的性能提升,这得益于其高效性和较短的开发周期。另外,FPGA 的可选择方案很多,具有很好的市场适应性。”


英文原文:


https://bdtechtalks.com/2020/11/09/fpga-vs-gpu-deep-learning/

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-12-08 09:003581
用户头像
陈思 InfoQ编辑

发布了 576 篇内容, 共 263.8 次阅读, 收获喜欢 1293 次。

关注

评论

发布
暂无评论
发现更多内容

聚焦数据|海泰方圆直击证券行业数据安全治理建设思路

电子信息发烧客

如何使用 SAP Intelligent Robotic Process Automation 自动操作 Excel

Jerry Wang

机器学习 RPA 机器人流程自动化 SAP 7月月更

iOS 内存管理(基本概念及引用计数)

NewBoy

ios 前端 移动端 iOS 知识体系 7月月更

Qt | 通过创建一个简单项目了解Qt Creator

YOLO.

qt Qt Creator 7月月更

Android root相关调研

沃德

android 程序员 7月月更

CSS动画篇之404动画

南城FE

CSS 前端 7月月更

【深度】新派LaaS协议Elephant:重振DeFi赛道发展的关键

西柚子

产品思维助力研发管理工具建设

研发管理Jojo

产品思维 研发管理工具 用户旅程 协同共创

Qt播放音视频文件报错DirectShowPlayerService::doRender: Unresolved error code 0x80040266

小肉球

qt 7月月更

拷贝构造函数剖析【C++】

攻城狮杰森

c++ 7月月更 拷贝构造函数

STM32+BH1750光敏传感器获取光照强度

DS小龙哥

7月月更

直播短视频源码——直播短视频源码的开发步骤顺序五步走

开源直播系统源码

软件开发 直播系统源码 开源源码 短视频直播源码

算法题每日一练---第2天:棋盘放麦子

知心宝贝

算法 前端 后端 7月月更

LeetCode-101. 对称二叉树(java)

bug菌

Leet Code 7月月更

在 IDEA 里下个五子棋不过分吧?

沉默王二

Java Netty IDEA idea插件 idea plugin

mysql进阶(八)排序问题方案探究

No Silver Bullet

MySQL 排序 中文编码 7月月更

java零基础入门-java8新特性(完结篇)

喵手

Java 7月月更

h5实现一个刮刮卡的动画效果

南极一块修炼千年的大冰块

7月月更

面对复杂问题时,系统思考助你理解问题本质

阿里技术

系统性思考 复杂事件处理 业务逻辑

如何设计自动化测试case?

老张

自动化测试

Qt|使用Http通讯下载页面实时显示

中国好公民st

qt 7月月更

Unity实战问题-WebGL问题集锦-下篇

芝麻粒儿

android Unity 7月月更

C# 基于MessageBox类的消息对话框讲解

IC00

C# 7月月更

vivo官网APP全机型UI适配方案

vivo互联网技术

App UI

【LeetCode】数组能形成多少数对Java题解

Albert

LeetCode 7月月更

Linux下玩转nginx系列(七)---nginx如何实现限流功能

anyRTC开发者

nginx Linux 音视频 服务器 限流

启新聚势 云谱新篇|海泰方圆与四川联通达成生态战略合作

电子信息发烧客

C#入门系列(二十四) -- 密封类和静态类

陈言必行

7月月更

查找——B+树

乔乔

7月月更

strcpy()

謓泽

7月月更

OneFlow v0.8.0正式发布

OneFlow

版本更新

FPGA在深度学习应用中或将取代GPU_硬件_Ben Dickson_InfoQ精选文章