本文将从人工智能的基本概念出发,介绍如何利用瑞苏盈科核心板模块和Vitis AI工具快速开发基于FPGA的AI应用,帮助您在边缘或离线场景中轻松实现实时推理。
一、人工智能的复兴
ENCLUSTRA
人工智能(AI)自1955年被公认为一门学科以来,经历了多次波折。近年来,新的兴趣浪潮推动了成千上万AI初创公司的成立。背后的关键驱动因素包括:
- 现在可以以承担得起的价格获得巨大的计算能力,硬件更快且云中超级计算机触手可及。
- 机器学习方面的突破性进展吸引了大量科技投资和创业者,加速了AI的发展和完善。

图1:一种具有2个隐含层的前馈人工神经网络的简化视图
ENCLUSTRA
人工神经网络现在扩展到几十到几百个隐藏层节点(图2),甚至实现了有10000个隐藏层的网络。这种进化增加了神经网络的抽象能力,使新应用成为可能。如今,神经网络可以在数万个CPU或GPU核上进行训练,大大加快了学习模型的开发。

图2:ImageNet识别挑战获胜者展示了在新的神经网络架构中不断增加的隐藏层
二、机器如何学习
ENCLUSTRA
人工神经网络是一种受人脑启发的计算模型,由相互连接的简单处理单元组成。这些单元可以通过修改连接来学习经验(图1)。深度神经网络(DNN)目前为许多大型计算问题提供了最佳解决方案。
目前应用最广泛的深度学习系统是卷积神经网络(Convolutional Neural Network, CNNs)。它们使用前馈人工神经元网络将输入特征映射到输出,并通过反向传播(图3)进行学习,产生一组权重来校准CNN。

图3:神经网络需要经过训练来学习如何解决问题或挑战
ENCLUSTRA
机器学习中计算强度最大的过程是训练神经网络。最先进的网络可能需要数天到数周,涉及数十亿浮点计算和大量训练数据。幸运的是,这一步通常可以转移到云中执行。
当网络训练完成后,它可以输入新的未标记数据集,并根据之前学到的数据对数据进行分类。这一步称为推断,是开发应用的实际目标。
三、FPGA在AI中的优势
ENCLUSTRA
输入的分类可以在云中或边缘(大部分离线)进行。神经网络处理数据通常需要专用翻跟斗(FPGA、GPU、DSP或ASIC),而额外的任务最好由CPU处理。这正是带有集成CPU的FPGA(片上系统SoC)的优势所在,尤其在边缘场景。
- SoC将推理翻跟斗(FPGA阵列)和CPU集成在一块芯片中,CPU运行控制算法和数据流管理。
- 与GPU或ASIC相比,FPGA提供了易于集成多个接口和传感器、适应新神经网络架构的灵活性(图4)。

图4:人工智能推理应用的不同技术的比较
ENCLUSTRA
FPGA固有的可重构性使其能够利用不断演化的神经网络拓扑、更新的传感器类型和软件算法。SoC可以保证低而确定的延迟(例如实时对象检测),同时非常节能。从FPGA中获得最佳性能的主要挑战是将浮点模型有效映射到定点FPGA实现(图5),这正是供应商工具发挥作用的地方。

图5:将浮点模型有效映射到定点FPGA实现的过程称为压缩
