FPGA渗透数据中心的必然性

图片

您不需要成为芯片开发人员即可为FPGA编程,也不需要成为C ++程序员来编写Java代码。但是,在两种情况下,它都可能不是多余的。

将Java和FPGA两种技术商业化的目的是反驳最新的说法。 FPGA的好消息是,自从可编程逻辑器件发明以来,在过去的35年中使用了适当的抽象级别和工具包,从而为FPGA创建了算法和数据流,而不是CPU,DSP,GPU或任何其他形式的特殊ASIC更轻松。

创建它们的惊人的及时性体现在以下事实上:当CPU不再是数据中心执行许多任务的唯一计算模块时,由于各种原因,FPGA通过提供速度,低延迟,网络功能和内存而达到了效率-异构现代FPGA SoC的计算能力,几乎是完整的计算系统。但是,FPGA成功地与混合系统中的其他设备组合在一起,我们认为,这才刚刚开始在计算层次结构中找到其应有的地位。

因此,我们于1月22日在圣何塞组织了Next FPGA平台。当然,Xilinx是全球FPGA的主要供应商之一,也是该领域的先驱。赛灵思高级副总裁兼首席技术官Ivo Bolsens在会议上作了演讲,并向我们介绍了他今天对赛灵思如何帮助创建用于数据中心的可变计算系统的想法。

系统架构师和程序员花了足够的时间才能到达异构数据中心,该中心将提供解决计算,存储和网络问题的各种计算机功能。由于遵循摩尔定律,使用各种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等MOs平台的基础,并且具有用于启动普通AI模型或将FPGA功能添加到诸如视频转码,视频对象识别,数据分析等任务的库。 ,财务风险管理和任何第三方库。

这个概念与十年前推出的Nvidia的CUDA项目和将并行计算转移到GPU加速器,AMD的ROCm工具包或英特尔项目的承诺OneAPI并没有太大不同,后者应在不同的CPU,GPU和处理器上运行。现场可编程门阵列

唯一的问题是如何将所有这些工具连接在一起,以便任何人都可以自行决定编程一套计算能力。这很重要,因为FPGA已经变得比任何可用的CPU更复杂,更复杂。它们采用最先进的工艺流程,并借助最先进的芯片封装技术制成。他们将找到自己的利基,因为我们不再浪费时间,金钱,精力和情报-所有这些都是太昂贵的资源。

“ FPGA具有技术优势,” Bolsens说。-这不仅仅是关于适应性和可调整性的普通广告。在所有重要应用中-机器学习,图形分析,高速交易等 -他们有机会适应特定任务,不仅是数据分配路径,而且是内存体系结构-数据在芯片内移动的方式。与其他设备相比,FPGA内置的内存更多。还应该注意的是,如果该任务不能放在一个FPGA中,则可以将其扩展到多个芯片,而不必处理将任务扩展到多个CPU或GPU时等待您的缺点。”

Source: https://habr.com/ru/post/undefined/


All Articles