如今,基于深度学习(DL)的人工智能(AI)应用越来越广泛,不论是在与个人消费者相关的智能家居、智能驾驶等领域,还是在视频监控、智慧城市等公共管理领域,我们都能看到其身影。
众所周知,实施一个完整的 AI 应用需要经历训练和推理两个过程。所谓“训练”,就是我们要将大量的数据代入到神经网络模型中运算并反复迭代,“教会”算法模型如何正确的工作,训练出一个 DL 模型。而接下来,我们就可以利用训练出来的模型来在线响应用户的需求,根据输入的新数据做出正确而及时的决策判断,这个过程就是“推理”。
通常来讲,一个 AI 应用中“训练”只需要做一次——有时这个工作会交给第三方专业的且有充沛算力资源的团队去做,而应用开发工程师要做的则是将训练好的模型部署到特定的硬件平台上,满足目标应用场景中推理过程的需要。由于推理过程会直接联系最终用户,推理的准确性和速度也会直接影响到用户体验的好坏,因此如何有效地为 AI 推理做加速,也就成了当下开发者普遍关心的一个热门的话题。
AI 推理加速,FPGA 胜出!
从硬件架构来看,可以支持 AI 推理加速的有四个可选方案,它们分别是:CPU、GPU、FPGA 和 ASIC,如果对这几类器件的特性进行比较,会发现按照从左到右的顺序,器件的灵活性 / 适应性是递减的,而处理能力和性能功耗比则是递增的。
CPU 是基于冯∙诺依曼架构,虽然其很灵活,但由于存储器访问往往要耗费几个时钟周期才能执行一个简单的任务,延迟会很长,应对神经网络(NN)这种计算密集型的任务,功耗也会比较大,显然最不适合做 AI 推理。
GPU 具有强大的数据并行处理能力,在做海量数据训练方面优势明显,而推理计算通常一次只对一个输入项进行处理的应用,GPU 并行计算的优势发挥不出来,再加上其功耗相对较大,所以在 AI 推理方面也不是最优选择。
从高性能和低功耗的角度来看,定制的 ASIC 似乎是一种理想的解决方案,但其开发周期长、费用高,对于总是处于快速演进和迭代中的 DL 和 NN 算法来说,灵活性严重受限,风险太大,在 AI 推理中人们通常不会考虑它。
所以我们的名单上只剩下 FPGA 了。这些年来大家对于 FPGA 快速、灵活和高效的优点认识越来越深入,硬件可编程的特性使其能够针对 DL 和 NN 处理的需要做针对性的优化,提供充足的算力,而同时又保持了足够的灵活性。今天基于 FPGA 的异构计算平台,除了可编程逻辑,还会集成多个 Arm 处理器内核、DSP、片上存储器等资源,DL 所需的处理能力可以很好地映射到这些 FPGA 资源上,而且所有这些资源都可以并行工作 ,即每个时钟周期可触发多达数百万个同时的操作,这对于 AI 推理是再合适不过了。
与 CPU 和 GPU 相比,FPGA 在 AI 推理应用方面的优势还表现在:
不受数据类型的限制,比如它可以处理非标准的低精度数据,从而提高数据处理的吞吐量。
功耗更低,针对相同的 NN 计算,FPGA 与 CPU/GPU 相比平均功耗低 5~10 倍。
可通过重新编程以适应不同任务的需要,这种灵活性对于适应持续发展中的 DL 和 NN 算法尤为关键。
应用范围广,从云端到边缘端的 AI 推理工作,都可胜任。
总之一句话,在 AI 推理计算的竞争中,FPGA 的胜出没有悬念。
GPU 无缝对接,FPGA 即插即用
不过,虽然 FPGA 看上去“真香”,但是很多 AI 应用的开发者还是对其“敬而远之”,究其原因最重要的一点就是——FPGA 上手使用太难了!
难点主要体现在两个方面:
首先,对 FPGA 进行编程需要特定的技能和知识,要熟悉专门的硬件编程语言,还要熟练使用 FPGA 的特定工具,才能通过综合、布局和布线等复杂的步骤来编译设计。这对于很多嵌入式工程师来说,完全是一套他们所不熟悉的“语言”。
再有,因为很多 DL 模型是在 GPU 等计算架构上训练出来的,这些训练好的模型移植、部署到 FPGA 上时,很可能会遇到需要重新训练和调整参数等问题,这要求开发者有专门的 AI 相关的知识和技能。
如何能够降低大家在 AI 推理中使用 FPGA 的门槛?在这方面,Mipsology 公司给我们带来了一个“惊喜”——该公司开发了一种基于 FPGA 的深度学习推理引擎 Zebra,可以让开发者在“零努力(Zero Effort)”的情况下,对 GPU 训练的模型代码进行转换,使其能够在 FPGA 上运行,而无需改写任何代码或者进行重新训练。
这也就意味着,调整 NN 参数甚至改变神经网络并不需要强制重新编译 FPGA,而这些重新编译工作可能需要花费数小时、数天,甚至更长时间。可以说,Zebra 让 FPGA 对于开发者成了“透明”的,他们可以在 NN 模型训练好之后,无缝地从 CPU 或 GPU 切换到 FPGA 进行推理,而无需花费更多的时间!
目前,Zebra 可以支持 Caffe、Caffe2、MXNet 和 TensorFlow 等主流 NN 框架。在硬件方面,Zebra 已经可以完美地支持 Xilinx 的系列加速卡,如 Alveo U200、Alveo U250 和 Alveo U50 等。对于开发者来说,“一旦将 FPGA 板插入 PC,只需一个 Linux 命令”,FPGA 就能够代替 CPU 或 GPU 立即进行无缝的推断,可以在更低的功耗下将计算速度提高一个数量级。对用户来说,这无疑是一种即插即用的体验。
图 1,Zebra 可适应由 GPU 加速器训练的 NN,并无缝地在 FPGA 上部署
强强联手,全生态支持
更好的消息是:为了能够加速更多 AI 应用的落地,安富利亚洲和 Mipsology 达成了合作协议,将向其亚太区客户推广和销售 Mipsology 这一独特的 FPGA 深度学习推理加速软件 —— Zebra。
这对于合作的双方无疑是一个双赢的局面:对于 Mipsology 来说,可以让 Zebra 这个创新的工具以更快的速度覆盖和惠及更多的开发者;对安富利来说,此举也进一步扩展了自身强大的物联网生态系统,为客户带来更大的价值,为希望部署 DL 的客户提供一整套全面的服务,包括硬件、软件、系统集成、应用开发、设计链和专业技术。
安富利推理加速成功应用案例:智能网络监控平台 AI Bluebox