CN107491342A - 一种基于fpga的多虚拟卡使用方法及系统 - Google Patents

一种基于fpga的多虚拟卡使用方法及系统 Download PDF

Info

Publication number
CN107491342A
CN107491342A CN201710780626.2A CN201710780626A CN107491342A CN 107491342 A CN107491342 A CN 107491342A CN 201710780626 A CN201710780626 A CN 201710780626A CN 107491342 A CN107491342 A CN 107491342A
Authority
CN
China
Prior art keywords
unit block
user
fpga
logic unit
task requests
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710780626.2A
Other languages
English (en)
Inventor
董磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710780626.2A priority Critical patent/CN107491342A/zh
Publication of CN107491342A publication Critical patent/CN107491342A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于FPGA的多虚拟卡使用方法及系统,该方法包括:主机端根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息;FPGA获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算;本发明通过主机端根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息,可以为确定每个用户对应的逻辑单元块的任务请求;FPGA获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算,可以利用每个用户对应的FPGA根据可重配特性分割成的逻辑单元块,独立完成任务请求对应的运算,避免了FPGA中的逻辑资源的浪费,同时也可以为服务提供商更多效益。

Description

一种基于FPGA的多虚拟卡使用方法及系统
技术领域
本发明涉及计算机应用技术领域,特别涉及一种基于FPGA的多虚拟卡使用方法及系统。
背景技术
随着现代社会科技的发展,FPGA加速卡在深度学习中逐步开始使用,但对于FPGA加速卡如何更有效的管理还没有太好的方法。
现有技术中,FPGA加速卡使用方法为:该设备直接给一个用户开放。该用户使用整个FPGA的逻辑资源。由于目前的FGPA的逻辑资源非常丰富,以整个FPGA逻辑资源作为单元向用户开放,往往会远远超出用户的使用需求,造成FPGA的逻辑资源的浪费。因此,如何能够更有效的管理和使用FPGA板卡建立的硬件加速资源池,避免资源浪费,是现今急需解决的问题。
发明内容
本发明的目的是提供一种基于FPGA的多虚拟卡使用方法及系统,以利用FPGA的可重配方式将FPGA分成多个可单独加载逻辑单元块,使用逻辑单元块满足用户的使用需求,避免资源浪费,同时也为服务提供商更多效益。
为解决上述技术问题,本发明提供一种基于FPGA的多虚拟卡使用方法,包括:
主机端根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息;其中,所述逻辑单元块为FPGA的全部逻辑资源中的部分可单独加载的逻辑资源;
所述FPGA获取所述任务请求和所述单元块信息,根据所述单元块信息利用所述逻辑单元块进行所述任务请求对应的运算。
可选的,所述FPGA获取所述任务请求和所述单元块信息,包括:
所述FPGA通过检测所述逻辑单元块对应的任务队列,获取所述任务请求和所述逻辑单元块对应的任务队列的队列信息。
可选的,所述主机端根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息,包括:
所述主机端根据接收的每个用户的任务请求,将每个任务请求发送到各自对应的逻辑单元块对应的任务队列中。
可选的,主机端根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息之前,还包括:
所述主机端根据每个用户的授权情况,为每个用户分配各自对应的逻辑单元块。
可选的,该方法还包括:
所述主机端根据每个用户的查询请求,为每个用户显示各自对应的逻辑单元块的配置信息;其中,所述配置信息包括每个用户各自对应的逻辑单元块的逻辑资源大小。
此外,本发明还提供了一种基于FPGA的多虚拟卡使用系统,包括:
主机端,用于根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息;其中,所述逻辑单元块为FPGA的全部逻辑资源中的部分可单独加载的逻辑资源;
所述FPGA,用于获取所述任务请求和所述单元块信息,根据所述单元块信息利用所述逻辑单元块进行所述任务请求对应的运算。
可选的,所述FPGA,具体用于通过检测所述逻辑单元块对应的任务队列,获取所述任务请求和所述逻辑单元块对应的任务队列的队列信息。
可选的,所述主机端,具体用于根据接收的每个用户的任务请求,将每个任务请求发送到各自对应的逻辑单元块对应的任务队列中。
可选的,所述主机端,还用于根据每个用户的授权情况,为每个用户分配各自对应的逻辑单元块。
可选的,所述主机端,还用于根据每个用户的查询请求,为每个用户显示各自对应的逻辑单元块的配置信息;其中,所述配置信息包括每个用户各自对应的逻辑单元块的逻辑资源大小。
本发明所提供的一种基于FPGA的多虚拟卡使用方法,包括:主机端根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息;其中,逻辑单元块为FPGA的全部逻辑资源中的部分可单独加载的逻辑资源;FPGA获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算;
可见,本发明通过主机端根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息,可以为确定每个用户对应的逻辑单元块的任务请求;FPGA获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算,可以利用每个用户对应的FPGA根据可重配特性分割成的逻辑单元块,独立完成任务请求对应的运算,避免了FPGA中的逻辑资源的浪费,同时也可以为服务提供商更多效益。此外,本发明还提供了一种基于FPGA的多虚拟卡使用系统,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种基于FPGA的多虚拟卡使用方法的流程图;
图2为本发明实施例所提供的一种基于FPGA的多虚拟卡使用方法的FPGA结构示意图;
图3为本发明实施例所提供的一种基于FPGA的多虚拟卡使用方法的完成队列示意图;
图4为本发明实施例所提供的一种基于FPGA的多虚拟卡使用系统的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种基于FPGA的多虚拟卡使用方法的流程图。该方法可以包括:
步骤101:主机端根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息;其中,逻辑单元块为FPGA的全部逻辑资源中的部分可单独加载的逻辑资源。
可以理解的是,利用FPGA的可重配方式,可以在FPGA物理卡可以建立多个可单独加载逻辑单元块(parttition),每个逻辑单元块相互独立。如图2所示,两个建立的逻辑单元块(parttition0和parttition1)可以通过总线接入板载DDR(内存)。
具体的,对于FPGA中建立的逻辑单元块的数量和每个逻辑单元块的大小,可以由设计人员或管理人员,根据实用场景和用户需求自行设置,如可以预先在每个FPGA中建立可以供每个用户各自对应使用的多个逻辑单元块;也可以根据用户的使用需求为用户创建满足该需求的逻辑单元块。本实施例对此不做任何限制。
需要说明的是,本步骤中主机端根据每个用户发送的任务请求,生成每个用户被授权使用的逻辑单元块的单元块信息的目的,可以为方便FPGA了解任务请求对应的逻辑单元块的信息。对于生成每个用户被授权使用的逻辑单元块的单元块信息的具体过程,可以为主机端将每个任务请求发送到各自对应的逻辑单元块对应的任务队列中,使每个逻辑单元块所在的FPGA可以通过获取逻辑单元块的任务队列的队列信息,直接了解每个任务请求对应的逻辑单元块;也可以为主机端将每个任务请求和生成的每个任务请求对应的FPGA可通过逻辑解读的逻辑单元块的单元块信息,发送到逻辑单元块所在的FGPA,使FPGA可以解读单元块信息,确定接收的任务请求对应的逻辑单元块。FPGA可以确定每个任务请求对应的逻辑单元块,利用每个用户被授权使用的逻辑单元块进行对应的任务请求的运算,对于生成用户对应的逻辑单元块的单元块信息的具体方式,本实施例对此不做任何限制。
具体的,主机端可以根据每个用户的授权情况,为每个用户分配各自对应的逻辑单元块。也就是说,主机端可以根据每个用户的授权情况,确定每个用户被授权使用的逻辑单元块,从而每个用户对应的任务请求分配给每个用户被授权使用的逻辑单元块。对于具体的分配方式,可以设计人员根据实用场景或用户需求自行设置,如可以为每个用户分配固定的逻辑单元块,也就是说,每次用户登陆后,可以均使用固定的逻辑单元块进行运算;也可以为每个用户分配可调整的逻辑单元块,也就是说,每次用户登陆后,主机端可以根据FPGA的使用情况,为用户分配本次使用的逻辑单元块。本实施例对此不做任何限制。
优选的,主机端还可以根据每个用户的查询请求,为每个用户显示各自对应的逻辑单元块的配置信息。也就是说,用户可以通过向主机端发送查询请求,查看自身可以使用的逻辑单元块的配置信息。对于配置信息的具体内容,可以仅每个用户包括各自对应的逻辑单元块的逻辑资源大小,还可以包括逻辑单元块的其他信息。本实施例对此不做任何限制。
步骤102:FPGA获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算。
其中,本步骤中的FPGA获取任务请求和单元块信息的过程,可以为直接接收主机端发送的任务请求和单元块信息,如主机端将每个FPGA中的逻辑单元块对应的任务请求和每个任务请求对应的逻辑单元块的单元块信息,直接发送到FPGA中,每个FPGA可以根据单元块信息,利用对应的逻辑单元块进行任务请求对应的运算;也可以为通过检测存储任务请求的任务队列,获取任务请求和任务请求所在的队列信息,每个FPGA可以根据队列信息,利用队列信息对应的逻辑单元块进行任务请求对应的运算。本实施例对此不做任何限制。
可以理解的是,每个FPGA检测的任务队列可以为一个,如主机端将每个FPGA中的逻辑单元块对应的任务请求和单元块信息均发送到对应的一个任务队列,每个FPGA均可以通过检测各自对应的一个任务队列获取任务请求和单元块信息;也可以多个,如主机端将每个FPGA中的逻辑单元块对应的任务请求均发送到每个逻辑单元块各自对应的任务队列,每个FPGA均可以通过检测自身的逻辑单元块对应的任务队列,获取任务请求和自身的逻辑单元块对应的任务队列的队列信息。本实施例对此不做任何限制。
优选的,为了方便每个FPGA确定每个任务请求对应的自身的逻辑单元块,可以通过检测自身的逻辑单元块对应的任务队列,获取任务请求和队列信息。也就是,可以对每个逻辑单元块建立对应的任务队列。
具体的,本实施例所提供的方法可以为设备层中在FPGA物理卡中建立多个逻辑单元块(partition),每个partition相互独立,每个partition都可以通过总线接入板载DDR。FPGA中轮询多个queue(队列集),保证多个queue接入的公平。并将queue中的任务请求下发到相应的partition进行运算,FPGA中轮询多个queue,保证多个queue接入的公平。并将queue中的命令下发到相应的partition进行运算,在FPGA内部预留有寄存器用于存储当前FPGA状态信息:partition个数,每个partition对应的逻辑资源大小。
主机端的驱动层(Driver)除了扫描PCIE设备外,为了建立与FPGA的通信,建立多个queue,每个queue对应一个partition,用于传输当前partition使用的任务请求及完成信息。
主机端的设备管理层建立设备树,确定设备与驱动之间的映射关系。
主机端的虚拟设备层根据设备树读取设备配置信息(包括每个设备的partition个数,每个partition的逻辑资源大小),并建立虚拟设备树。设备树中每个partition对应虚拟设备树中的一个独立设备。虚拟设备层,还可以根据用户被授权的使用情况,有限制的为用户建立虚拟设备树。进一步实现对FPGA板卡的有效管理。
以图2所示的FPGA为例,可以将FPGA分为两个不同的逻辑单元块(parttition0和parttition1),两个逻辑单元块通过command/Data manager链接到总线上。command/Datamanager可以用于与主机端的驱动层通信,将命令与数据发送给两个逻辑单元块。
主机端在驱动层建立两个queue(queue0和queue1),每个queue中有一个任务队列(submission queue,SQ)和完成队列(complete queue,CQ)。每个queue对应一个partition。通过SQ下发任务请求,通过CQ上报完成信息。
主机端的应用层将每个partition对应的任务请求发送到对应的queue中的SQ中。该请求可以包括:数据源地址,数据目的地址,运算处理的配置参数。发送完成后,更新FPGA内部建立的SQ尾寄存器。
FPGA内部逻辑检测到SQ中的任务请求后,读取任务请求,并触发DMA(DirectMemory Access,直接内存存取)将数据源地址对应的数据搬移到FPGA板卡的DDR空间中,同时更新SQ头寄存器。
DMA完成数据搬移后触发对应的partition内部逻辑运算,当完成运算并将结果搬移到数据目的地址中,FPAG向对应的CQ中写入完成信息,更新CQ的尾寄存器,并发送msi-x中断给主机端。
主机端接收到中断信息(msi-x中断)后,读取完成信息,并做相应处理后更新CQ的头寄存器。
也就是说,设备层的FPGA端对应于2个queue,为了保证两个queue中的任务请求相应的均衡,FPGA内部可以对两个queue进行轮询处理。为检测命令是否有更新,可以在FPGA内部建立四组doorbell寄存器用于记录SQ的头尾信息,CQ的头尾信息。FPGA逻辑维护SQ的尾信息,CQ的头信息。
为了简便处理,DDR空间可以根据设置的SQ可存储任务请求的个数等间隔划分区间,从而简化DDR内存的管理。
当数据搬移完成,驱动对应的逻辑单元块进行运算,并将运算结果数据写入到DDR中,并触发PCIE控制模块将运算结果数据发送到主机端(即数据目的地址)。
运算结果数据搬移完成,FPGA通过PCIE向驱动层的CQ写入完成西悉尼,并给主机端发送mis-x中断。
主机端的驱动层可以与linux现有的驱动层一致,不仅包括设备(FPGA)检测,还存在设备的寄存器配置等相关功能。同时为了满足任务请求的传递,可以在驱动层建立多个queue。主机端下发的运算命令通过SQ下发,并更新FPGA的SQ尾寄存器通知FPGA有新命令发送。当命令完成后,驱动层根据完成消息中带有的SQ头信息维护整个SQ。并根据CQ中的完成标识维护整个CQ。
可以如图3所示的完成队列,FPGA每写入一个完成信息将相应的完成标识为1,驱动取出一个完成信息后将完成标识置为0。驱动层通过扫描完成标识确定CQ的头尾信息。每个逻辑单元块对应一个queue。从而实现不同的逻辑单元块之间任务请求发送的独立。
主机端的设备管理层建立设备树。该设备树中可以包含FPGA位置信息,FPGA中的逻辑单元块信息,每个逻辑单元块逻辑资源大小,FPGA提供的接口信息及映射的驱动信息。
主机端的虚拟设备层可以根据设备树中提供的设备信息,建立多个虚拟设备的映射关系。每个逻辑单元块可以对应一个虚拟设备,并将驱动程序进行封装,每个逻辑单元块对应的任务请求发送到相应的queue中。
如果当前用户只被授权使用一个虚拟FPGA(逻辑单元块),那么该用户对应的虚拟设备树中只存在一个虚拟FPGA板卡,虚拟设备层可以按照当前系统的使用情况给用户分配一个逻辑单元块使用。
本实施例中,本发明实施例通过主机端根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息,可以为确定每个用户对应的逻辑单元块的任务请求;FPGA获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算,可以利用每个用户对应的FPGA根据可重配特性分割成的逻辑单元块,独立完成任务请求对应的运算,避免了FPGA中的逻辑资源的浪费,同时也可以为服务提供商更多效益。
请参考图4,图4为本发明实施例所提供的一种基于FPGA的多虚拟卡使用系统的结构图。该系统可以包括:
主机端100,用于根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息;其中,逻辑单元块为FPGA200的全部逻辑资源中的部分可单独加载的逻辑资源;
FPGA200,用于获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算。
可选的,FPGA200,具体可以用于通过检测逻辑单元块对应的任务队列,获取任务请求和逻辑单元块对应的任务队列的队列信息。
可选的,主机端100,具体可以用于根据接收的每个用户的任务请求,将每个任务请求发送到各自对应的逻辑单元块对应的任务队列中。
可选的,主机端100,还可以用于根据每个用户的授权情况,为每个用户分配各自对应的逻辑单元块。
可选的,主机端100,还可以用于根据每个用户的查询请求,为每个用户显示各自对应的逻辑单元块的配置信息;其中,配置信息包括每个用户各自对应的逻辑单元块的逻辑资源大小。
本实施例中,本发明实施例通过主机端100根据接收的用户的任务请求,生成用户对应的逻辑单元块的单元块信息,可以为确定每个用户对应的逻辑单元块的任务请求;FPGA200获取任务请求和单元块信息,根据单元块信息利用逻辑单元块进行任务请求对应的运算,可以利用每个用户对应的FPGA200根据可重配特性分割成的逻辑单元块,独立完成任务请求对应的运算,避免了FPGA200中的逻辑资源的浪费,同时也可以为服务提供商更多效益。。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的基于FPGA的多虚拟卡使用方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种基于FPGA的多虚拟卡使用方法,其特征在于,包括:
主机端根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息;其中,所述逻辑单元块为FPGA的全部逻辑资源中的部分可单独加载的逻辑资源;
所述FPGA获取所述任务请求和所述单元块信息,根据所述单元块信息利用所述逻辑单元块进行所述任务请求对应的运算。
2.根据权利要求1所述的基于FPGA的多虚拟卡使用方法,其特征在于,所述FPGA获取所述任务请求和所述单元块信息,包括:
所述FPGA通过检测所述逻辑单元块对应的任务队列,获取所述任务请求和所述逻辑单元块对应的任务队列的队列信息。
3.根据权利要求2所述的基于FPGA的多虚拟卡使用方法,其特征在于,所述主机端根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息,包括:
所述主机端根据接收的每个用户的任务请求,将每个任务请求发送到各自对应的逻辑单元块对应的任务队列中。
4.根据权利要求1至3任一项所述的基于FPGA的多虚拟卡使用方法,其特征在于,主机端根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息之前,还包括:
所述主机端根据每个用户的授权情况,为每个用户分配各自对应的逻辑单元块。
5.根据权利要求4所述的基于FPGA的多虚拟卡使用方法,其特征在于,还包括:
所述主机端根据每个用户的查询请求,为每个用户显示各自对应的逻辑单元块的配置信息;其中,所述配置信息包括每个用户各自对应的逻辑单元块的逻辑资源大小。
6.一种基于FPGA的多虚拟卡使用系统,其特征在于,包括:
主机端,用于根据接收的用户的任务请求,生成所述用户对应的逻辑单元块的单元块信息;其中,所述逻辑单元块为FPGA的全部逻辑资源中的部分可单独加载的逻辑资源;
所述FPGA,用于获取所述任务请求和所述单元块信息,根据所述单元块信息利用所述逻辑单元块进行所述任务请求对应的运算。
7.根据权利要求6所述的基于FPGA的多虚拟卡使用系统,其特征在于,所述FPGA,具体用于通过检测所述逻辑单元块对应的任务队列,获取所述任务请求和所述逻辑单元块对应的任务队列的队列信息。
8.根据权利要求7所述的基于FPGA的多虚拟卡使用系统,其特征在于,所述主机端,具体用于根据接收的每个用户的任务请求,将每个任务请求发送到各自对应的逻辑单元块对应的任务队列中。
9.根据权利要求6至8任一项所述的基于FPGA的多虚拟卡使用系统,其特征在于,所述主机端,还用于根据每个用户的授权情况,为每个用户分配各自对应的逻辑单元块。
10.根据权利要求9所述的基于FPGA的多虚拟卡使用系统,其特征在于,所述主机端,还用于根据每个用户的查询请求,为每个用户显示各自对应的逻辑单元块的配置信息;其中,所述配置信息包括每个用户各自对应的逻辑单元块的逻辑资源大小。
CN201710780626.2A 2017-09-01 2017-09-01 一种基于fpga的多虚拟卡使用方法及系统 Pending CN107491342A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710780626.2A CN107491342A (zh) 2017-09-01 2017-09-01 一种基于fpga的多虚拟卡使用方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710780626.2A CN107491342A (zh) 2017-09-01 2017-09-01 一种基于fpga的多虚拟卡使用方法及系统

Publications (1)

Publication Number Publication Date
CN107491342A true CN107491342A (zh) 2017-12-19

Family

ID=60651302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710780626.2A Pending CN107491342A (zh) 2017-09-01 2017-09-01 一种基于fpga的多虚拟卡使用方法及系统

Country Status (1)

Country Link
CN (1) CN107491342A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558250A (zh) * 2018-11-02 2019-04-02 锐捷网络股份有限公司 一种基于fpga的通信方法、设备、主机及异构加速系统
CN110597627A (zh) * 2019-08-24 2019-12-20 中国电子科技集团公司第十五研究所 基于虚拟fpga的数据库运算加速装置及加速方法
CN111143258A (zh) * 2019-12-29 2020-05-12 苏州浪潮智能科技有限公司 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823472B1 (en) * 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
CN103677916A (zh) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 一种基于fpga的在线重配置系统及方法
CN104536755A (zh) * 2014-12-29 2015-04-22 深圳市国微电子有限公司 可编程逻辑器件重构方法及装置
CN105389199A (zh) * 2015-10-21 2016-03-09 同济大学 一种基于Xen的FPGA加速器虚拟化平台及应用
CN106502935A (zh) * 2016-11-04 2017-03-15 郑州云海信息技术有限公司 Fpga异构加速系统、数据传输方法及fpga
CN106776002A (zh) * 2016-11-15 2017-05-31 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6823472B1 (en) * 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
CN103677916A (zh) * 2013-12-10 2014-03-26 中国航空工业集团公司第六三一研究所 一种基于fpga的在线重配置系统及方法
CN104536755A (zh) * 2014-12-29 2015-04-22 深圳市国微电子有限公司 可编程逻辑器件重构方法及装置
CN105389199A (zh) * 2015-10-21 2016-03-09 同济大学 一种基于Xen的FPGA加速器虚拟化平台及应用
CN106502935A (zh) * 2016-11-04 2017-03-15 郑州云海信息技术有限公司 Fpga异构加速系统、数据传输方法及fpga
CN106776002A (zh) * 2016-11-15 2017-05-31 华为技术有限公司 Fpga的虚拟化硬件架构的通信方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109558250A (zh) * 2018-11-02 2019-04-02 锐捷网络股份有限公司 一种基于fpga的通信方法、设备、主机及异构加速系统
CN110597627A (zh) * 2019-08-24 2019-12-20 中国电子科技集团公司第十五研究所 基于虚拟fpga的数据库运算加速装置及加速方法
CN110597627B (zh) * 2019-08-24 2023-07-14 中国电子科技集团公司第十五研究所 基于虚拟fpga的数据库运算加速装置及加速方法
CN111143258A (zh) * 2019-12-29 2020-05-12 苏州浪潮智能科技有限公司 一种基于Opencl的系统访问FPGA的方法、系统、设备以及介质

Similar Documents

Publication Publication Date Title
EP3748510A1 (en) Network interface for data transport in heterogeneous computing environments
EP1552409B1 (en) One-shot rdma
CN107257329B (zh) 一种数据分段卸载发送方法
CN103827842B (zh) 向控制器存储器空间写入消息
WO2016101288A1 (zh) 一种远程直接数据存取方法、设备和系统
CN105556930A (zh) 针对远程存储器访问的nvm express控制器
JP2003511777A (ja) ハードウェア実行又はオペレーティングシステム機能の加速のための装置及び方法
CN109690510A (zh) 用于将数据分发到高性能计算网络和基于云的网络中的多个接收器的多播装置和方法
CN112948149A (zh) 一种远端内存共享方法、装置、电子设备及存储介质
CN107491342A (zh) 一种基于fpga的多虚拟卡使用方法及系统
CA2242074A1 (en) System and method for remote buffer allocation and management for message passing between network nodes
US20220222016A1 (en) Method for accessing solid state disk and storage device
CN112905304B (zh) 一种虚拟机间通信方法、装置、物理主机及介质
CN114201268B (zh) 一种数据处理方法、装置、设备及可读存储介质
US9311044B2 (en) System and method for supporting efficient buffer usage with a single external memory interface
CN106557288A (zh) 一种获取打印数据的方法及装置
CN109857545A (zh) 一种数据传输方法及装置
CN113438184B (zh) 网卡的队列管理方法、装置及电子设备
CN106662895A (zh) 计算机设备和计算机设备数据读写的方法
CN109558250A (zh) 一种基于fpga的通信方法、设备、主机及异构加速系统
CN109992566A (zh) 一种文件访问方法、装置、设备及可读存储介质
CN110007877A (zh) 主机与双控存储设备间数据传输方法、装置、设备及介质
CN105786732B (zh) 数据访问方法及装置
CN114500114B (zh) 一种网络操作系统中应用的拟态数据库交互方法和装置
CN109446147A (zh) 一种网络存储设备与pcie设备的数据交互方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20171219

RJ01 Rejection of invention patent application after publication