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

文档序号:8269337阅读:1337来源:国知局
Gpu和fpga组件之间的直接通信的制作方法
【专利说明】GPU和FPGA组件之间的直接通信
[0001] 背景
[0002] 计算设备的用户已经经历了关于时钟缩放的困难,并且开发者和用户由此已经在 主流中探索并行计算。多核中央处理单元(CPU)、图形处理单元(GPU)和现场可编程门阵列 (FPGA)越来越多地被用于计算需求。
[0003] 概述
[0004] 根据一个大体方面,系统可包括位于计算设备上的一个或多个处理器以及存储可 由这一个或多个处理器执行的指令的至少一个有形计算机可读存储介质。可执行指令可被 配置成使得计算设备获得标识用于直接访问现场可编程门阵列(FPGA)的存储器的地址的 虚拟指针。此外,计算设备可启动虚拟指针到与FPGA外部的图形处理单元(GPU)相关联的 GPU驱动程序的传输。此外,计算设备可经由FPGA外部的总线接口启动GPU和FPGA之间数 据的直接传输,而无需作为中间操作来将数据存储在中央处理单元(CPU)的存储器中。
[0005] 根据另一方面,发起对在图形处理单元(GPU)和现场可编程门阵列(FPGA)之间传 输数据的请求。数据可经由FPGA外部的总线接口在GPU和FPGA之间被直接传输,而无需 作为中间操作来将数据存储在中央处理单元(CPU)的存储器中。
[0006] 根据另一方面,系统可包括图形处理单元(GPU)和现场可编程门阵列(FPGA)。系 统还可包括总线接口,该总线接口在FPGA的外部并被配置为直接在GPU和FPGA之间传输 数据,而无需作为中间操作来将数据存储在中央处理单元(CPU)的存储器中。
[0007] 提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的概念选 择。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要 求保护主题的范围。一个或多个实现的细节在以下的附图和说明书中阐述。其他特征将从 说明书和附图以及权利要求书中显而易见。
[0008] 附图
[0009] 图1是用于GPU和FPGA组件之间直接通信的示例系统的框图。
[0010] 图2是用于GPU和FPGA组件之间间接通信的示例系统的框图。
[0011] 图3是用于GPU和FPGA组件之间直接通信的示例系统的框图。
[0012] 图4是用于GPU和FPGA组件之间直接通信的示例系统的框图。
[0013] 图5是示出用于GPU和FPGA组件之间直接通信的示例系统的示例操作的流程图。
[0014] 图6是示出用于GPU和FPGA组件之间直接通信的示例系统的示例操作的流程图。
[0015] 图7是示出用于GPU和FPGA组件之间直接通信的示例系统的示例操作的流程图。
【具体实施方式】
[0016] I.介绍
[0017] 多核中央处理单元(CPU)、图形处理单元(GPU)和现场可编程门阵列(FPGA)可被 用于填充时钟速率和预期性能增加之间遗留的计算间隙。这些组件类型中的每一个可提供 稍微不同的属性。例如,CPU可向编程和本地浮点支持的容易性提供复杂且麻烦的存储器 系统以及显著的操作系统开销。
[0018] 例如,GPU可向细粒度单指令、多数据(SMD)处理和本机浮点提供流存储器体系 架构和更困难的编程环境。例如,FPGA可提供处理、控制和对接方面的有利的灵活度,同时 伴有稍微麻烦的浮点支持的更高的编程困难和更低的时钟速率。
[0019] 图形处理单元(GPU)已经被用于图形应用许多年,诸如游戏和计算机辅助设计。 近来,GPU已经被用于其它任务,诸如图形处理、搜索和其它更一般的应用。现场可编程门 阵列(FPGA)已经被用于各种专用计算任务。例如,虽然FPGA和GPU两者均可被视为专用 处理器,但是每一方可在某些事物上比其它方更好地运作。由此,例如,在两者之间能够实 现直接通信路径可以是有利的,该路径允许每一方执行其最适应的任务,并接着将计算任 务转交到另一方以供进一步处理。
[0020] 作为另一示例,在开发过程中算法从一方移植到另一方有些时候可以是期望的, 因为计算、金钱或其它压力影响期望的实现。因此,能够将数据直接从一方发送到另一方, 使得移植过程可被增量式地处理可以是有利的,从而允许算法部分地在FPGA上运行并部 分地在GPU上运行。
[0021] 例如,这个传输可基于将主个人计算机(PC)使用为用于数据的中间停止点来被 实现。然而,这种类型的传输可以是相对慢的、更资源密集的且可能不能扩展到较大的系 统。在此讨论的示例技术可提供直接通信,而无需必须通过主PC的主存储器。例如,用于 提供FPGA和GPU之间直接通信的技术可提供更低的等待时间传输、更高的带宽传输和/或 更高的聚集系统带宽。
[0022] 在此讨论的示例实施例可提供用于直接在GPU和FPGA之间通信的能力。例如, GPU可使用PCIe (快速外围部件互连)或快速PCI来与FPGA直接通信,PCIe或快速PCI可 以是例如在PC平台中提供高带宽连接的总线接口。
[0023] II.示例操作环境
[0024] 在此讨论的特征被提供为可用数据处理领域的技术人员所理解的多种不同方式 来实现,而不背离在此的讨论的精神。这样的特征被解释为仅为示例实施例特征,并且不旨 在被解释为限制到仅为那些详细的描述。
[0025] 如进一步在此讨论的,图1是用于GPU和FPGA组件之间直接通信的系统100的框 图。如图1中显示的,系统100可包括位于计算设备上的一个或多个处理器。系统100可包 括存储可由一个或多个处理器执行的指令的至少一个有形计算机可读存储介质。系统100 可包括至少一个中央处理单元(CPU) 102。
[0026] 系统100可包括图形处理单元(GPU) 104和现场可编程门阵列(FPGA) 106。系统 100还可包括总线接口 108,该总线接口 108在FPGA 106的外部并被配置为直接在GPU 104 和FPGA 106之间传输数据,而无需作为中间操作来将数据存储在中央处理单元(CPU)的存 储器110中。根据一示例实施例,总线接口 108可包括快速外围部件互连(PCIe)接口。根 据一示例实施例,传输数据可包括经由PCIe交换机在GPU 104和FPGA 106之间直接传输 数据。例如,PCIe交换机可被包括在PCIe接口中。
[0027] 根据一示例实施例,FPGA驱动程序112可被配置成生成标识用于直接访问FPGA 106的存储器116的地址的虚拟指针114。例如,存储器116可包括位于FPGA 106外部的一 个或多个存储器设备、可内部地位于FPGA 106上的存储器或它们的任意组合。与GPU 104 相关联的GPU驱动程序118可被配置成经由与在FPGA 106外部的GPU 104相关联的应用 编程接口(API) 120来获得虚拟指针114。
[0028] 在这个上下文中,"虚拟指针"可指可表示电子设备中的地址的值。虚拟指针可被 生成为这样一种表示,并可被解释成(例如,用于可例如基于虚拟存储器安排被存储在不 连续的块中的数据的)一个或多个物理地址。
[0029] 与GPU 104相关联的API 120可被配置成基于虚拟指针114来生成FPGA的存储 器116中的一个或多个位置的一个或多个物理地址122。
[0030] 根据一示例实施例,数据可基于FPGA 106中的存储器116中的一个或多个位置的 一个或多个物理地址122被从GPU 104的存储器124传输到FPGA 106的存储器116。根据 一示例实施例,数据可基于FPGA 106中的存储器116中的一个或多个位置的一个或多个物 理地址122被从FPGA 106的存储器116传输到GPU 104的存储器124。
[0031] 例如,存储
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1