本发明涉及ai和云计算领域,特别涉及一种基于pcie sr-iov的fpga算力动态调度平台实现方法。
背景技术:
1、ai的三大支柱是算法、数据和算力,算法是ai的灵魂,随着深度学习相关算法的发展,越来越多的人关注在ai算法领域,纵观深度学习的发展历史,可以看到其实数年前就有人提出深度学习算法的理念,但是并没有很好的发展起来,主要原因就是算力受限,算力作为ai的基石,决定着一个算法是否能够落地,随着近年来cpu、gpu、fpga、asic等的发展,深度学习开始蓬勃发展起来,甚至有很多领域开始研究使用多模态大模型等需要大量算力的技术。
2、cpu作为以控制为中心的结构,非常适合做逻辑控制、串行运算,随着多核技术的发展,cpu的性能也有大幅提升,但是cpu不擅长处理高速网络报文,无法在处理高速网络报文的同时再兼顾大量的计算负载,gpu擅长的是大规模并发运算,对于图像处理等等可以并行运算的场景,gpu有很大的优势,但是gpu没有网络报文处理能力,在数据中心它需要网卡的协助,如果运算需要大量的数据交互,接口处的数据交互能力是它的瓶颈,fpga是以数据为中心的结构,同时可以兼顾执行io密集任务,在数据中心fpga作为高速数据传输的角色具有很大的优势,同时,fpga片上由于存储资源和逻辑资源的受限,因此只能做小规模的计算卸载。
3、随着人工智能的发展,fpga在ai加速领域开始崭露头角。随着intel、xilinx等厂商对fpga的升级,fpga在高速io传输中的优势开始显现,fpga具有可定制化、可重配置、高性能低延迟的优点,可以给ai算法带来性能上的提升,同时显著降低推理等延迟,但是fpga的劣势也很明显,fpga的片上存储资源、逻辑资源和计算资源都很有限,如果是单卡,可实现模型的规模会受到限制,因此现在会采用fpga集群式的方案,对大模型进行分布式推理,但是此种搭建方式的集群资源消耗大,灵活度不够。
技术实现思路
1、本发明的目的在于提供一种基于pcie sr-iov的fpga算力动态调度平台实现方法,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种基于pcie sr-iov的fpga算力动态调度平台实现方法,所述实现方法包括以下几个步骤:
3、第一步,建立vf,通过多张fpga板卡的host侧创建virtio-net的vf;
4、第二步,算子绑定,将fpga板卡内部的多个算子绑定至相对应的vf下面;
5、第三步,建立传输协议,设计统一的vf级传输以太网报文数据段格式协议,适配不同类型的算子输入输出接口数据,实现vf级的流转;
6、第四步,建立软件平台,在平台顶层建立软件平台,用于提供用户接口和动态监管所有vf,进行算子资源动态调配。
7、优选的,所述软件平台的一端设置有fpga服务器,所述fpga板卡设置在fpga服务器的内部,所述软件平台和fpga服务器之间设置有用于网络数据流传输的交换机,所述网络数据流包括多个网络包,所述fpga板卡的内部设置有用于网络包接收和发出的mac。
8、优选的,多个所述vf设置在fpga板卡的内部,所述mac和vf之间设置有用于分发网络包的流转表。
9、优选的,所述流转表的存储格式为源fpga_id+源vf_id+目的fpga_id+目的vf_id。
10、优选的,所述软件平台的内部设置有模型规模参数,所述模型规模参数用于匹配vf内适配的算子。
11、优选的,所述以太网报文数据段格式协议包括源fpga_id、源vf_id、目的fpga_id、目的vf_id、数据长度和多个数据内容。
12、优选的,所述mac和流转表之间设置有用于网络包转发的分发单元,所述流转表设置在分发单元的内部。
13、优选的,所述分发单元包括接收模块、查找模块、传送模块、输出模块、反馈模块和替换模块。
14、优选的,所述接收模块用于接收mac传输的网络包;
15、所述查找模块用于网络包的解析,确定对应fpga和vf;
16、所述输出模块用于将网络包输出给mac;
17、所述传送模块用于将网络包输出给对应的vf;
18、所述反馈模块用于接收vf计算后的网络包;
19、所述替换模块用于替换计算后的对应数据段。
20、本发明的技术效果和优点:
21、本发明通过自定义以太网包数据段格式协议和fpga流转表,搭建灵活的算力动态调度平台,通过在以太网包中的数据段划分固定id字段用于平台级的流转,平台可以根据用户模型需求配置算子vf间的流转关系,实现更多种的模型组合,实现vf级的算子动态调度,进一步增加资源的灵活度。
1.一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述实现方法包括以下几个步骤:
2.根据权利要求1所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述软件平台的一端设置有fpga服务器,所述fpga板卡设置在fpga服务器的内部,所述软件平台和fpga服务器之间设置有用于网络数据流传输的交换机,所述网络数据流包括多个网络包,所述fpga板卡的内部设置有用于网络包接收和发出的mac。
3.根据权利要求2所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,多个所述vf设置在fpga板卡的内部,所述mac和vf之间设置有用于分发网络包的流转表。
4.根据权利要求3所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述流转表的存储格式为源fpga_id+源vf_id+目的fpga_id+目的vf_id。
5.根据权利要求1所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述软件平台的内部设置有模型规模参数,所述模型规模参数用于匹配vf内适配的算子。
6.根据权利要求1所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述以太网报文数据段格式协议包括源fpga_id、源vf_id、目的fpga_id、目的vf_id、数据长度和多个数据内容。
7.根据权利要求3所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述mac和流转表之间设置有用于网络包转发的分发单元,所述流转表设置在分发单元的内部。
8.根据权利要求7所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述分发单元包括接收模块、查找模块、传送模块、输出模块、反馈模块和替换模块。
9.根据权利要求8所述的一种基于pcie sr-iov的fpga算力动态调度平台实现方法,其特征在于,所述接收模块用于接收mac传输的网络包;