赛灵思FPGA架构白皮书简介:机器学习、片上存储器、任意IO

赛灵思FPGA架构白皮书简介:机器学习、片上存储器、任意IO,第1张

赛灵思 All Programmable FPGA 和 SoC 针对一系列计算密集型工作负载提供最高效、最具成本效益、时延最低、最具设计灵活性并且满足未来需求的计算平台。

为了满足不断攀升的数据处理需求,未来系统需要在计算能力上大幅改进。传统解决方案(例如 x86 处理器)再也无法以高效、低成本的方式提供所需的计算带宽,系统设计人员必须寻找新的计算平台。FPGA 和 GPU 越来越多地被系统设计人员看好,认为它们能够满足未来需求的计算平台。为新时代提供必要的计算效率和灵活性,本文将对 GPU 以及赛灵思 FPGA和 SoC 器件进行分析。

简介

未来系统(例如云数据中心 [DC] 和自动驾驶汽车)需要在计算能力上大幅改进,以支持不断增多的工作负载以及不断演进的底层算法 [ 参考资料 1]。例如,大数据分析、机器学习、视觉处理、基因组以及高级驾驶员辅助系统 (ADAS) 传感器融合工作负载都在促使计算性能能以低成本、高效的方式实现提升,并且超出现有系统(例如 x86 系统)的极限。

系统架构师正在寻找能满足要求的新计算平台。该平台需要足够灵活,以便集成到现有的架构中 , 并支持各种工作负载及其不断演进的算法。此外,这些系统很多还必须提供确定性的低时延性能,以支持实时系统(例如自动驾驶汽车)所需的快速响应时间。

图形处理单元 (GPU) 厂商非常积极地将 GPU 定位成新时代计算平台的最佳之选,主要依据其在机器学习训练的高性能计算 (HPC) 领域取得的成功。在此过程中,GPU 厂商针对机器学习推断工作负载修改了他们的架构。

然而,GPU 厂商还是忽视了基本的 GPU 架构的局限性。这些局限性会严重影响 GPU 以高效、低成本方式提供必要的系统级计算性能的能力。例如,在云端 DC 系统中,对工作负载的需求在一天内会发生很大变化。此外,这些工作负载的底层算法也会发生快节奏变化。GPU 架构的局限性会阻止很多今天的工作负载和明天形成的工作负载映射到 GPU,导致硬件闲置或低效。本白皮书的“GPU 架构的局限性”部分对这些局限性进行了更详细介绍。

相反,赛灵思 FPGA 和 SoC 具有众多关键属性,使它们非常适合解决未来系统要求所提出的种种挑战。

这些独特属性包括 :
• 针对所有数据类型提供极高的计算能力和效率
• 具备极高灵活性,能够针对多种工作负载将计算和效率优势最大化

• 具备大容量片上存储器高速缓存,可提高效率并实现最低时延

本白皮书的“赛灵思 FPGA 和 SoC 的独特优势”章节介绍了赛灵思架构的优势,并与 GPU 架构及其局限性进行对比。

GPU 起源和目标工作负载
GPU 的起源要追溯到 PC 时代,英伟达 (NVidia) 公司声称在 1999 年推出世界首款 GPU,但有很多其他显卡要先于该公司的出品 [ 参考资料 2]。GPU 是一款全新设计的产品,用来分担 / 加速图形处理任务,例如替 CPU 进行像素阵列的阴影和转换处理,其架构非常适合高并行吞吐量处理 [ 参考资料 3]。本质上,GPU 的主要作用是为视觉显示器 (VDU) 渲染高质量图像。

多年来,少量非图形的大规模并行和存储器相关工作负载是在 GPU(而非 CPU)上实现并且受益良多,例如需要大规模矩阵计算的医疗成像应用。GPU 厂商意识到他们可以将 GPU 的市场延伸到非图形应用领域,并导致 GPU 的非图形编程语言(诸如 OpenCL)应运而生。这些编程语言实际上是将 GPU 转化成了通用 GPU (GPGPU)。

机器学习
最近,能够良好映射到 GPU 实现方案的工作负载之一就是机器学习训练。通过充分运用 GPU,显著缩短了深度神经网络的训练时间。

GPU 厂商试图利用机器学习训练方面的成功来助推其在机器学习推断上的发展(部署经过训练的神经网络)。随着机器学习算法和所需数据精度的发展演进,GPU 厂商一直在调整他们的架构以保持自身地位优势。例如,英伟达在他们的 Tesla P4 产品中提供 INT8 支持。然而,即使是更低的精度,例如二进制和三进制,今天也正在被很多用户探索 [ 参考资料 4]。要利用机器学习及其它领域的进步,GPU 用户必须等待新硬件推出之后购买新硬件。正如本白皮书后面所述,赛灵思 FPGA 和 SoC 的用户则无需等待或购买新硬件,因为这类产品本身就具有高度的灵活性。

GPU 厂商想使自身成为这个新计算时代的首选计算平台,机器学习是他们的基础。但要弄清楚 GPU 是否适合未来系统,还要做更全面的系统级分析,需要考虑 GPU 架构的很多局限性以及系统要求如何随时间发展演进。

GPU 架构的局限性

本部分将深入研究典型的 GPU 架构,以揭示它的局限性以及如何将它们应用于各种算法和工作负载。

SIMT ALU 阵列

图 1 给出了典型的 GPU 方框图。通用 GPU 计算功能的核心是大型的算数逻辑单元 (ALU) 或内核阵列。这些 ALU 通常被认为是单指令多线程 (SIMT),类似于单指令多数据 (SIMD)。

赛灵思FPGA架构白皮书简介:机器学习、片上存储器、任意IO,Xilinx全可编程器件:出色的计算密集型系统开发平台,第2张

 

图 1 :GPU 方框图

基本原理是将工作负载分成数千个并行的线程。需要大量 GPU 线程来防止 ALU 闲置。然后,对这些线程进行调度,以使 ALU 组并行执行同一(单个)指令。利用 SIMT,GPU 厂商能实现相对 CPU 占位面积更小和能效更高的方案,因为内核的很多资源都可与相同组中的其他内核共享。

然而,显然只是特定的工作负载(或部分工作负载)能被高效映射到这种大规模并行架构中 [ 参考资料 5]。如果构成工作负载的线程不具有足够的共性或并行性(例如连续工作负载或适度并行工作负载),则ALU 会闲置,导致计算效率降低。此外,构成工作负载的线程预期要最大化 ALU 利用率,从而产生额外的时延。即使有英伟达的 Volta 架构中的独立线程调度这样的功能,底层架构也保持 SIMT,也需要大规模并行工作负载。

对于连续、适度并行或稀疏工作负载,GPU 提供的计算功能和效率甚至低于 CPU [ 参考资料 6]。例如用 GPU 实现稀疏矩阵计算 ;如果非零元素数量较少,则从性能和效率角度看 GPU 低于或等同于 CPU[ 参考资料 7][ 参考资料 8]。

有趣的是,很多研究人员正在研究稀疏卷积神经网络,以利用很多卷积神经网络中的大规模冗余[ 参考资料 9]。这种趋势显然在机器学习推断领域向 GPU 提出了挑战。

稀疏矩阵计算也是大数据分析中的关键环节。[ 参考资料 10]

包含大量并行计算任务的大多数工作负载也包含一些连续或适度并行元素,意味着需要 GPU-CPU 混合系统来满足系统性能要求 [ 参考资料 11]。显然,高端 CPU 需求会影响平台的效率和成本效益,CPU 与GPU 之间的通信也会给系统增加潜在瓶颈。

SIMT/GPU 架构的另一个局限性是 ALU 的功能取决于它的固定指令集和所支持的数据类型。

离散数据类型精度支持

系统设计人员正在探索简化数据类型精度,以此实现计算性能的跳跃式提升,而且不会使精度明显降低[ 参考资料 12][ 参考资料 13][ 参考资料 14]。

机器学习推断在降低精度方面一马当先,首先是 FP16,然后是 INT16 和 INT8。研究人员正在探索进一步降低精度,甚至降到二进制 [ 参考资料 4][ 参考资料 15]。

GPU ALU 通常原生支持单精度浮点类型 (FP32),有些情况支持双精度浮点 (FP64)。FP32 是图形工作负载的首选精度,而 FP64 经常用于一些 HPC 用途。低于 FP32 的精度通常无法在 GPU 中得到有效支持。因此采用标准 GPU 上的更低精度,除了能减少所需存储器带宽以外,作用甚微。

GPU 通常提供一些二进制运算功能,但通常只能每 ALU 进行 32 位宽运算。32 位二进制运算存在很大的复杂性和面积需求。在二值化神经网络中,算法需要 XNOR 运算,紧接着进行种群 (populaTIon) 计数。NVidia GPU 只能每四个周期进行一次种群计数运算,这会极大影响二进制计算 [ 参考资料 18]。如图 2 所示,为了与机器学习推断空间的发展保持同步,GPU 厂商一直进行必要的芯片修改,以支持有限的几种降精度数据类型,例如 FP16 和 INT8。例如,Tesla P4 和 P40 卡上的 NVidia GPU 支持 INT8,每 ALU/Cuda 内核提供 4 个 INT8 运算。

赛灵思FPGA架构白皮书简介:机器学习、片上存储器、任意IO,赛灵思FPGA架构白皮书简介:机器学习、片上存储器、任意I/O,第3张

 

图 2 :英伟达降精度支持

然而,英伟达面向 Tesla P40 上的 GoogLeNet v1 Inference 发布的机器学习推断基准结果表明,INT8 方案与 FP32 方案相比效率只提升 3 倍,说明要在 GPU 架构中强行降低精度并取得高效结果存在较大难度[ 参考资料 16]。

随着机器学习和其他工作负载转向更低精度和定制精度,GPU 厂商需要向市场推出更多新产品,他们的现有用户也需要升级平台才能受益于这种改进。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2599001.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-09
下一篇 2022-08-09

发表评论

登录后才能评论

评论列表(0条)

保存