一种FPGA裸金属服务器的实现方法及系统

文档序号:34366717发布日期:2023-06-04 22:14阅读:100来源:国知局
一种FPGA裸金属服务器的实现方法及系统

本发明涉及支持fpga异构加速的云计算与数据中心体系架构,并特别涉及一种。


背景技术:

1、fpga(fieldprogrammablegatearray)是一种专用硬件可编程芯片。用户可面向应用需求,自主设计专用的硬件逻辑架构并编程(配置)部署到fpga芯片中,以便获得更好的应用处理性能。同时,因使用比传统冯·诺伊曼计算机体系结构更加专用且精简的硬件逻辑架构,在fpga实现的应用专用加速器可确保较低的能耗开销,提升应用的能效比,可灵活高效地突破现有应用处理所面临的“性能墙”和“能耗墙”。

2、微软于2014年首次将fpga在内部数据中心部署使用,加速其搜索引擎web服务,引发众多互联网公司开始在数据中心内部署fpga来加速互联网应用。随着数据中心内fpga的部署规模不断增长,将fpga作为一类可共享使用的公有云计算资源,供租户按需租用成为可能。亚马逊aws于2016年首次推出可租用的fpga计算实例,供云用户按需定制应用加速;国内的阿里云、腾讯云、华为云等头部企业纷纷跟进,推出fpga公有云基础设施及租用服务。

3、图1为现有技术中基于pcie的fpga云环境架构示意图。现有主流公有云环境中通常以挂接在物理或虚拟pciexpress(pcie)标准总线接口上的i/o设备形式对云fpga资源进行抽象描述。无论是公有云的资源管理平台,还是公有云租户,都需要在x86通用云主机内,通过物理或虚拟的pciexpress总线接口,部署、访问和控制云fpga资源。

4、现有主流公有云环境中,仍按i/o设备的方式对云fpga资源进行抽象描述,从而造成云fpga资源管理和使用的方式存在如下问题:

5、1)云fpga硬件板卡作为x86服务器(包括物理机或虚拟机)等通用资源的一种附属资源形式进行管理。云fpga板卡的工作状态与运行状态与所在的x86服务器深度绑定,从而造成云资源管理平台无法直接获取各fpga板卡的设备状态信息,需在云平台资源管理框架中额外定制设计专用的fpga设备管理组件,降低了fpga资源管理的技术通用性,增加云fpga资源管理系统的研发成本。

6、2)租户在使用过程中,需要申请装配有云fpga硬件资源的通用x86云主机,并在此x86云主机中通过标准pci-express(pcie)总线,部署、控制和访问云fpga硬件资源。租户无法按通用云计算资源访问方式直接且灵活地访问异构云fpga加速资源。

7、云fpga资源的管理和使用方式具体包括:

8、1)云资源管理(管理平面):借助通用x86服务器物理机的pciexpress(pcie)发现其所有可见的云fpga板卡,以外部i/o设备的形式进行管理;在使用过程中,通过x86服务器物理机的虚拟化技术(如pciepassthrough),将若干云fpga硬件板卡与某一个云租户虚拟机绑定。这样云租户就可以在虚拟机中访问fpga可编程逻辑资源。

9、2)fpga硬件编程配置(管理平面):将fpga硬件逻辑资源划分为静态区和动态区。静态区包含pcie接口在内的内存与外设接口,属于固定逻辑,在租户使用过程中不会发生变化;动态区用于部署用户的应用加速逻辑,可根据云租户的需要进行动态调整。在进行云fpga硬件编程配置时,云租户向云fpga管理员申请并传输动态区的配置文件bitstream。云管理员通过fpga厂商提供的基于pcie的fpga配置接口(如xilinxvirtualcable,即xvc),对云fpga的动态区进行动态可重构编程。

10、3)租户加速应用(数据平面):云租户在x86虚拟机中,通过pcie虚拟化接口和定制的fpga驱动程序,将待处理的原始数据传输到云fpga板卡上的内存中;同时通过pcie虚拟化接口访问fpga提供的内存映射i/o寄存器,启动fpga动态区中的应用加速器,开始对原始数据进行处理。在应用处理完成后,fpga硬件逻辑通过中断或i/o寄存器通知的方式,通知x86虚拟机上运行的租户应用程序将计算结果从云fpga板卡上的内存中读出计算结果。


技术实现思路

1、本发明的目的是解决上述现有技术中云fpga资源的抽象描述方法仅从i/o外部设备的角度考虑,导致抽象描述层次较低,限制云fpga的资源管理和租户使用方式灵活性的问题,提出一种将公有云中的fpga抽象描述为裸金属服务器资源的方法,使得云fpga资源与x86云主机具有类似使用方式的通用云计算资源的方法,1)无需定制开发新的云fpga资源管理组件,简化云fpga资源的管理方法,降低资源管理的复杂度;2)使云租户按需直接申请、部署和使用fpga主机,无需配套申请x86等通用计算资源,是提升云fpga管理和使用灵活性,并降低对通用x86计算资源依赖的一种可行方式。

2、具体来说,本发明提出了一种fpga裸金属服务器的实现方法,其中包括:

3、步骤1、构建由基板管理单元和多个与其相连的裸金属服务器构成的云服务系统,该裸金属服务器包括fpga板卡;

4、步骤2、为该基板管理单元构建用于启动该fpga板卡的设备驱动层,将位于该基板管理单元操作系统内核态的设备对象暴露到用户接口,并封装为驻留在该操作系统后台运行的服务程序守护进程,以随时接收并处理上层管理软件的资源管控请求;

5、步骤3、利用restful接口,将该裸金属服务器以网络url地址的形式呈现给该基板管理单元上层的资源管理软件,并将该fpga板卡的操作封装为该url地址下的具体属性;

6、步骤4、将待fpga逻辑配置的镜像文件上传到镜像存储系统,并通过该url地址对该裸金属服务器完成上电,上电后的该裸金属服务器从该镜像存储系统读取并执行该镜像文件以完成fpga逻辑配置,客户端通过数据网络将计算任务及其所需数据传入该裸金属服务器,并通过网络启动该裸金属服务器上的计算部件开始运行,得到执行结果。

7、所述的fpga裸金属服务器的实现方法,其中该fpga板卡为具有标准pcie接口的fpga板卡,该步骤4包括:

8、该镜像文件为bitstream镜像文件,通过修改该基板管理单元上运行的管理软件,通过该url地址对该裸金属服务器完成上电,该基板管理单元软件将该bitstream镜像文件通过pcie设备驱动程序,配置到对应的该裸金属服务器动态区中,并将该裸金属服务器的fpga动态区与静态区之间的管理寄存器设置为工作状态,使该裸金属服务器的fpga板卡进入工作状态;

9、当任务执行完毕后,客户端通过该url地址对该裸金属服务器完成下电。

10、所述的fpga裸金属服务器的实现方法,其中该fpga板卡为自定义接口设计的私有soc-fpga板卡,该步骤4包括:

11、该镜像文件为bitstream镜像文件,客户端将该bitstream镜像文件作为装机initrd上传到云计算管理平台的镜像存储系统中;

12、通过修改该基板管理单元上运行的管理软件,为该基板管理单元管理的每一台裸金属服务器提供启动模式设置的url;

13、通过url提供的post方法,将启动模式进行设置为network网络启动;当该基板管理单元管理的该裸金属服务器对应的启动模式url被设置为“network”字符串,该基板管理单元将修改对应该裸金属服务器节点的bios eeprom;

14、客户端对该裸金属服务器进行上电操作,该基板管理单元通过gpio设备驱动程序,直接控制该裸金属服务器的电源管理接口,使该裸金属服务器上电;上电后的该裸金属服务器按照bioseeprom设置启动,自动抓取并运行该装机initrd;

15、根据装机initrd,将要安装的该任务文件直接写入该裸金属服务器上的存储系统;写入完成后,将启动模式修改为本地,并重启该裸金属服务器;

16、裸金属服务器重启后,从本地裸金属服务器的存储系统中自动加载该任务文件;当任务执行完毕后,客户端通过该url地址对该裸金属服务器完成下电。

17、所述的fpga裸金属服务器的实现方法,其中该计算任务为fpga可支持的加速应用,包括深度神经网络、数据加解密和数据压缩/解压缩任务。

18、本发明还提出了一种fpga裸金属服务器的实现系统,其中包括:

19、初始模块,用于构建由基板管理单元和多个与其相连的裸金属服务器构成的云服务系统,该裸金属服务器包括fpga板卡;

20、启动模块,用于为该基板管理单元构建用于启动该fpga板卡的设备驱动层,将位于该基板管理单元操作系统内核态的设备对象暴露到用户接口,并封装为驻留在该操作系统后台运行的服务程序守护进程,以随时接收并处理上层管理软件的资源管控请求;

21、配置模块,用于利用restful接口,将该裸金属服务器以网络url地址的形式呈现给该基板管理单元上层的资源管理软件,并将该fpga板卡的操作封装为该url地址下的具体属性;

22、运行模块,用于将待fpga逻辑配置的镜像文件上传到镜像存储系统,并通过该url地址对该裸金属服务器完成上电,上电后的该裸金属服务器从该镜像存储系统读取并执行该镜像文件以完成fpga逻辑配置,客户端通过数据网络将计算任务及其所需数据传入该裸金属服务器,并通过网络启动该裸金属服务器上的计算部件开始运行,得到执行结果。

23、所述的fpga裸金属服务器的实现系统,其中该fpga板卡为具有标准pcie接口的fpga板卡,该运行模块包括:

24、该镜像文件为bitstream镜像文件,通过修改该基板管理单元上运行的管理软件,通过该url地址对该裸金属服务器完成上电,该基板管理单元软件将该bitstream镜像文件通过pcie设备驱动程序,配置到对应的该裸金属服务器动态区中,并将该裸金属服务器的fpga动态区与静态区之间的管理寄存器设置为工作状态,使该裸金属服务器的fpga板卡进入工作状态;

25、当任务执行完毕后,客户端通过该url地址对该裸金属服务器完成下电。

26、所述的fpga裸金属服务器的实现系统,其中该fpga板卡为自定义接口设计的私有soc-fpga板卡,该运行模块包括:

27、该镜像文件为bitstream镜像文件,客户端将该bitstream镜像文件作为装机initrd上传到云计算管理平台的镜像存储系统中;

28、通过修改该基板管理单元上运行的管理软件,为该基板管理单元管理的每一台裸金属服务器提供启动模式设置的url;

29、通过url提供的post方法,将启动模式进行设置为network网络启动;当该基板管理单元管理的该裸金属服务器对应的启动模式url被设置为“network”字符串,该基板管理单元将修改对应该裸金属服务器节点的bios eeprom;

30、客户端对该裸金属服务器进行上电操作,该基板管理单元通过gpio设备驱动程序,直接控制该裸金属服务器的电源管理接口,使该裸金属服务器上电;上电后的该裸金属服务器按照bioseeprom设置启动,自动抓取并运行该装机initrd;

31、根据装机initrd,将要安装的该任务文件直接写入该裸金属服务器上的存储系统;写入完成后,将启动模式修改为本地,并重启该裸金属服务器;

32、裸金属服务器重启后,从本地裸金属服务器的存储系统中自动加载该任务文件;当任务执行完毕后,客户端通过该url地址对该裸金属服务器完成下电。

33、所述的fpga裸金属服务器的实现系统,其中该计算任务为fpga可支持的加速应用,包括深度神经网络、数据加解密和数据压缩/解压缩任务。

34、本发明还提出了一种存储介质,用于存储执行所述任意一种fpga裸金属服务器的实现方法的程序。

35、本发明还提出了一种客户端,用于所述任意一种fpga裸金属服务器的实现系统。

36、由以上方案可知,本发明的优点在于:

37、为解决现有云fpga资源仅能作为i/o外部设备附属资源的问题,本发明提出一种提升云fpga抽象描述层次的方法,将异构fpga资源转换为与x86通用计算资源具有相同标准化接口的裸金属云服务器资源。通过提高异构计算资源的抽象层次可使:

38、1)fpga异构计算资源与x86通用计算资源具有相同的接口视图,使用现有的通用x86裸金属服务器管理接口即可对异构fpga资源进行管理,无需定制开发新的云fpga资源管理组件;

39、2)fpga异构计算资源可作为独立的云主机供云租户直接申请使用,可在不依赖x86通用计算资源的情况下向租户提供服务;并通过简单的资源管理接口功能扩展,即可允许用户部署编程。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1