FPGA可以在许多深度学习应用中取代GPU
过去十年对人工智能的重新关注对显卡行业来说是一个福音。Nvidia 和 AMD 等公司的股价大幅上涨,因为他们的 GPU 已被证明在训练和运行深度学习模型方面非常有效。事实上,英伟达甚至已经从一家纯粹的 GPU 和游戏公司转变为云 GPU 服务提供商和一个称职的 AI 研究实验室。
但是,根据专门从事机器学习软件的公司 Mipsology 的首席执行官兼联合创始人 Ludovic Larzul 的说法,GPU 也存在固有的缺陷,这给将它们用于 AI 应用程序带来了挑战。
Larzul 说,解决方案是现场可编程门阵列 (FPGA),这是他公司的专长领域。FPGA 是一种可以在制造后进行定制的处理器,这使其比通用处理器更高效。然而,FPGA 非常难以编程,Larzul 希望通过其公司开发的新平台解决这个问题。
专用 AI 硬件已经成为一个独立的行业,而对于深度学习算法的最佳基础设施,目前尚无定论。但是,如果 Mipsology 成功完成其使命,它可能对许多目前 GPU 陷入困境的 AI 开发人员有益。
使用 GPU 进行深度学习的挑战
三维图形是 GPU 拥有如此多的内存和计算能力的最初原因,它与深度神经网络有一个共同点:它们需要大量的矩阵乘法。
显卡可以并行执行矩阵乘法,这极大地加快了运算速度。图形处理器可以将训练神经网络的时间从几天和几周缩短到几小时和几分钟。
除了图形硬件公司的存量不断增加之外,GPU 在深度学习中的吸引力还催生了大量公共云服务,这些服务为深度学习项目提供具有强大 GPU 的虚拟机。
但是显卡也有硬件和环境限制。“神经网络训练通常在一个环境中进行,该环境并不全面考虑运行神经网络的系统在部署时会遇到的各种限制——这可能会给 GPU 的实际使用带来压力,”Larzul 说。
GPU 需要大量电力,产生大量热量,并使用风扇进行冷却。当您在台式工作站、笔记本电脑或服务器机架上训练神经网络时,这不是什么大问题。但是许多部署深度学习模型的环境对 GPU 并不友好,例如自动驾驶汽车、工厂、机器人以及许多智能城市设置,其中硬件必须承受环境因素,例如热量、灰尘、湿度、运动和电力限制。
“智能城市的视频监控等一些关键应用要求硬件暴露在会对 GPU 产生负面影响的环境因素(例如太阳)中,”Larzul 说。“GPU 处于晶体管的技术极限,导致它们在高温下运行并需要显着冷却,这并不总是可行的。这意味着更多的电力、电力、维护成本等。”
寿命也是一个问题。一般来说,GPU 的使用寿命约为 2-5 年,对于通常每隔几年更换一次计算机的游戏玩家来说,这不是主要问题。但在其他领域,例如汽车行业,期望更高的耐用性,这可能会成为问题,特别是当 GPU 因暴露于环境因素和更频繁的使用而更快消亡时。
“考虑到自动驾驶汽车等应用的商业可行性,这些应用可能需要多达 7-10 个 GPU——其中大部分将在不到四年的时间内失效——对于大多数汽车购买者来说,智能或自动驾驶汽车的成本变得不切实际, ”拉祖尔说。
机器人、医疗保健和安全系统等其他领域的行业也面临着类似的挑战。
FPGA 和深度学习
FPGA 是具有自适应组件的可定制硬件设备,因此它们可以针对特定类型的架构进行优化,例如卷积神经网络。它们的可定制性降低了它们的电力需求,并在加速和吞吐量方面提供了更高的性能。它们还具有更长的使用寿命,大约是 GPU 的 2-5 倍,并且更能抵抗恶劣的设置和环境因素。
一些公司已经在他们的 AI 产品中使用了 FPGA。一个例子是微软,它提供其 FPGA 驱动的机器学习技术作为其 Azure 云服务产品的一部分。
但是 FPGA 的问题在于它们很难编程。配置 FPGA 需要硬件描述符语言(如 Verilog 或 VHDL)的知识和专业知识。机器学习程序是用 Python 或 C 等高级语言编写的,将其逻辑转换为 FPGA 指令非常困难。在 FPGA 上运行使用 TensorFlow、PyTorch、Caffe 和其他框架建模的神经网络通常需要大量的手动时间和精力。
“要对 FPGA 进行编程,您需要组建一个知道如何开发 FPGA 的硬件工程师团队,聘请一位了解神经网络的优秀架构师,花几年时间开发一个硬件模型,并在面对问题的同时将其编译为 FPGA达到高使用率或高频率,”Larzul 说。“与此同时,您需要具备广泛的数学技能,以准确计算精度较低的模型,并需要一组软件人员将 AI 框架模型映射到硬件架构。
Larzul 的公司 Mipsology 旨在通过 Zebra 弥补这一差距,Zebra 是一个软件平台,允许开发人员轻松地将他们的深度学习代码移植到 FPGA 硬件。
“我们提供了一个软件抽象层,它隐藏了通常需要高级 FPGA 专业知识的复杂性,”Larzul 说。“只需加载 Zebra,输入单个 Linux 命令,Zebra 就可以开始工作——它需要零编译、零更改神经网络以及零新工具来学习。您可以保留 GPU 用于训练。”