Flex Logix的nnMax机器学习推理引擎技术,最初是为嵌入式fpga (efpga)开发的,现在可以在InferX X1协处理器中使用(图1).nnMax贴图已经被增强,以实现Winograd计算,提高性能和准确性。增强的eFPGA版本也可用。
1.Flex Logix的nnMAX 1K推理瓦提供了INT8 Winograd加速,提高了精度,同时减少了必要的计算。
InferX X1芯片包括多个nnMax集群。它可以提供更高的性能和吞吐量的神经网络批量规模为1,这是典型的嵌入式边缘物联网设备。该芯片利用YOLOv3模型,以11.4帧/秒的速度处理实时物体识别,使用2百万像素的图像,批量大小为1。这只需要一个DRAM就可以完成。性能随图像大小线性变化;因此,对于1百万像素的图像大小,帧速率翻倍为22.8帧/秒。
每个nnMax tile有1024个,1.067-GHz的nnMax DSP mac。该芯片还包括为深度神经网络(DNN)权重存储而优化的嵌入式RAM。Winograd的INT8层加速提供了2.25倍的性能增益。该系统将3 × 3卷积转换为4 × 4卷积,动态转换权值为12位。该支持还可以实时处理输入和输出转换,最大限度地减少系统中的权重负载。
InferX X1仅为推理而设计。其他平台,比如英伟达的gpgpu,更适合用于训练模型。Flex Logix的编译器获取这些模型,并对它们进行优化,以便在协处理器上运行。支持INT8、INT16、BFLOAT16。多个模型可以并行处理。该编译器支持标准的机器学习平台格式,如TensorFlow和ONNX。
编译器和芯片还可以通过组合同时处理的层数来优化模型处理。通常,层是用存储中间结果的缓冲区顺序处理的(图2).这可能在内存和延迟方面代价高昂,因为需要在DRAM中存储更大的缓冲区,而后者的访问时间较慢。
2.像InferX这样的系统通常一次处理一个神经网络层,缓冲中间结果,但这在时间和存储方面代价很高(按图放大).
Flex Logix的解决方案是组合处理层,这样中间值就可以存储在片上内存中(图3).集群被分配到处理不同的层,以最小化权重负载和中间值的存储。系统仍然需要执行相同数量的计算。然而,这种方法让每组文件在同一时间处理更少的计算,通过大量的迭代来弥补差异。与使用缓冲或竞争硬件相比,这大大提高了性能,并降低了功耗需求。
3.将两个或多个层组合在一个计算步骤中可以消除使用大型缓冲区来处理中间值的需要(按图放大).
InferX X1采用TSMC 16FFC技术建造。它提供8.5个TOPS,拥有4095台mac, 8mb的SRAM。InferX X1芯片将在今年晚些时候与一对PCI Express (PCIe)卡一起上市。其中一种是单片InferX X1芯片和单片LPDDR DRAM,另一种是双片和DRAM。半高半宽的卡是为嵌入式服务器设计的。
YOLOv3型号的PCIe卡的TDP类型为9.6 W。重量更轻的型号需要更少的功率。例如,ResNet-50只使用2.2 W。与其他机器学习硬件相比,该芯片具有非常好的推理时间(图4).
4.与竞争对手相比,InferX X1提供了一个批次大小的更高的推理速度。