采访Intelliprop首席执行官Hiren Patel

视频转述

马库斯-韦德尔,BittWare

欢迎观看我们的视频,关注FPGA加速存储,重点是IntelliProp的一个框架,称为NVMe桥接平台。

今天和我在一起的是IntelliProp的CEO Hiren Patel。谢谢你加入我!

IntelliProp首席执行官Hiren Patel

谢谢你,马库斯--很高兴来到这里。

马库斯

让我们从简单的构建块开始。所以我们已经有了SSD存储--非常快的存储--但是我们不是把它插入,例如,主机PCIe总线,而是把FPGA放在中间。因此,第一个问题是你为什么要这样做?

熙仁

可能有几个原因,但是在SSD前面的FPGA允许数据捕获--数据采集系统的建立,可以直接将数据存储到SSD上,然后稍后通过PCIe从主机上读回。
,但是同样,你可以预先加载数据采集。
我们有能力将某些加速器功能直接卸载到FPGA中,然后FPGA可以从SSD中检索数据,进行处理,将其推回,或推回给主机。所以这可能是目前最大的两个原因。

马库斯

对于数据获取或数据捕获,使用FPGA有什么独特之处?因为......外面还有其他的数据采集方法......那么,使用FPGA并使用这个桥接框架有什么独特之处?

熙仁

是的,又是个好问题。在FPGA中,考虑到FPGA就像一块空白画布,对吗?因此,在FPGA中,我们有很多的互连。我们有很多连接点,你可以开始把其他类型的数据采集、温度传感器等放在那里--你可以开始采取这些数据并把它扔到SSD上。这是主要的标准之一。

另一个标准是你已经在FPGA中内置了强大的处理能力,你已经有了ARM内核,如今你可以放下多个处理器。你可以在数据到达SSD之前对其进行各种处理。

特别是一个桥--为什么要使用桥?桥主要是允许数据通过,所以它可以允许写通过,可以允许读通过。但它也可以拦截某些命令。它可以根据需要拦截数据,所以主机可以直接向FPGA发出命令,然后让FPGA从SSD中获取更多的数据,做它需要做的事情,如搜索,或某种加速功能,然后将数据推回。因此,FPGA有很多用途。

我想说的另一件事是,有了FPGA,因为它是如此的可定制,你实际上可以采取单一的FPGA并在多个产品中构建它。你可以把FPGA作为一个空白产品放在SSD前面,然后你可以攻击不同的算法或不同的加速。

一种算法可以是压缩,另一种算法可以是解压缩,可以是加密。你也可以做搜索之类的事情。这些都是针对你的具体需求的加速器功能,而不是一刀切的。

马库斯

那么,Hiren,你现在用框架的桥接组件引入了这个概念,你让主机CPU能够看到SSD--即使它们直接连接到FPGA,而不是主机PCIe总线。现在,这有好处,但这是否需要用户运行特殊的API,或者他们必须修改他们的软件,以便所有这些都能工作?

熙仁

不,不是开箱即用。开箱后,只有外壳中的桥接平台,你可以把我们插在一台主机和一个固态硬盘之间。不,什么都不需要改变。
现在,再次重申,当你开始进入加速功能或数据捕获时,你可能需要额外的,你知道,要么是驱动程序,要么你可以通过供应商的具体情况来做一切。有一些 CLI 允许你直接向网桥发送供应商的特定命令,网桥可以拦截这些命令,然后根据需要处理数据。

马库斯

现在我们来谈谈具体的BittWare硬件和性能。我认为需要注意的是,市场上真的没有那么多的FPGA卡可以像我们的BittWare IA-840F那样直接将SSD连接到FPGA上,你可以在这里看到。我们还拥有英特尔最新芯片的优势,该卡上的Agilex FPGA。那么,这些东西能带来哪些好处和指标呢?

熙仁

是的,当然。很明显,这些较新的FPGA正在向PCIe的越来越快的基因速率推进。今天,我相信Agilex的板子可以达到第4代,第5代也即将到来。而且我认为这些板子--这本身就是一个巨大的成就。

然后,再一次,通过桥接器,你得到了4代x16走向PC,然后在背面,你有能力聚集多个SSD。只要使用四块四代固态硬盘就可以帮助饱和一些。


所以我们可以在后面放四个驱动器,八个驱动器,我们可以有很多。但基本上所有的流量都会通过FPGA--允许我们在上面做计算存储或数据采集。

马库斯

这些带宽数字是什么?假设你有四个驱动器连接到FPGA,或者甚至FPGA连接到有八个驱动器的PCIe交换机,那么在Gen4 PCIe级别上有哪些性能数据可以期待?

熙仁

因此,在第四代的水平上,我怀疑它--只是在一个单一的驱动器上,我怀疑我们可能应该接近每秒6000兆字节。在第三代的速度下,我们已经能够展示我们的网桥以每秒3000多接近3500兆字节的速度运行。我希望在第四代的时候,这个速度会翻倍。

马库斯

另外,人们在部署FPGA时经常遇到的问题是,他们能在FPGA中容纳多少自己的IP和桥接IP?换句话说,你要给别人留多少空间?所以你能不能简单地谈谈这个问题...

熙仁

是的,听起来不错。在这个特定的板子上,我想那里有一个AGF027零件。我想说的是,这个部件可能有大约90万个ALE/ALMs。我们在桥上使用了大约10万个。那是针对单个驱动器连接的。如果你有多个驱动器连接,你将会增加大约4000个ALM来扩展它。

所以,是的,不是太糟糕。不过,还是只有10%左右。所以客户仍然有大量的逻辑可以用来增加他们的加速功能。

马库斯

Hiren你提到你可以把一个硬盘或多个硬盘直接连接到卡上。现在,如果你想连接更多的驱动器,而卡在物理上可以连接比如说八个驱动器--这到底是怎么做到的?

熙仁

我认为,即使是一张卡,你也可以连接多个驱动器,然后你也可以将其扩展到一个背板,该背板可能有一个PCIe交换机,然后可以让你获得额外的驱动器。因此,八个驱动器可以连接到一个PCIe交换机,PCIe交换机再连接到BittWare卡。所以我认为这是一个可能的解决方案或拓扑结构,在这里是可以的。

马库斯

让我们回到我们谈到的第二组用例,即FPGA是一个内联加速器。这是计算存储加速的大背景的一部分,它在CPU卸载方面变得非常流行。你能跟我说说计算存储的内联加速器的一些使用情况吗?

熙仁

是的,当然。因此,我们今天有很多客户都在做静态数据加密。因此,我们的FPGA位于固态硬盘或多个固态硬盘前面,客户使用我们称之为沙盒区或客户加速区作为静态数据加密。但客户也可以做搜索引擎,搜索卸载,压缩eBPF也是另一个增长的领域。

所以这些是客户可以做的一些事情。如果我们以压缩或解压为例,你可以用我们的桥接器做的一件事--你实际上可以让服务器或主机通过桥接器将压缩的数据不加改动地发送到SSD上。

但是当数据被检索到时,你可以在FPGA中内置一个解压硬件引擎。该解压引擎可以在数据被送回服务器主机之前对其进行解压,我想这也是我们看到的一个用例。

像我说的其他用例是eBPF,然后我知道Intelliprop正在进行一些这方面的参考设计,所以如果有的话,你知道这也是我们看到的另一个用例:eBPF虚拟机。

马库斯

你之前提到的一个用例,但我想听到更多的信息,就是让主机发出搜索命令,然后将搜索本身卸载到FPGA和直接连接的SSD上。那么,这个工作是如何进行的,你是如何卸载搜索的,因为这比卸载压缩要复杂一些?

熙仁

是的,这是个好问题。我们在11月在圣路易斯举行的SuperCompute '21上展示的一件事是,我们展示了我们的内联桥,实际上是在卸载搜索引擎。所以我们让CPU在SSD上预装了一堆数据。我们让服务器向桥接器中间发送一个供应商的特定命令,我们的RTL代码看到了供应商的特定命令,得到了LBA的范围或地址空间,以进行特定的模式搜索,我们也从服务器上收到了模式。一旦我们收到了模式和要搜索的LBA范围,我们就去读取我们应该读取的整个驱动器部分,寻找那个特定的32位模式,找到它的所有实例--它们出现在哪个LBA上--我们把它打包,然后把完成的数据发回给服务器主机。
通常,如果没有我们的加速器,服务器会把所有的数据读到它的系统内存,进行搜索,然后把数据扔掉。而没有所有的数据移动,它只需向我们发出一个命令,我们只需发回一个响应,说 "这是我们找到的所有位置"。老实说,FPGA能够做到这一点,而且速度快得多,我们也有图表显示这一点。

是的,所以现在我们正在看那个演示的一些内容。上线显示CPU负载大约为90%,同时它正在进行直接搜索,但在这之间,FPGA卸载版本当然要快很多倍,它正在卸载CPU...我们在这里使用的是哪种FPGA?
所以,是的,视频中的演示是在Intel Stratix 10 DX上完成的。

有人如何认识到他们何时需要使用这个特定的框架IP与桥梁?有人如何识别他们何时需要特别的桥接组件?
是的,这是个好问题。同样,这是一个直通式桥接。我们所做的是消除了所有NVMe的复杂性--我们创建了一个AXI流接口,客户可以把他们的逻辑放进去。因此,客户擅长做加速功能--他们是这方面的专家--他们可能不是NVMe方面的专家,而这正是该框架真正发挥作用的地方。我们通过AXI流将数据和命令以及所有这些作为控制和数据信息呈现在中间,然后让客户决定他们想用这些逻辑做什么。
,然后在另一边,我们也有一个控制和数据平面--AXI流,继续将数据转移到SSD上。
,它在两个方向都工作,所以在易用性方面,这是我们真正的优势所在。作为客户--他们的专长是加速功能--他们可以把它放到沙盒里,然后我们就可以
,这样可以大大缩短上市时间。在BittWare董事会的帮助下,我们实际上进一步缩短了这个时间。因为现在他们已经有了可以实际插入沙盒桥接器的芯片--NVMe桥接器平台,然后现在他们已经有了一个平台,可以继续建立他们的加速功能。

马库斯

Okay so building on that—and this is my last question—for viewers out there thinking about building this NVMe Bridge IP themselves versus using IntelliProp…how long did it actually take IntelliProp to make this and how easy is it now that you have it to build applications out using it?

熙仁

是的,所以听起来不错。所以,这又是一个框架,我们已经有点,我只是说我们已经有点推断出或隐藏了你必须与NVMe互动的事实。你不必对NVMe有任何了解。你只需要知道你得到的是什么地址和控制信息。

这座桥本身可能花了我们IntelliProp公司大约一年半的时间来开发并获得正确的性能,以达到我们想要的性能。最终,我们为我们的客户节省了时间。

举个例子,回到我们做的SuperCompute '21演示,我们在一个月内就完成了。如果没有桥接器,我们会花更多的时间。仅仅拥有桥接器,了解控制信息--我们所获得的数据信息,我们就花了一个月的时间来真正实现加速搜索功能和发送数据的能力。

因此,这又是一个框架,它都是预先建好的,它被冲出来了。你只需要专注于你的加速。

马库斯

好的,很好。谢谢你今天与我交谈,希伦,关于这一切,我很感激。

熙仁

谢谢你。

马库斯

这就是NVMe桥接平台,一个来自IntelliProp的框架,可用于BittWare FPGA卡。具体来说,我们今天看的是IA-840F与直接连接的SSD。要了解更多信息,请访问BittWare网站,感谢您的观看。