向右滑动:上一篇 向左滑动:下一篇 我知道了
广告

基于FPGA的深度学习推理获得突破

时间:2019-01-25 作者:Lauro Rizzatti 阅读:
我最近参加了在硅谷举行的2018年Xilinx开发者论坛。在这个论坛上,我了解到一家名为Mipsology的AI领域初创公司,声称已经解决了采用FPGA的AI相关问题。

我最近参加了在硅谷举行的2018年Xilinx开发者论坛(XDF)。在这个论坛上,我了解到一家名为Mipsology的AI领域初创公司,声称已经解决了采用现场可编程门阵列(FPGA)的AI相关问题。 Mipsology的宏伟愿景是利用FPGA可实现的最高性能来加速神经网络(NN)计算,而不受其部署中固有的限制。b6REETC-电子工程专辑

b6REETC-电子工程专辑

Mipsology展示了每秒可执行超过2万张图像的能力,基于Xilinx新发布的Alveo板,处理一系列NN,包括ResNet50、IncepTIonV3、VGG19及其它深度学习模型等。b6REETC-电子工程专辑

神经网络和深度学习入门

神经网络松散地模拟人脑中的神经网,是深度学习(DL)的基础,这是一个复杂的数学系统,可以自己学习执行任务。通过查看许多示例或关联,NN可以比传统的识别程序更快地学习连接和关系。训练就是基于对数百万同一类型的样本的学习来配置NN以执行特定任务的过程。b6REETC-电子工程专辑

例如,一个NN可能聆听许多声音样本并使用DL来学习“识别”特定单词的声音。然后,该NN就可以筛选新的声音样本清单,并使用称为推理的技巧来正确识别出包含它已经学习过的单词的样本。b6REETC-电子工程专辑

尽管这听起来很复杂,但DL执行的却是简单的操作,主要是加法和乘法,但要进行数十亿或数万亿次的运算。执行这么大量的操作对计算的需求很高。更具体地讲,执行DL推理的计算需求要大于DL训练对计算的需求。DL训练只需要进行一次,但NN一旦经过训练后,就必须对其收到的每个新样本一次又一次地进行推理。b6REETC-电子工程专辑

加速深度学习推理的四种选择

随着时间的推移,工程技术界挑选了四种不同的运算器件来处理NN。按照处理能力和功耗的递增顺序,以及灵活性/适应性的递减顺序,这些器件包括:中央处理单元(CPU),图形处理单元(GPU),FPGA和专用集成电路(ASIC)。下表总结了四种计算器件之间的主要差异。b6REETC-电子工程专辑

1.JPGb6REETC-电子工程专辑

b6REETC-电子工程专辑

图1:用于DL计算的CPU、GPU、FPGA和ASIC的对比。(来源:Lauro Rizzatti)b6REETC-电子工程专辑

CPU基于冯诺依曼架构。虽然灵活(这是它存在的根本原因),但CPU会受到长延迟的影响,因为存储器访问要耗费几个时钟周期才能执行一个简单的任务。当应用于要求低延迟的任务时,如NN计算,特别是DL训练和推理,它们是最差的选择。b6REETC-电子工程专辑

GPU以牺牲灵活性为代价来提高计算吞吐量。此外,GPU的功耗很大,需要冷却装置,这使得它们不能成为数据中心大规模部署的理想选择。b6REETC-电子工程专辑

定制ASIC似乎是一种理想的解决方案,但它也有一系列自身的问题。首先,开发ASIC需要耗费数年时间,而DL和NN仍在快速演化中,也许一个新的突破马上就让去年的技术变得无关紧要了。此外,为了与CPU或GPU竞争,ASIC较大的硅片面积就需要使用最新最小的晶圆工艺技术来制造。这使得前期的巨额投资十分昂贵,而又不能保证其长期可用性。综合考虑多种因素,ASIC对特定任务才比较有效。b6REETC-电子工程专辑

FPGA器件已逐渐成为推理的最佳选择。它具有快速、灵活和高效的优点,并且可为数据中心的数据处理提供良好的解决方案,特别是在快速发展的DL领域、网络边缘以及AI科学家的桌面终端上。b6REETC-电子工程专辑

目前最大的FPGA包括数百万个简单的布尔运算、数千个存储器和DSP,以及多个Arm处理器内核。所有这些资源都可以并行工作 ,即每个时钟周期即可触发多达数百万个同时的操作,从而达到每秒执行数万亿次操作的计算性能。 DL所需的处理能力可以很好地映射到FPGA资源上。b6REETC-电子工程专辑

相对于CPU和GPU,FPGA在DL应用方面还具有其它优势,包括:b6REETC-电子工程专辑

它不限于某种类型的数据,比如它可以处理非标准的低精度数据,为DL提供更高的吞吐量。b6REETC-电子工程专辑

它比CPU或GPU的功耗低,对相同的NN计算其平均功耗要低5~10倍。它在数据中心部署的经常性运营成本也比较低。b6REETC-电子工程专辑

也可以对它进行重新编程以适应不同的任务,其通用性足以适应各种应用需求。DL正在快速发展和变化,同一个FPGA可以满足新的要求,而无需更换为下一代芯片(而ASIC就必须更换),从而降低了总拥有成本。它的应用范围也比较宽泛,从大型到小型设备都可以,即可用于数据中心,也可用于物联网(IoT)节点。唯一的区别是它所包含的模块数不同。b6REETC-电子工程专辑

并非所有闪光的都是金子

FPGA的高计算能力、低功耗和灵活性是需要付出代价的,它编程很复杂。b6REETC-电子工程专辑

对FPGA进行编程需要特定的技能和知识,首先需要熟悉专门的硬件编程语言(HDLS),然后还要熟练使用FPGA供应商提供的特定工具,才能通过综合、布局和布线等复杂的步骤来编译设计。FPGA编程在获得回报之前涉及几个关键问题,其中包括定义一个“程序”架构、遵守约束设计规则、将“程序”合理安置到FPGA中,以及应对时序收敛、漫长的编译及缺乏软件类调试等问题。b6REETC-电子工程专辑

Mipsology的Zebra这样解决FPGA问题

在XDF上,Mipsology创始人兼CEO Ludovic Larzul和我谈到了Zebra,这是该公司基于FPGA开发的一种用来计算神经网络的深度学习推理引擎。b6REETC-电子工程专辑

根据Larzul的说法,“Zebra对用户隐藏了FPGA,因此消除了那些难以编程的问题。Zebra不要求你学习一种新的语言和工具,也不需要了解硬件级别的细节。它提供预先编译好的FPGA二进制文件,因此无需学习FPGA编译过程。b6REETC-电子工程专辑

 “我们用Zebra简化了流程。一旦将FPGA板插入PC,只需一个Linux命令即可。FPGA可以代替CPU或GPU立即进行无缝的推断,并且可以在更低的功耗下将计算速度提高一个数量级。”b6REETC-电子工程专辑

Zebra是专为AI设计的:“FPGA现在可用于人工智能和深度学习,”Larzul肯定地说。 “Zebra可以集成进Caffe、Caffe2、MXNet和TensorFlow等框架中。部署Zebra无需修改神经网络框架,可让AI专家在同一框架之上运行各种应用。他们可以在NN训练之后从CPU或GPU切换到FPGA以进行推理,而不会浪费研发时间。”b6REETC-电子工程专辑

 “Zebra可支持各种NN,从最常见的商业网络到任何定制设计的NN。只要使用可支持的层和参数构建神经网络,就不需要进行任何更改。Zebra的界限不应该阻止任何NN在其上运行。它们可以包括多达100万个层、30亿个网络权重,以及每个卷积滤波器中的5万个过滤器。所有这些资源远高于神经网络所常用的。b6REETC-电子工程专辑

 “调整NN参数甚至改变神经网络并不需要强制重新编译FPGA,重新编译工作可能需要花费数小时、数天,如果发生时序问题甚至要耗费几周(如果可能重新编译的话),这使得Zebra很适合NN部署。 对NN的任何修改都可以在Zebra上运行,从而简化了用于数据中心的新版本的测试。 b6REETC-电子工程专辑

Zebra可以使用已经在GPU上执行的NN训练,因此无需再训练,也避免了使用新工具来迁移训练参数。”b6REETC-电子工程专辑

 “Zebra使用8位或16位定点整数执行推理计算,而CPU或GPU通常使用浮点值。正如许多科学论文中所揭示的,若使用适当的量化,结果的准确性不会受到精度变化的影响。Zebra也适应这种情况,无需任何用户干预。通过降低计算精度,计算吞吐量可大大提高。”b6REETC-电子工程专辑

性能是最重要的,Larzul声称,“虽然FPGA具有其他硬件平台无法比拟的多种优势,但处理速度、功耗和成本在大多数情况下是令一个硬件平台具有吸引力的关键。当使用相同的软件堆栈、框架和神经网络时,Zebra的执行速度远远高于GPU或CPU。“b6REETC-电子工程专辑

2.jpg
b6REETC-电子工程专辑

图2:Zebra适应由其他加速器训练的NN。 (来源:Mipsology)b6REETC-电子工程专辑

Larzul坚定地表示,“在Mipsology,我们会专注于持续提高Zebra的吞吐量,旨在实现FPGA所能达到的最高性能。 例如,就在2018年,我们已经在同一芯片上实现了5倍的加速。”b6REETC-电子工程专辑

 “与市场上现有的各种FPGA板相比,Zebra的吞吐量/元和吞吐量/元/W都是最好的。”b6REETC-电子工程专辑

结语

在2018年XDF上发现Mipsology和Zebra对我是一个惊喜。正如Larzul所总结的那样,“Zebra从一开始的构想就是为了充分利用FPGA的吞吐量潜能,并尽量避免其缺点,可以为AI科学家和专业人士提供很高的算力,以加速数据中心和边缘的NN推理,配合GPU训练可谓是相得益彰。”b6REETC-电子工程专辑

本文为EET电子工程专辑 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
您可能感兴趣的文章
  • 赛灵思:请求美国政府恢复其向华为芯片出口 7月28日报道台媒称,美国芯片生产商赛灵思 (Xilinx)公司表示,其财务业绩受到美国政府“封杀”华为的影响,已请求美国政府允许其更大范围地向华为恢复芯片出口。
  • 六大技术支柱, 英特尔开启多元化计算时代的一把秘钥 只用了不到半年的时间,Agilex FPGA就成为“六大技术支柱”落地的最佳载体,英特尔强大的系统研发和整合能力可见一斑。
  • 英特尔收购英国FPGA解决方案供应商Omitek 英特尔正继续押宝FPGA处理器业务,据最新报道,4月17日,英特尔今日宣布,将收购Omnitek,这是一家总部位于英格兰,主要针对视频和AI应用程序的英国FPGA解决方案供应商。
  • 从MCU到FPGA: 第4部分 本周我想进一步探究可编程逻辑(FPGA)与硬核处理器(HPS)之间互联的结构。我发现了三种主要方式,它们是如何映射并处理通信的,哪些组件需要管控时序并且有访问权限。
  • 从MCU到FPGA:第3部分 当我开始这个项目的时候,我已经了解到FPGA的好处在于它可以将多种功能集成到单一的芯片中,并可以通过重配置而修改芯片功能。但是这种灵活性也让我想知道:我应该如何处理FPGA与外部组件的接口以及接口连线等问题呢?由于FPGA的平均设计周期为两到三年,并且考虑到诸如USB 3.0到USB Type-C等通信技术的更新换代,我很难理解FPGA如何才能真正地带来好处。
  • 从MCU到FPGA:第2部分 在第一部分中,我介绍了FPGA的优缺点,以及Terasic DE10 nano开发套件,并且探讨了影响FPGA设计的关键因素。现在,在第2部分,我将分析示例代码并发现更多的有用的资源。
相关推荐
    广告
    近期热点
    广告
    广告
    广告
    可能感兴趣的话题
    广告