机器学习处理器

高度可配置的计算密集型模块,具有多达32个乘法器

许多行业正在迅速采用人工智能和机器学习(AI / ML)技术来解决许多其他方法难以解决的棘手问题。图像,视频,语音和机器生成数据的数字数据从包括社交媒体,物联网和无处不在的摄像头的视频在内的众多数据源中呈爆炸性增长,这促使人们需要进行分析以从数据中提取知识。这些数据分析通常依赖于AI / ML算法,该算法具有快速解决传统计算机算法无法解决的高维问题的独特能力。

许多AI / ML算法的核心是模式识别,通常实现为神经网络。 AI / ML算法开发人员广泛采用了深度卷积神经网络(DNN),因为这些深度网络可为重要的图像分类任务提供最新的准确性。 AI / ML算法通常采用矩阵 vector 数学,这需要每秒数万亿的乘法/累加(MAC)运算。执行这些核心AI / ML数学运算需要许多快速乘法器和加法器-通常称为MAC单元。


FPGA作为AI / ML引擎

Achronix的新型Speedster7t FPGA系列是专门为应对这些挑战而设计的。 Speedster7t FPGA架构的每个方面都经过调整,可以为AI / ML应用创建优化的,平衡的,大规模并行计算引擎。每个Speedster7t FPGA均具有大量并行的可编程计算元件阵列,这些阵列被组织为新的机器学习处理器(MLP)块。每个MLP是一个高度可配置的计算密集型块,具有多达32个乘法器,支持4到24位的整数格式以及各种浮点模式,包括直接支持Tensorflow的bfloat16格式和块浮点(BFP)格式。

MLP的可编程MAC包含可分解的整数MAC和硬浮点MAC。 Speedster7t结构中的每个MLP块还包含两个与MAC块紧密耦合的存储器。一个存储器是一个大型的双端口72kb嵌入式SRAM(BRAM72k),另一个存储器是一个2kb(LRAM2k)循环缓冲器。可用的MLP块的数量因设备而异,但可以成千上万。

MAC的易碎性使其可以最佳地处理AI / ML推理算法越来越多地使用的降低精度的计算,以最大程度地减少内存需求。由于其易碎性,随着数字格式的精度降低,MLP可以执行越来越多的计算。

功能丰富,性能最高的操作

MLP提供了一系列功能,包括带可选累加的整数乘法,bfloat16运算, 浮点16,浮点24和块浮点 16.以下是MLP模块可用的功能列表:

  • 完全可分解整数乘法器/累加器 有效支持机器学习推理和更传统的应用,例如复杂的自适应信号处理。每个MLP支持4x int16、16x int8或32x int4乘法。 Speedster7t系列最多支持40,960个int8 MAC,因此在750 MHz的频率下运行时,理论上的最大性能为每秒61.4兆位运算。
  • 灵活的浮点 提供给极大 在计算中启用数值精度。 MLP 可以重新配置为支持输入和输出变量的fp15,fp24和bf16数字格式。
  • 对块浮点的本机支持 在MLP中启用。在块浮点中,单个指数在尾数值块之间共享。该方案在定点算法上提供了改进的动态范围,其性能接近传统浮点,但效率更高。 MLP具有专用电路,可以对块浮点数进行乘法,求和和累加。
  • 最高性能矩阵乘法为了利用数据的局部性和数据流,MLP包含集成的Block RAM,以确保最佳性能。这些存储器可以独立使用,但是对于MLP乘法功能,它们通过不利用FPGA路由资源来确保最高的性能和最省电的操作。 MLP还包括相邻MLP之间的级联路径,以共享内存和权重数据或激活数据以及有效数据结构(如脉动阵列结构)的实现。