【技术实现步骤摘要】
一种基于FPGA的通信方法、设备、主机及异构加速系统
本申请涉及数据传输
,尤其涉及一种基于FPGA的通信方法、设备、主机及异构加速系统。
技术介绍
随着大数据、人工智能的发展,计算需求迅猛上涨,软件工作负荷急速增长,这要求处理器在面对高强度数据处理任务时能够提供更好的性能。但是,通用处理器需要兼顾计算和控制,这导致通用处理器的计算通用性强,但计算性能一般。为解决这一困境,可使用现场可编程门阵列(Field-ProgrammableGateArray,FPGA)作为通用处理器的协处理器进行异构加速。异构加速的主要原理为:多处理器间进行数据共享和搬移,以及请求控制信息的交换。然而,由于不同处理器的时延、吞吐等性能差别很大,因此,如何实现多处理器间高效协同工作成为异构加速的关键。
技术实现思路
本申请的多个方面提供一种基于FPGA的通信方法、设备、主机及异构加速系统,以实现多处理器高效协同工作,提高异构加速效率。本申请实施例提供一种基于FPGA的通信方法,适用于异构加速系统中的主机,所述异构加速系统还包括基于FPGA的加速设备,所述方法包括:根据应用程序的处理需求生成请求命令;将所述请求命令写入工作队列中,并将所述请求命令在所述工作队列中的位置信息提供给所述基于FPGA的加速设备,以供所述基于FPGA的加速设备对所述工作队列中的所述请求命令进行处理,并将所述请求命令的已完成状态信息写入完成队列;从所述完成队列中读取所述请求命令的已完成状态信息;基于所述请求命令的已完成状态信息获取所述请求命令对应的数据处理结果,并在所述工作队列中删除所述请求命令。本实施例还提 ...
【技术保护点】
1.一种基于FPGA的通信方法,适用于异构加速系统中的主机,所述异构加速系统还包括基于FPGA的加速设备,其特征在于,所述方法包括:根据应用程序的处理需求生成请求命令;将所述请求命令写入工作队列中,并将所述请求命令在所述工作队列中的位置信息提供给所述基于FPGA的加速设备,以供所述基于FPGA的加速设备对所述工作队列中的所述请求命令进行处理,并将所述请求命令的已完成状态信息写入完成队列;从所述完成队列中读取所述请求命令的已完成状态信息;基于所述请求命令的已完成状态信息获取所述请求命令对应的数据处理结果,并在所述工作队列中删除所述请求命令。
【技术特征摘要】
1.一种基于FPGA的通信方法,适用于异构加速系统中的主机,所述异构加速系统还包括基于FPGA的加速设备,其特征在于,所述方法包括:根据应用程序的处理需求生成请求命令;将所述请求命令写入工作队列中,并将所述请求命令在所述工作队列中的位置信息提供给所述基于FPGA的加速设备,以供所述基于FPGA的加速设备对所述工作队列中的所述请求命令进行处理,并将所述请求命令的已完成状态信息写入完成队列;从所述完成队列中读取所述请求命令的已完成状态信息;基于所述请求命令的已完成状态信息获取所述请求命令对应的数据处理结果,并在所述工作队列中删除所述请求命令。2.根据权利要求1所述的方法,其特征在于,所述根据应用程序的处理需求生成请求命令,包括:从所述应用程序的处理需求中,获取所述应用程序请求处理的至少一个待处理数据块在所述应用程序对应的虚拟内存空间中的存储地址、对所述至少一个待处理数据块进行数据处理所需的请求控制信息以及所述至少一个待处理数据块对应的数据处理结果所需存储空间的大小信息;根据所述数据处理结果所需存储空间的大小信息,从所述应用程序对应的虚拟内存空间中为所述数据处理结果分配存储地址;根据所述至少一个待处理数据块在所述虚拟内存空间中的存储地址、所述数据处理结果在所述虚拟内存空间中的存储地址以及所述请求控制信息,生成所述请求命令。3.根据权利要求2所述的方法,其特征在于,在从所述应用程序的处理需求中,获取所述应用程序请求处理的至少一个待处理数据块在所述应用程序对应的虚拟内存空间中的存储地址、对所述至少一个待处理数据块进行数据处理所需的请求控制信息以及所述至少一个待处理数据块对应的数据处理结果所需存储空间的大小信息之前,还包括:根据所述应用程序发送的内存注册请求,为所述应用程序分配包括多个虚拟内存块的虚拟内存空间,并为所述虚拟内存空间中的每个虚拟内存块分配唯一的索引标识;建立每个虚拟内存块对应的虚拟地址与物理地址的映射关系,并将每个虚拟内存块对应的虚拟地址与物理地址的映射关系分别存储至对应的虚拟内存块对应的地址转换表中;将每个虚拟内存块的索引标识、起始地址、页大小及对应的地址转换表的寻址信息作为对应的虚拟内存块的属性信息,分别配置到所述基于FPGA的加速设备中。4.根据权利要求1-3任一所述的方法,其特征在于,所述将所述请求命令写入工作队列中,包括:将所述请求命令写入所述工作队列的尾指针指向的当前写入位置,并将所述工作队列的尾指针移动至下一写入位置;所述将所述请求命令在所述工作队列中的位置信息提供给所述基于FPGA的加速设备,以供所述基于FPGA的加速设备对所述工作队列中的所述请求命令进行处理,包括:将所述工作队列中移动后的尾指针的位置写入所述基于FPGA的加速设备中与所述工作队列对应的用户可访问区域UAR寄存器中,以触发所述基于FPGA的加速设备对所述工作队列中的所述请求命令进行处理。5.根据权利要求4所述的方法,其特征在于,在将所述工作队列中移动后的尾指针的位置写入所述基于FPGA的加速设备中与所述工作队列对应的用户可访问区域UAR寄存器中之前,还包括:在所述基于FPGA的加速设备中为所述应用程序分配UAR空间,所述UAR空间中包含与所述工作队列对应的UAR寄存器;将所述应用程序与所述UAR寄存器的对应关系配置到所述基于FPGA的加速设备中。6.一种基于FPGA的通信方法,适用于异构加速系统中基于FPGA的加速设备,所述异构加速系统还包括主机,其特征在于,所述方法包括:接收所述主机提供的待处理的请求命令在工作队列中的位置信息,所述请求命令是所述主机根据应用程序的处理需求生成并写入所述工作队列中的;根据所述请求命令在工作队列中的位置信息从所述工作队列中读取所述请求命令;根据所述请求命令进行数据处理,并在数据处理完成后,将所述请求命令的已完成状态信息写入完成队列中,以供所述主机基于所述完成队列中所述请求命令的已完成状态信息获取所述请求命令对应的数据处理结果并在所述工作队列中删除所述请求命令。7.根据权利要求6所述的方法,其特征在于,所述请求命令包括:所述应用程序请求处理的至少一个待处理数据块在所述应用程序对应的虚拟内存空间中的存储地址、对所述至少一个待处理数据块进行数据处理所需的请求控制信息以及所述至少一个待处理数据块对应的数据处理结果在所述虚拟内存空间中的存储地址,则所述根据所述请求命令进行数据处理,包括:根据所述请求命令中携带的至少一个待处理数据块在所述应用程序对应的虚拟内存空间中的存储地址,获取所述至少一个待处理数据块;根据所述请求命令中携带的请求控制信息对所述至少一个待处理数据块进行数据处理以得到数据处理结果,并根据所述请求命令中携带的数据处理结果在所述虚拟内存空间中的存储地址将所述数据处理结果写入所述应用程序对应的虚拟内存空间中。8.根据权利要求7所述的方法,其特征在于,所述根据所述请求命令中携带的至少一个待处理数据块在所述应用程序对应的虚拟内存空间中的存储地址,获取所述至少一个待处理数据块,包括:从所述请求命令中携带的至少一个待处理数据块在所述应用程序对应的虚拟内存空间中的存储地址中,获取每个待处理数据块所处的虚拟内存块的索引标识及每个待处理数据...
【专利技术属性】
技术研发人员:陈荣惠,
申请(专利权)人:锐捷网络股份有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。