Gpu和fpga组件之间的直接通信的制作方法_3

文档序号:8269337阅读:来源:国知局
110中,尤其使得能 够实现这些不同的计算元件(即,GPU 104和FPGA 106)之间更高效的通信,在此可被称为 直接GPU-FPGA传输。
[0055] 根据一示例实施例,Speedy (快速)PCIe核是可例如与XILINX FPGA-起使用的 FPGA核。例如,Speedy PCIe核可构建在XILINX PCIe IP上以向FPGA设计者提供到PCIe 总线的类似于存储器的接口,该接口可抽象出PCIe的寻址、传输大小和信息分包规则。例 如,分发可包括VERILOG使得这个存储器接口可变成高速DMA引擎,该高速DMA引擎与 MICROSOFT WINDOWS驱动程序一起可提供PC的系统存储器和位于FPGA本地的DDR3 (双倍 数据速率类型3)之间PCIe总线的全部带宽潜力。
[0056] Speedy PCIe设计可提供最小系统影响,同时递送最大性能。数据传输可在被维 护在主机的系统存储器中的数个传输描述符记录(例如,图1的描述符记录128)的设置后 经由跨PCIe总线的单个写从CPU 102启动。由于系统存储器具有较低的等待时间以及用 于CPU的较高的带宽,所以这种安排从处理器卸载工作并可最终通过避免操作系统开销来 广生更尚的性能。
[0057] 最小化CPU启动的跨PCIe总线的读和写的数量还可以是有帮助的,因为在实践 中,用于单个4字节的写的执行时间通常在250ns到1 y s的范围中,而读通常在1 y s到 2. 5 y s的范围中。这种由Speedy PCIe核提供的开销节省可直接产生较低的等待时间传 输。
[0058] 在GPU侧上,硬件功能可被隐藏在不透明的、厂商提供的驱动程序后。这种API常 规地可仅支持GPU和CPU存储器之间的传输,而非GPU存储器和任意设备的存储器之间的 传输。然而,专业级QUADR0和TESLA产品线上的NVIDIA计算机统一设备体系结构(CUDA) 库提供对等存储器传输工具。CUDA是由NVIDIA开发的用于图形和通用处理的并行计算体 系结构。这种对等存储器传输工具可能够实现GPU-GPU数据传输,但是不可显式地支持涉 及任意PCIe设备(诸如FPGA开发板)的事务。例如,在这样的工具中,GPU可在其所涉及 的任意传输中充当总线主机。
[0059] 如果GPU104充当总线主机,则它遵循FPGA106充当从机以使得能够实现直接 GPU-FPGA数据路径。FPGA106接着将其存储器(芯片上或其它方式)映射到PCIe总线上, 使得GPU104可直接按需对它读取或写。这种安排产生在以下显示的表I中概览的针对每 种传输类型的主机/从机关系。
【主权项】
1. 一种系统,包括: 位于计算设备上的一个或多个处理器; 存储可由所述至少一个或多个处理器执行的指令的至少一个有形计算机可读存储介 质,所述可执行指令被配置成使得所述计算设备: 获得标识用于直接访问现场可编程口阵列(FPGA)的存储器的地址的虚拟指针; 启动所述虚拟指针到与所述FPGA外部的GPU相关联的图形处理单元佑PU)驱动程序 的传输;化及 经由所述FPGA外部的总线接口启动在所述GPU和所述FPGA之间数据的直接传输,而 无需作为中间操作来将所述数据存储在中央处理单元(CPU)的存储器中。
2. -种方法,包括: 发起对在图形处理单元(GPU)和现场可编程口阵列(FPGA)之间传输数据的请求;W及 经由所述FPGA外部的总线接口在所述GPU和所述FPGA之间直接传输所述数据,而无 需作为中间操作来将所述数据存储在中央处理单元(CPU)的存储器中。
3. 一种系统,包括: 图形处理单元(GPU); 现场可编程口阵列(FPGA) 及 总线接口,所述总线接口在所述FPGA的外部并被配置为直接在所述GPU和所述FPGA 之间传输数据,而无需作为中间操作来将所述数据存储在中央处理单元(CPU)的存储器 中。
4. 如权利要求3所述的系统,其特征在于: 所述总线接口包括快速外围部件互连(PCIe)接口。
5. 如权利要求3所述的系统,其特征在于,还包括: FPGA驱动程序,所述FPGA驱动程序被配置成生成标识用于直接访问所述FPGA的存储 器的地址的虚拟指针;W及 GPU驱动程序,所述GPU驱动程序与所述GPU相关联并被配置成经由与所述FPGA外部 的所述GPU相关联的应用编程接口(API)来获得所述虚拟指针。
6. 如权利要求5所述的系统,其特征在于: 与所述GPU相关联的所述API被配置成基于所述虚拟指针来生成所述FPGA的存储器 中的一个或多个位置的一个或多个物理地址。 所述数据的传输包括W下中的一个或多个: 基于所述FPGA的存储器中的一个或多个位置的一个或多个物理地址从所述GPU的存 储器到所述FPGA的存储器的所述数据的传输,或 基于所述FPGA的存储器中的一个或多个位置的一个或多个物理地址从所述FPGA的存 储器到所述GPU的存储器的所述数据的传输。
7. 如权利要求6所述的系统,其特征在于: 所述数据的传输包括W下中的一个或多个: 基于所述FPGA的存储器中的一个或多个位置的一个或多个物理地址、基于从所述GPU 的存储器到所述FPGA的存储器的直接存储器存取值MA)传输从所述GPU的存储器到所述 FPGA的存储器的所述数据的传输,或 基于所述FPGA的存储器中的一个或多个位置的一个或多个物理地址、基于从所述 FPGA的存储器到所述GPU的存储器的DMA传输从所述FPGA的存储器到所述GPU的存储器 的所述数据的传输。
8. 如权利要求3所述的系统,其特征在于,还包括: GPU驱动程序,所述GPU驱动程序与所述GPU相关联并被配置成生成标识用于直接访问 所述FPGA外部的所述GPU的存储器的地址的虚拟指针;W及 FPGA驱动程序,所述FPGA驱动程序与所述FPGA相关联并被配置成经由与所述FPGA相 关联的API来获得所述虚拟指针。
9. 如权利要求8所述的系统,其特征在于: 与所述FPGA相关联的所述API被配置成基于所述虚拟指针来生成所述GPU的存储器 中的一个或多个位置的一个或多个物理地址;W及 所述数据的传输包括W下中的一个或多个: 基于所述GPU的存储器中的一个或多个位置的一个或多个物理地址从所述FPGA的存 储器到所述GPU的存储器的所述数据的传输,或 基于所述GPU的存储器中的一个或多个位置的一个或多个物理地址从所述GPU的存储 器到所述FPGA的存储器的所述数据的传输。
10. 如权利要求9所述的系统,其特征在于: 所述数据的传输包括W下中的一个或多个: 基于所述GPU的存储器中的一个或多个位置的一个或多个物理地址、基于从所述FPGA 的存储器到所述GPU的存储器的直接存储器存取值MA)传输从所述FPGA的存储器到所述 GPU的存储器的所述数据的传输,或 基于所述GPU的存储器中的一个或多个位置的一个或多个物理地址、基于从所述GPU 的存储器到所述FPGA的存储器的DMA传输从所述GPU的存储器到所述FPGA的存储器的所 述数据的传输。
【专利摘要】系统可包括图形处理单元(GPU)和现场可编程门阵列(FPGA)。系统还可包括总线接口,该总线接口在FPGA的外部并被配置为直接在GPU和FPGA之间传输数据,而无需作为中间操作来将数据存储在中央处理单元(CPU)的存储器中。
【IPC分类】G09G5-36, G06F3-14
【公开号】CN104583933
【申请号】CN201380044351
【发明人】R·比特那, E·S·卢夫
【申请人】微软公司
【公开日】2015年4月29日
【申请日】2013年8月16日
【公告号】EP2888655A1, US20140055467, WO2014031459A1
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1