未来系统(例如云数据中心[DC]和自动驾驶汽车)需要在计算能力上大幅改进,以支持不断增多的工作负载以及不断演进的底层算法。例如,大数据分析、机器学习、视觉处理、基因组以及高级驾驶员辅助系统(ADAS)传感器融合工作负载都在促使计算性能能以低成本、高效的方式实现提升,并且超出现有系统(例如 x86 系统)的极限。
系统架构师正在寻找能满足要求的新计算平台。该平台需要足够灵活,以便集成到现有的架构中,并支持各种工作负载及其不断演进的算法。此外,这些系统很多还必须提供确定性的低时延性能,以支持实时系统(例如自动驾驶汽车)所需的快速响应时间。
图形处理单元(GPU)厂商非常积极地将 GPU 定位成新时代计算平台的最佳之选,主要依据其在机器学习训练的高性能计算 (HPC) 领域取得的成功。在此过程中,GPU 厂商针对机器学习推断工作负载修改了他们的架构。
然而,GPU 厂商还是忽视了基本的 GPU 架构的局限性。这些局限性会严重影响 GPU 以高效、低成本方式提供必要的系统级计算性能的能力。例如,在云端 DC 系统中,对工作负载的需求在一天内会发生很大变化。此外,这些工作负载的底层算法也会发生快节奏变化。GPU 架构的局限性会阻止很多今天的工作负载和明天形成的工作负载映射到 GPU,导致硬件闲置或低效。
相反,赛灵思 FPGA 和 SoC 具有众多关键属性,使它们非常适合解决未来系统要求所提出的种种挑战。这些独特属性包括:
· 针对所有数据类型提供极高的计算能力和效率
· 具备极高灵活性,能够针对多种工作负载将计算和效率优势最大化
· 具备 I/O 灵活性,能方便地集成到系统中并实现更高效率
· 具备大容量片上存储器高速缓存,可提高效率并实现最低时延
GPU 起源和目标工作负载
GPU 的起源要追溯到 PC 时代,英伟达 (NVidia) 公司声称在 1999 年推出世界首款 GPU,但有很多其他显卡要先于该公司的出品。GPU 是一款全新设计的产品,用来分担/加速图形处理任务,例如替 CPU 进行像素阵列的阴影和转换处理,其架构非常适合高并行吞吐量处理。本质上,GPU 的主要作用是为视觉显示器 (VDU) 渲染高质量图像。
多年来,少量非图形的大规模并行和存储器相关工作负载是在 GPU(而非 CPU)上实现并且受益良多,例如需要大规模矩阵计算的医疗成像应用。GPU 厂商意识到他们可以将 GPU 的市场延伸到非图形应用领域,并导致 GPU 的非图形编程语言(诸如 OpenCL)应运而生。这些编程语言实际上是将 GPU 转化成了通用 GPU (GPGPU)。
最近,能够良好映射到 GPU 实现方案的工作负载之一就是机器学习训练。通过充分运用 GPU,显著缩短了深度神经网络的训练时间。
GPU 厂商试图利用机器学习训练方面的成功来助推其在机器学习推断上的发展(部署经过训练的神经网络)。随着机器学习算法和所需数据精度的发展演进,GPU 厂商一直在调整他们的
架构以保持自身地位优势。例如,英伟达在他们的 Tesla P4 产品中提供 INT8 支持。然而,即使是更低的精度,例如二进制和三进制,今天也正在被很多用户探索。要利用机器学习及其它领域的进步,GPU 用户必须等待新硬件推出之后购买新硬件。正如本白皮书后面所述,赛灵思 FPGA 和 SoC 的用户则无需等待或购买新硬件,因为这类产品本身就具有高度的灵活性。
GPU 厂商想使自身成为这个新计算时代的首选计算平台,机器学习是他们的基础。但要弄清楚 GPU 是否适合未来系统,还要做更全面的系统级分析,需要考虑 GPU 架构的很多局限性以及系统要求如何随时间发展演进。