今天我们讨论的是一篇2017年2月份由Intel发表的论文,在文章结尾,我们会总从当前这个时间点来回看一下这篇论文的观点。
我们来看一下这篇paper中讲了什么内容?
当前主流的DNN,比如AlexNet和VGG,其计算密集型任务——浮点矩阵乘法(GEMM)与GPU的并行计算模型完美契合。GPU凭借其出色的并行处理能力和每秒万亿次浮点运算(TFLOP/s)的能力,成为了DNN加速的首选硬件。相比之下,尽管FPGA在能源效率(即每瓦性能)上占据优势,但在直接的DNN处理性能上仍落后于GPU。
然而,技术的进步正在改变这一局面。即将面世的Intel Stratix 10 FPGA,配备了超过5000个硬化浮点单元(DSP)、超过28MB的片上RAM(M20K块)、高带宽存储器(HBMs)集成,以及HyperFlex™架构带来的更高频率,理论上可以达到9.2 TFLOP/s的FP32吞吐量,直逼NVIDIA Titan X Pascal GPU的11 TFLOP/s峰值。这意味着FPGA在性能上已接近GPU的水平。
DNN算法本身也在经历革命性的变化,为FPGA提供了赶超的机会。近期的研究显示,通过利用网络稀疏性(例如剪枝技术)和极简数据类型(如1-2位数据表示),新一代DNN在算法效率上取得了显著提升。这种进展虽然引入了GPU难以有效处理的不规则并行性和定制数据类型,却是FPGA灵活性和定制化能力的完美舞台。
研究团队在两种Intel FPGA(Arria 10和Stratix 10)与Titan X Pascal GPU之间进行了直接对比,使用了一种可定制的DNN加速器模板。他们特别关注了稀疏修剪和低比特精度(ternary,即三态)神经网络的处理。实验中,通过优化数据管理单元,动态检查和跟踪零值,从而跳过不必要的零运算,实现了性能的提升。对于Stratix 10 FPGA,研究团队发现通过仅在神经元层面实施零跳跃策略,结合2位三态数据格式,可以在保持硬件资源效率的同时,实现有效的计算加速。
在某些情况下,例如对于剪枝、Int6和二值化的DNNs,Stratix 10 FPGA的性能分别比Titan X Pascal GPU提高了10%、50%和5.4倍。而对于Ternary ResNet的情况,Stratix 10 FPGA在性能上预计比Titan X Pascal GPU提高了60%。此外,性能/瓦特比方面,Stratix 10 FPGA也表现出更好的性能,预计比Titan X Pascal GPU提高了2.3倍。
对于GPU的评估,研究团队使用了Torch框架和Ternary ResNet-50模型在Titan X Pascal上进行测试,发现最佳性能出现在批次大小为64时。利用cuDNN库提供的优化,包括Winograd变换等高级数学算法,GPU展现了其强大的软件生态系统支持。尽管如此,实际测试中Ternary ResNet的平均性能为6.6 TFLOP/s,低于GPU理论峰值的11 TFLOP/s。
当时英伟达最强的GPU还是Titan X,算力是11 TFLOPS,但现在RTX 3090 Ti的单精度浮点运算性能就已经达到了约40 TFLOPS,远超Titan X ,而明年出来的B200 GPU拥有高达2080亿个晶体管,可以提供高达20 petaflops的FP4算力,又达到了前所未有的高度。
当时Intel的Stratix 10 FPGA还未发布,Stratix 10 具备数千个硬浮点单元(DSP)和片上RAM(M20K内存块),以及高带宽内存(HBMs)和改进的频率(HyperFlex™核心架构)。这些特性组合使FPGA在原始浮点运算性能上逼近GPU。
但这几年Transformer大行其道,AI的发展方向几乎就是大模型,曾经的国内AI四小龙,都已经成为过去,他们也并没有掀起太大的浪花。而且这几年因为AI的发展需求,英伟达的市值也远超Intel,甚至在AI高速发展的几年,Intel市值都没有太大变化,说明FPGA并未对AI的发展起到太大的作用,而Intel前几年FPGA的发展的主要精力也放到了数据中心。
现在在AI的训练方面,英伟达几乎是无敌的存在,在高端的H系列,没有竞争对手。前段时间大火的Groq,他们的大模型速度非常快,但他们也只是用了自己的推理芯片,他们也非常清楚,在训练方面还没法挑战英伟达。