searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种FPGA在“云”中的算力调度平台实现方法

2024-03-21 03:15:35
59
0

   现有FPGA的AI加速技术往往使用单卡方案实现某个模型的加速,或者使用FPGA集群实现模型的分布式推理,但是没有更细力度的加速方案。单卡和集群的方案容易造成功能固化,通用性不够,同时资源消耗大,很难实现资源共享。本文考虑到AI中常用算法中的基本计算单元,构建常用的算子,比如卷积算子、浮点累加器算子等等,可以实现更细粒度的功能整合。同时由于基于PCIe SR-IOV技术,实现vf级的算子动态调度,进一步增加资源的灵活度。   

   AI的三大支柱是算法、数据和算力。算法是AI的灵魂,随着深度学习相关算法的发展,越来越多的人关注在AI算法领域。纵观深度学习的发展历史,可以看到其实数年前就有人提出深度学习算法的理念,但是并没有很好的发展起来,主要原因就是因为算力受限。算力作为AI的基石,决定着一个算法是否能够落地。随着近年来CPU、GPU、FPGA、ASIC等的发展,深度学习开始蓬勃发展起来,很多领域开始研究使用多模态大模型等需要大量算力的技术。

   CPU作为以控制为中心的结构,非常适合做逻辑控制、串行运算。随着多核技术的发展,CPU的性能也有大幅提升,但是CPU不太擅长处理高速网络报文,无法在处理高速网络报文的同时再兼顾大量的计算负载。GPU擅长的是大规模并发运算,对于图像处理等等可以并行运算的场景有很大的优势,但是GPU没有网络报文处理能力,在数据中心它需要网卡的协助,如果运算需要大量的数据交互,接口处的数据交互能力会成为它的瓶颈。FPGA是以数据为中心的结构,同时可以兼顾执行IO密集任务,在数据中心FPGA作为高速数据传输的角色具有很大的优势。同时,FPGA片上有一定的存储资源和逻辑资源,可以做一下规模较小的计算卸载,受限于资源,在这方面的应用范围不是很广。

   随着人工智能的发展,FPGA在AI加速领域开始展露头角。随着Intel、Xilinx等厂商对FPGA的升级,FPGA在高速IO传输中的优势进一步提升,FPGA具有可定制化、可重配置、高性能低延迟的优点,可以给AI算法带来性能上的提升,同时显著降低推理等延迟。但是FPGA的劣势也很明显。FPGA的片上存储资源、逻辑资源和计算资源都很有限,如果是单卡,可实现模型的规模非常有限。现在也有一些FPGA集群式的方案,对大模型进行分布式推理,搭建这样的集群资源消耗大,开发成本也很高,灵活度也不够。

   云计算通常是指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

   在云计算数据中心中FPGA经常承担数据传输的角色,基于PCIe SR-IOV实现网络和存储的虚拟化,从而达到对网络和存储的动态调配。考虑到目前FPGA在AI加速领域受限于片上资源的问题,如果基于PCIe SR-IOV在FPGA实现算力的虚拟化,用户可以根据需要使用若干个算子完成相应的模型实现,FPGA对计算的卸载不再局限于单卡,对于算力的调配也会像水电一样随取随用,从而解决算力资源有限、而搭建集群又成本过高的问题。

   目前云计算中基于PCIe SR-IOV技术,FPGA主要用来实现网络和存储的虚拟化,但在AI推理的场景,是更复杂的需求,往往集合了数据传输、存储、计算等需求。而目前FPGA的应用主要是单卡执行小模型小应用,或者为了实现大模型,要搭建大型的资源池,这样会有很大的资源消耗和实现成本,同时欠缺灵活度。如果根据常用的AI推理需求,对每张FPGA板卡从host侧创建多个Virtio-net的vf,在Virtio-net的vf中规划相应的存储资源、逻辑资源和计算资源,实现常用的算子,从而在云计算场景实现算子的动态调度,达到资源复用,灵活实现不同模型算力需求的目标。将FPGA上的资源虚拟化后,实现了一个算力动态调度平台,FPGA的算子资源可以复用,多FPGA上的算子资源也可以协作,从而达到降低资源消耗和成本、适配AI模型结构更多样的目的,同时普通用户无需搭建集群也可以实现大模型。

   在本文构想的算力调度平台包含一个软件平台和若干安装FPGA板卡的服务器,软件平台提供用户接口软件,并对所有平台中的vf进行监管调度。用户在软件平台配置模型结构及算力需求,软件平台根据模型结构调度不同的vf集成算力通道。FPGA服务器上有FPGA板卡,通过PCIe SR-IOV实现每个vf下面不同的算力资源虚拟化,达到算力资源动态调配的目的。下图是系统方案架构。

图一 系统方案架构

   在该架构中,假如根据模型结构需要FPGA服务器1和FPGA服务器2上的相关vf组合完成模型推理,软件平台配置后网络数据流由FPGA服务器1接收模型输入进行相应计算,然后经过交换机传输到FPGA服务器2再进行后续运算并输出结果,软件平台需分别配置这两台服务器上面FPGA板卡上的流转表,将其中的vf对应的流转id配置好,这样各FPGA上的vf就可以按照流转表将相关数据以网络包的形式进行传输,最终实现整个模型的推理。

   根据该架构,可以构建一个基于PCIe SR-IOV技术的FPGA算力动态调度平台,在该平台中规划一定数量的常用算子vf,基于自定义数据段格式协议的以太网包,实现对算子vf级别的动态调配,从而实现算力资源复用吗,实现一个功能更通用灵活、资源更节省、成本更低的算力动态调度平台。

0条评论
0 / 1000
彭薛葵
5文章数
0粉丝数
彭薛葵
5 文章 | 0 粉丝
原创

一种FPGA在“云”中的算力调度平台实现方法

2024-03-21 03:15:35
59
0

   现有FPGA的AI加速技术往往使用单卡方案实现某个模型的加速,或者使用FPGA集群实现模型的分布式推理,但是没有更细力度的加速方案。单卡和集群的方案容易造成功能固化,通用性不够,同时资源消耗大,很难实现资源共享。本文考虑到AI中常用算法中的基本计算单元,构建常用的算子,比如卷积算子、浮点累加器算子等等,可以实现更细粒度的功能整合。同时由于基于PCIe SR-IOV技术,实现vf级的算子动态调度,进一步增加资源的灵活度。   

   AI的三大支柱是算法、数据和算力。算法是AI的灵魂,随着深度学习相关算法的发展,越来越多的人关注在AI算法领域。纵观深度学习的发展历史,可以看到其实数年前就有人提出深度学习算法的理念,但是并没有很好的发展起来,主要原因就是因为算力受限。算力作为AI的基石,决定着一个算法是否能够落地。随着近年来CPU、GPU、FPGA、ASIC等的发展,深度学习开始蓬勃发展起来,很多领域开始研究使用多模态大模型等需要大量算力的技术。

   CPU作为以控制为中心的结构,非常适合做逻辑控制、串行运算。随着多核技术的发展,CPU的性能也有大幅提升,但是CPU不太擅长处理高速网络报文,无法在处理高速网络报文的同时再兼顾大量的计算负载。GPU擅长的是大规模并发运算,对于图像处理等等可以并行运算的场景有很大的优势,但是GPU没有网络报文处理能力,在数据中心它需要网卡的协助,如果运算需要大量的数据交互,接口处的数据交互能力会成为它的瓶颈。FPGA是以数据为中心的结构,同时可以兼顾执行IO密集任务,在数据中心FPGA作为高速数据传输的角色具有很大的优势。同时,FPGA片上有一定的存储资源和逻辑资源,可以做一下规模较小的计算卸载,受限于资源,在这方面的应用范围不是很广。

   随着人工智能的发展,FPGA在AI加速领域开始展露头角。随着Intel、Xilinx等厂商对FPGA的升级,FPGA在高速IO传输中的优势进一步提升,FPGA具有可定制化、可重配置、高性能低延迟的优点,可以给AI算法带来性能上的提升,同时显著降低推理等延迟。但是FPGA的劣势也很明显。FPGA的片上存储资源、逻辑资源和计算资源都很有限,如果是单卡,可实现模型的规模非常有限。现在也有一些FPGA集群式的方案,对大模型进行分布式推理,搭建这样的集群资源消耗大,开发成本也很高,灵活度也不够。

   云计算通常是指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件)。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。这种特性经常被称为像水电一样使用IT基础设施。

   在云计算数据中心中FPGA经常承担数据传输的角色,基于PCIe SR-IOV实现网络和存储的虚拟化,从而达到对网络和存储的动态调配。考虑到目前FPGA在AI加速领域受限于片上资源的问题,如果基于PCIe SR-IOV在FPGA实现算力的虚拟化,用户可以根据需要使用若干个算子完成相应的模型实现,FPGA对计算的卸载不再局限于单卡,对于算力的调配也会像水电一样随取随用,从而解决算力资源有限、而搭建集群又成本过高的问题。

   目前云计算中基于PCIe SR-IOV技术,FPGA主要用来实现网络和存储的虚拟化,但在AI推理的场景,是更复杂的需求,往往集合了数据传输、存储、计算等需求。而目前FPGA的应用主要是单卡执行小模型小应用,或者为了实现大模型,要搭建大型的资源池,这样会有很大的资源消耗和实现成本,同时欠缺灵活度。如果根据常用的AI推理需求,对每张FPGA板卡从host侧创建多个Virtio-net的vf,在Virtio-net的vf中规划相应的存储资源、逻辑资源和计算资源,实现常用的算子,从而在云计算场景实现算子的动态调度,达到资源复用,灵活实现不同模型算力需求的目标。将FPGA上的资源虚拟化后,实现了一个算力动态调度平台,FPGA的算子资源可以复用,多FPGA上的算子资源也可以协作,从而达到降低资源消耗和成本、适配AI模型结构更多样的目的,同时普通用户无需搭建集群也可以实现大模型。

   在本文构想的算力调度平台包含一个软件平台和若干安装FPGA板卡的服务器,软件平台提供用户接口软件,并对所有平台中的vf进行监管调度。用户在软件平台配置模型结构及算力需求,软件平台根据模型结构调度不同的vf集成算力通道。FPGA服务器上有FPGA板卡,通过PCIe SR-IOV实现每个vf下面不同的算力资源虚拟化,达到算力资源动态调配的目的。下图是系统方案架构。

图一 系统方案架构

   在该架构中,假如根据模型结构需要FPGA服务器1和FPGA服务器2上的相关vf组合完成模型推理,软件平台配置后网络数据流由FPGA服务器1接收模型输入进行相应计算,然后经过交换机传输到FPGA服务器2再进行后续运算并输出结果,软件平台需分别配置这两台服务器上面FPGA板卡上的流转表,将其中的vf对应的流转id配置好,这样各FPGA上的vf就可以按照流转表将相关数据以网络包的形式进行传输,最终实现整个模型的推理。

   根据该架构,可以构建一个基于PCIe SR-IOV技术的FPGA算力动态调度平台,在该平台中规划一定数量的常用算子vf,基于自定义数据段格式协议的以太网包,实现对算子vf级别的动态调配,从而实现算力资源复用吗,实现一个功能更通用灵活、资源更节省、成本更低的算力动态调度平台。

文章来自个人专栏
FPGA设计
5 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
1
0