就摄像机而言,单路高清流每秒可生成 800 至 900 MB 的视频流数据。尽管 5G 宽带网络提供了更大的带宽并可大幅提高地理区域内的设备密度,但分布广泛且密集的摄像机仍可能突破这些网络的负载极限。应对此带宽限制的解决方案是在网络边缘部署实时 AI 推理,以确保只有处理后的必要信息可发送到云端。此类处理需使用耐用的嵌入式 AI 设备,以便应对边缘的恶劣环境和资源限制。
将数据传输到云端并非总是轻而易举。例如,多流计算机视觉应用需要大量的数据,甚至会让 5G 网络不堪重负。iAbra公司创建了相关工具,可用于构建在 FPGA 上实时运行的神经网络,以便通过小巧、纤薄的低功耗嵌入式设备在边缘(而非云端)实施推理。通过使用“所见即所得”(WYSIWYG) 工具,iAbra 的 PathWorks 工具套件可用于创建在此嵌入式平台的英特尔® 凌动® x7-E3950 处理器和英特尔® Arria® 10 FPGA 上运行的神经网络。这些工具本身可以在英特尔® 至强® 金牌 6148 CPU 上运行以创建神经网络。
通过使用 FPGA 模仿人脑,iAbra 解决了将 AI 推理内置到嵌入式设备的问题。通常,图像识别解决方案将问题映射到通用神经网络,例如 ResNet。但是,这样的网络太大,无法适配许多专为嵌入式用途打造的 FPGA。iAbra 的 PathWorks 工具套件可针对每个问题定制一种全新、独特的神经网络,该网络针对将运行的目标 FPGA 架构进行了高度优化。这里的目标架构是英特尔 Arria 10 FPGA。
iAbra 首席技术官 Greg Compton 表示:“我们对每瓦性能的评估显示,英特尔 Arria 10 FPGA 目前是该应用中最高效的组件。”Compton 解释道:“嵌入式平台还集成了最新一代的英特尔凌动处理器,相比上一代产品,新处理器提供了用于矩阵处理的更多指令。这样可以更轻松地执行矢量处理任务。需要处理神经网络的输出时,我们可以使用更适合应用的指令来提高速度。”
他补充说:“我们的许多客户并非来自嵌入式领域。通过使用英特尔凌动处理器,我们可帮助这类客户充分利用熟悉且久经考验的英特尔® 架构堆栈高效开展工作。”Compton 进一步表示:“我们选择英特尔® 至强® 金牌 6148 处理器进行网络创建,不仅看重其出色的性能,而且考虑到其非凡的经济性。”
iAbra 使用 OpenCL 开发了该解决方案。OpenCL 是一种编程框架,通过使用类似于 C 的语言提升了 FPGA 编程的易用性,从而实现了跨不同类型处理设备的代码可移植性。iAbra 还使用英特尔® Quartus® Prime 软件进行 FPGA 设计和开发,并使用英特尔® C++ 编译器来开发软件。该公司已整合了英特尔® 数学核心函数库(英特尔® MLK),该库为各种处理平台的数学运算提供了优化的代码。
Compton 继续表示:
“借助英特尔® MKL,英特尔为许多低级优化提供了高度优化的快捷方式,从而切实帮助我们的程序员提高工作效率。OpenCL 是一种中间语言,有助于我们从高级的“所见即所得”模式过渡到 FPGA 的低级晶体管位图模式。我们需要像这样的捷径来减少问题领域,否则开发像我们这样的软件对于任何一个组织来说都是遥不可及的任务。”
iAbra 参与了英特尔 FPGA 合作伙伴计划和英特尔® AI Builders 计划,该计划支持公司访问英特尔® AI DevCloud。Compton 总结道:“英特尔® AI DevCloud 支持我们通过云访问最新的硬件,这些硬件可能很难掌握,例如某些高度专业化的英特尔® Stratix® 10 FPGA 主板。它为我们提供了一个平台,让英特尔客户可以在受控环境中查看我们的框架,以便在购买前试用。该计划最近帮助我们扩展了智慧城市项目。在我们改进解决方案并使用英特尔的框架和库开发代码的过程中,英特尔支持为我们提供了巨大帮助。我们与英特尔工程师进行了紧密合作,包括以高级用户身份为其提供反馈意见,帮助他们改进 OpenCL 编译器。”
文章来源于英特尔FPGA