数据编排支持人工智能(AI)的下一步发展

深度学习技术需要大量的张量算术运算(tensor arithmetic operation) 。为了支持实时执行 , 存储器和处理器的性能必须满足比标准软件驱动架构尽可能高得多的性能目标 。这种需求导致去使用基于专用硬件加速器的设计 , 来执行并行化和高度流水线化的张量算术运算 。为了避免通道阻塞 , 数据必须在合适的位置 , 合适的时间 , 以合适的格式出现 。专用的数据编排硬件避免了加速器通道阻塞 , 从而支持以最高效率运行 。
数据编排包括预处理和后处理操作 , 确保数据以最佳速度和最适合进行高效处理的格式传输到机器学习引擎中 。操作范围从资源管理和使用规划 , 到I/O适配、转码、转换和传感器融合 , 再到共享存储阵列内的数据压缩和重新排列 。如何部署这些功能将取决于目标应用的性能和成本要求 , 但对于大多数应用场景而言 , 针对数据摄取、转换和传输进行优化的可编程逻辑平台为机器学习加速器提供了最佳的数据编排策略 。
【数据编排支持人工智能(AI)的下一步发展】引言
深度学习给计算硬件带来了巨大的压力 。向专用加速器的转变为芯片技术提供了一种与人工智能发展保持同步的方法 , 但这些单元本身并不能够满足以更低的成本获得更高性能的需求 。
可以理解的是 , 集成电路(IC)供应商和系统公司一直专注于其矩阵和张量处理阵列的原始性能 。在峰值吞吐量下 , 这些架构可以轻松达到以每秒万亿次操作(TOPS)衡量的性能水平 , 即使对于旨在用于边缘计算的系统也是如此 。尽管可以理解 , 但如果由于数据不可用或需要为每个模型层转换为正确的格式而导致延迟 , 那么对峰值TOPS的关注会带来硬件利用率不足的风险 。
系统必须对网络和存储延迟进行补偿 , 并确保数据元素的格式和位置合适 , 同时以一致的速率传入和传出人工智能加速器 。数据编排提供了在每个时钟周期上确保数据格式和位置合适的方法 , 从而最大限度地提高系统吞吐量 。
由于典型人工智能实现的复杂性 , 所以无论是位于数据中心、边缘计算环境还是实时嵌入式应用 , 如自动驾驶辅助系统(ADAS)设计 , 有许多任务必须由数据编排引擎处理 , 这些任务包括:
? 数据操作(manipulation)
? 在多个矢量单元之间进行调度和负载平衡
? 数据损坏的数据包检查 , 例如由传感器故障造成的数据损坏
尽管可以通过向核心处理阵列添加数据控制和异常处理硬件来实现这些功能 , 但是由于可能需要的操作种类繁多 , 以及随着人工智能模型的发展对灵活性的需求也越来越高 , 这使得将这些功能硬连线到核心加速器芯片中可能成为一种昂贵的短期选择 。例如 , 在一些应用环境中 , 加密支持正迅速成为确保高数据安全性的需求 , 但根据每层数据的应用敏感性 , 可能会使用不同级别的加密 。固定架构解决方案存在着无法适应不断变化的需求的风险 。
一种可能的方法是使用一个可编程的微处理器来控制通过加速器的数据流 。这种方法的问题在于软件执行根本无法满足加速器硬件的需求 。需要一个更加以硬件为中心的数据编排响应 , 这使得加速器设计完全专注于核心通道效率成为可能 。外部数据编排可以处理所有的存储和I/O管理 , 确保操作数和权重的传输不间断 。由于数据编排引擎必须处理应用程序和模型设计的修订和更改 , 因此硬连线逻辑不是一种合适的方法 。可编程逻辑支持修改 , 并避免了数据编排引擎无法更新的风险 。
原则上 , 现场可编程逻辑门阵列(FPGA)结合了分布式存储器、算术单元和查找表 , 从而提供了组合功能 , 该组合功能非常适合人工智能驱动的应用程序所需的流数据实时重组、重新映射和存储器管理 。FPGA支持创建定制的硬件电路 , 支持深度流水线化人工智能加速器的密集数据流 , 同时使用户能够根据需要改变实现方式以适应新的架构 。然而 , 数据编排的性能要求需要新的FPGA设计方法 。