自适应计算:立足当下布局未来的一把“瑞士军刀”

作者:Kiran Vishal Thanjavur Bhaaskar,赛灵思工业、视觉、医疗科学高级工业物联网和 AI 解决方案架构师

我最近在搬新家,发现自己需要一把螺丝刀;五分钟后,我又需要一把刀子打开信封;到搬家接近尾声时,我发现我又需要一个开罐器。我意识到在每项操作时我一指都在使用非常专门的工具。我的朋友看到这种情况,送了我一把瑞士军刀, 它提供了我需要的所有工具,而且还能满足其它新的需求。这时候, 我想起公司的自适应计算加速平台 (ACAP) ,面对当今的人工智能 (AI) 或者说更广泛的应用领域, 它不就是一把瑞士军刀吗?

赛灵思的 ACAP – 面向 AI 推断及更多应用领域的瑞士军刀

应用于工业和医疗领域的基于 AI 的系统,正越来越多地从研究项目和原型走向产品化阶段。这也就带来了专门针对边缘器件的关键需求,例如在低价格、低功耗和低时延下提高算力和性能。此外,AI 科学家正在不断创新,旨在开发出更新颖的算法和模型,这就需要对不同的硬件架构进行优化。

赛灵思自适应计算加速平台 (ACAP) ,可用于为一系列应用中的核心工业功能和医疗功能加速,如电动机控制(控制算法)、机器人(运动规划)、医疗成像(超声波束成型)等,但我们这次重点介绍 AI。

赛灵思与当下AI发展

2018年收购深鉴科技 (Deephi), 加上Zynq® UltraScale+™ MPSoC 的自适应计算特质,赛灵思一跃成为 AI 推断领域的前沿厂商。Deephi 曾发表全球首篇有关压缩和稀疏神经网络的论文文《深度压缩》(Deep Compression)。深度压缩这种方法能在不损失预测准确度的情况下成数量级地压缩神经网络(模型经深度压缩后,能加快推断速度 3-4 倍,提高能效 3-7 倍)。赛灵思 Zynq UltraScale+ MPSoC 的核心组件包括应用处理器 (Arm® Cortex-A53)、实时处理器 (ARM Cortex-R5) 和可编程逻辑 (PL)。这种平台能将压缩后的输出神经网络部署在 PL 中实现的深度学习单元 (DPU) 上,为压缩后的神经网络提速,使之发挥出更高性能。因为 DPU 实现在 PL 中,它的大小可以根据不同的并行化程度进行改变,并且还可以根据您选择的平台中可用的硬件资源,部署为单核、双核或三核甚至更多。

2017 年,为进一步发挥自适应计算能力,赛灵思发布了 INT8 DPU,从浮点 (FP32) 变为整数 (INT8),在保持良好精度的同时,大大节省了内存、存储空间和带宽。

接下来,一个严重的问题出现了:在工作中使用大量深度学习框架(TensorFlow、Caffe、Darknet 等)的 AI 科学家希望在赛灵思产品组合中尝试多种硬件平台,为他们的用例找到最佳方案。此外,他们还希望在开发工作中使用他们最熟悉的语言。为此,2019 年,赛灵思推出了名为 Vitis AI™ 的统一软件平台工具来满足上述需求。开发者通过该平台,可以使用常见的编程语言处理常见深度学习框架中的各种模型,而且能够支持从边缘到云任何器件的产品。此外,Vitis AI 自带 50 多种预训练、预优化的开源 AI 模型(赛灵思 Model Zoo),可以用定制数据集进行再训练,与其他从头开始培训和优化模型的方案相比,Vitis AI有利于 AI 软件开发者从一个更高的起点启动设计。

赛灵思面向当今AI应用的“六把刀”:

  • 减少资源的使用 – 较低精度 (INT8) 的压缩神经网络能减少 DSP、查找表 (LUT) 的使用,并降低存储器占用
  • 降低功耗 – 资源使用量的减少自然有利于降低功耗
  • 减小 BOM 成本 – 在成本不变的情况下使用更多的可用资源,含外部功能
  • 支持深度学习框架 – 包括Caffe、PyTorch 和 TensorFlow
  • 统一的开发工具 – 使用赛灵思 Vitis 和 Vitis AI,支持从边缘到云端的任意器件开发
  • 最大限度不更改AI 软件开发者的基本工作流程

面向赛灵思硬件平台AI 推断开发的赛灵思 Vitis AI 开发平台

赛灵思与未来的 AI

作为当今AI 领域扮演重要角色的技术提供商,赛灵思通过自己的硬件平台提供自适应计算能力,持续为塑造 AI 的未来而不懈努力。其中两项赛灵思正在开发的多种未来自适应计算方法包括:

  • INT4 DPU
  • FINN – 高速可扩展的量化神经网络推断

注释:本节中讨论的方法目前还没有被赛灵思产品化,在本文中讨论的目的是展现赛灵思硬件平台的自适应计算功能。

  1. INT4 DPU

INT8 在 AI 推断方面提供了比浮点运算显著提高的性能。展望边缘计算在未来的性能要求,我认为需要在降低或保持资源需求的前提下提高性能并降低时延,这样一来 INT4 优化将成为必然,届时,硬件性能可以随着时间的推移而不断改进。从 INT8 DPU 升级到 INT4 DPU,已经在现场完成部署的现有赛灵思器件,能在减少逻辑和片上存储器占用同时,实现高达 77% 的性能提升。

在 INT4 DPU 上部署神经网络的第一步是实现整个量化过程的硬件友好。INT4 量化方法可以划分为三类:

  1. 量化机制
  2. 量化设计硬件友好度
  3. 量化感知训练

赛灵思使用量化感知训练 (QAT)。为有效改善低比特与全精度神经网络的精度差异提供了关键技术。QAT 选用的算法是逐层量化感知训练。这种方法可以用于图像分类、姿态估计、2D 与 3D 检测、语义分割和多任务处理。

在其他开发流程保持不变的基础上,用户只需将导入训练后的模型通过赛灵思 Vitis AI 运行,最终生成可为目标平台部署的模型。除了已经介绍过的更低比特推断带来的如降低资源占用、降低功耗、降低BOM成本,支持常见的深度学习框架和编程语言等优势外,相比于 INT8 ,INT4 DPU 还能带来 2 倍到 15 倍的性能提升。

B. FINN

赛灵思研究实验室在 2017 年发表了第一篇有关 FINN 项目的论文,讨论了第二代 FINN 框架(FINN-R),这种端到端工具提供设计空间探索,并支持在赛灵思硬件平台上自动完成全定制推断引擎的创建。

与 Vitis AI 相似,FINN-R 支持多种常见的深度学习框架 (Caffe、 TensorFlow、DarkNet) 并允许用户以边缘和云端的多种硬件平台为开发目标(Ultra96、PYNQ-Z1 和 AWS F1 实例)。

FINN-R 有一个主要目标:针对给定的设计约束集和专门的神经网络,找出可以实现的最佳硬件实现方案并自动完成此目标,以便用户立即在他们的赛灵思硬件平台上获得由此带来的优势。FINN-R 如何达成这个目标?方法是完整的推断加速器架构选择和 FINN-R 工具链。用户有两种不同的架构可供选择:

一种是为用户的神经网络量身定制的架构,称作数据流架构 (DF);另一种则是数据流流水线架构 (MO),用于卸载相大部分的计算负载并通过流水线迭代。

FINN-R 工具链的构成包括前端、中间表达和后端。它导入量化神经网络 (QNN) 并为 DF 和 MO 架构输出部署包。如今的 FINN-R 能够为 BinaryNet、Darknet、Tensorpack 提供前端,而且更重要的是,由于它的模块性质,通过添加额外的前端它就能为新出现的 QNN 框架提供支持。用户可以随意选择部署包,只要保证选择的部署包在自己的设计约束下是最佳硬件实现方案。

FINN 和 INT4 DPU 的主要差别在于 FINN 可以为任何低比特神经网络生成定制化硬件实现方案,其中的权重、激活函数和层数可以有不同精度。此外,FINN 还丰富的定制空间,如层数和运算符。这对于在给定的硬性设计约束条件下优化设计性能非常有价值。另一方面,就常见的深度学习框架而言,INT4 DPU 的模型推断加速性能比今天的 INT8 DPU 高 77%,而且在硬件资源固定的条件下,能将模型部署到从边缘到云端的任何器件上。这两个流程进一步丰富了用户运用赛灵思平台加速推断、打造 AI 未来 的大量应用选择。

结论

AI 和机器学习的重要性毋庸置疑。固定架构确实可以很好地满足当今某些应用场景, 然而展望未来,机器学习的模型和它们的需求在不断变化,新的、未知的需求也在不断涌现。而无论如何变化,这些模型也将不断基于需求变化。赛灵思的自适应计算加速平台既能满足了当今的 AI 需求,也能自适应不断演进发展的 AI 未来需求。也就是说,借助计算平台,可以支持AI 开发者立足当下开展设计,同时通过可以应对未来变化的嵌入式平台为未来的 AI 布局做好准备。现在我要拿出我的瑞士军刀,开一罐豆子当晚餐。

参考资料

DPU INT4 白皮书

FINN

工业、视觉、医疗资源库