FPGA渗透到数据中心的必然性

FPGA渗透到数据中心的必然性
您不需要成为一名芯片设计师才能为 FPGA 编程,就像您不需要成为一名 C++ 程序员才能使用 Java 编写代码一样。 然而,在这两种情况下它可能都会有用。

Java 和 FPGA 技术商业化的目的是反驳后者的说法。 对于 FPGA 来说是个好消息 - 自可编程逻辑器件发明以来的过去 35 年里,使用正确的抽象层和工具集,为 FPGA 而不是 CPU、DSP、GPU 或任何其他形式的定制 ASIC 创建算法和数据流已成为越来越普遍,越来越容易。

FPGA 的诞生具有惊人的及时性,事实证明,当 CPU 由于各种原因不再是数据中心执行许多任务的唯一计算模块时,FPGA 发挥了其功效,提供了速度、低延迟和网络功能和内存——现代 FPGA SoC 的异构计算能力,它们几乎是成熟的计算系统。 然而,FPGA 也成功地与混合系统中的其他设备相结合,而且我们认为,它们才刚刚开始在计算层次结构中找到自己应有的位置。

这就是我们于 22 月 XNUMX 日在圣何塞组织 The Next FPGA Platform 会议的原因。 当然,全球主要 FPGA 供应商之一、该领域的先驱者就是 Xilinx。 Xilinx 高级副总裁兼首席技术官 Ivo Bolsens 今天在会议上发表了讲话,并向我们介绍了他今天关于 Xilinx 如何帮助为数据中心创建可变计算系统的想法。

系统架构师和程序员花了很多时间才想出一个异构数据中心,该中心将具有各种类型的计算机能力,可以解决计算、存储和网络方面的问题。 这似乎是必要的,因为使用各种 CMOS 器件来遵循摩尔定律变得越来越困难。 目前,我们的语言仍然以 CPU 为中心,我们仍然谈论“应用程序加速”,这意味着使程序运行得比单独在 CPU 上运行得更好。 随着时间的推移,数据中心将成为计算能力、数据存储和将一切联系在一起的协议的集合,我们将回到“计算”和“应用程序”等术语。 混合计算将变得像当今在桌面或虚拟机上运行的云服务一样正常,在某些时候我们将简单地使用“计算”​​一词来描述它们的工作方式。 在某个时刻——FPGA 很可能会帮助迎来这个时代——我们将再次将其称为数据处理。

在数据中心采用 FPGA 需要改变思维方式。 “在考虑加速当今应用程序的方法时,您必须了解它们的运行方式、使用哪些资源以及时间花在哪里等基础知识,”Bolsens 解释道。 – 你需要研究你试图解决的一般问题。 如今,在数据中心运行的许​​多应用程序都会扩展并消耗大量资源。 以机器学习为例,它使用大量的计算节点。 但当我们谈论加速时,我们不仅需要考虑加速计算,还需要考虑加速基础设施。”

例如,Bolsens 在实践中研究的那种机器学习操作中,大约 50% 的时间花费在分散的计算能力之间来回传输数据,只有剩下的一半时间花在计算本身上。

“我认为 FPGA 可以在这方面提供帮助,因为我们可以确保应用程序的计算和通信方面都得到优化。 我们可以在整体基础设施层面和芯片层面做到这一点。 这是 FPGA 的巨大优势之一,它允许您创建满足特定应用需求的通信网络。 根据人工智能工作负载中数据移动的典型模式,我认为不需要复杂的基于交换机的架构。 您可以构建一个具有大数据流的网络。 这同样适用于神经网络训练任务 - 您可以构建一个具有适应特定任务的数据包大小的网状网络。 使用 FPGA,可以非常精确地缩放数据传输协议和电路拓扑,并根据特定应用进行定制。 在机器学习的情况下,很明显我们不需要双精度浮点数,我们也可以对其进行调整。”

FPGA 与 CPU 或定制 ASIC 之间的区别在于,后者在工厂进行编程,之后您无法再改变关于正在计算的数据类型或正在计算的元素或数据性质的想法流经设备。 如果操作条件发生变化,FPGA 可以让您改变主意。

在过去,这种优势是有代价的,因为 FPGA 编程不适合胆小的人。 我们需要开放 FPGA 编译器,以便更好地与程序员用来用 C、C++ 或 Python 编写 CPU 并行应用程序的工具集成,并将部分工作外包给可加速 FPGA 上程序的库。 这就是 Vitis 机器学习堆栈的作用,为 Caffe 和 TensorFlow 等 ML 平台提供支持,并提供用于运行传统 AI 模型的库或为视频转码、视频对象识别、数据分析、金融风险管理和任何第三方等任务添加 FPGA 功能-派对图书馆。

这个概念与十年前推出的 Nvidia CUDA 项目(将并行计算卸载到 GPU 加速器)、AMD 的 ROCm 工具包、或者与英特尔 OneAPI 项目(应在不同的 CPU、GPU 和 FPGA 上运行)的承诺没有太大区别。

唯一的问题是如何将所有这些工具连接在一起,以便任何人都可以自行决定对一组计算能力进行编程。 这一点很重要,因为 FPGA 已经变得越来越复杂,比任何可用的 CPU 都复杂得多。 它们采用最先进的制造工艺和最现代的芯片封装技术制造。 他们会找到自己的定位,因为我们不能再浪费时间、金钱、精力和智力——所有这些都是太昂贵的资源。

“FPGA 具有技术优势,”Bolsens 说。 – 这不仅仅是关于适应性和可重构性的常见广告。 在所有重要的应用中——机器学习、图形分析、高速交易等。 - 它们有能力适应特定任务,不仅是数据分配路径,还有内存架构——数据在芯片内移动的方式。 FPGA 还内置了比其他设备更多的内存。 还应该考虑到,如果某个任务不适合一个 FPGA,您可以将其扩展到多个芯片,而不会遇到在多个 CPU 或 GPU 上扩展任务时遇到的缺点。”

来源: habr.com

添加评论