用于GPU发起的通信的网络分组模板化制造技术

技术编号:27230049 阅读:49 留言:0更新日期:2021-02-04 11:55
公开了用于执行图形处理单元(GPU)发起的通信的网络分组模板化的系统、设备以及方法。中央处理单元(CPU)根据模板创建网络分组,并且用静态数据填充所述网络分组的第一字段子集。接下来,所述CPU将所述网络分组存储在存储器中。GPU发起内核的执行,并且在所述内核完成执行之前在所述内核内检测网络通信请求。响应于此确定,所述GPU用运行时数据填充所述网络分组的第二字段子集。然后,所述GPU生成所述网络分组已准备好被处理的通知。网络接口控制器(NIC)响应于检测到所述通知而使用从第一字段子集和从第二字段子集检索到的数据来处理网络分组。络分组。络分组。

【技术实现步骤摘要】
【国外来华专利技术】用于GPU发起的通信的网络分组模板化

技术介绍

[0001]本专利技术是在美国劳伦斯
·
利弗莫尔国家安全局的PathForward项目(美国能源部授予的主要合同编号DE-AC52-07NA27344,分包合同编号B620717)的政府支持下完成的。美国政府具有本专利技术中的某些权利。
[0002]相关技术说明
[0003]通用处理器(诸如中央处理单元(CPU))通常执行软件应用程序的输入/输出(I/O)操作。在包括多个处理器的系统中,CPU可能是唯一可以生成网络消息的处理器。除了通用处理器之外,该系统还可以包括数据并行处理器。数据并行处理器具有高度并行的执行架构。数据并行处理器可以包括图形处理单元(GPU)、数字信号处理器(DSP)等等。数据并行处理器在等待CPU代表其来协调网络通信时会导致计算延迟。在具有CPU和GPU的计算系统中,CPU通常被称为“主机”。在这些系统中,就网络操作而言,GPU是二等公民。这限制了GPU发起网络操作的能力,并且要求CPU参与GPU启动的任何网络操作。使用主机为GPU生成网络消息可能会涉及从GPU到主机以及从主机到网络接口的若干次背对背往返,从而导致性能降低。
附图说明
[0004]通过结合附图参考以下描述,可以更好地理解本文描述的方法和机制的优点,在附图中:
[0005]图1是计算系统的一个实现方式的框图。
[0006]图2是计算系统的另一实现方式的框图。
[0007]图3示出了将网络控制路径从CPU卸载到GPU的一个实现方式的时序图。
[0008]图4示出了用于存储网络分组模板的队列的一个实现方式的图。
[0009]图5示出了网络分组模板的一个实现方式的图。
[0010]图6示出了网络分组模板的另一实现方式的图。
[0011]图7是示出用于创建和使用网络分组模板的方法的一个实现方式的通用流程图。
[0012]图8是示出用于确定何时将网络分组模板添加到队列中的方法的一个实现方式的通用流程图。
[0013]图9是示出用于确定何时将网络分组模板添加到队列中的方法的另一实现方式的通用流程图。
具体实施方式
[0014]在以下描述中,阐述了众多具体细节以提供对本文所呈现方法和机制的透彻理解。然而,本领域普通技术人员应认识到,可在没有这些具体细节的情况下实践各种实现方式。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文描述的方法。应当理解,为了说明的简单和清楚起见,附图中所示的元件不一定按比例绘制。例如,一些元件的尺寸可相对于其他元件被放大。
[0015]本文公开了用于实现网络分组模板化的各种系统、装置以及方法。第一处理器(例
如,中央处理单元(CPU))根据模板创建网络分组,并且用静态数据填充网络分组的第一字段子集。接下来,第一处理器将网络分组存储在存储器中。第二处理器(例如,图形处理单元(GPU))发起内核的执行并且在内核完成执行之前检测网络通信请求。响应于检测到网络通信请求,第二处理器用运行时数据填充网络分组的第二字段子集。然后,第二处理器生成网络分组已准备好被处理的通知。网络接口控制器(NIC)响应于检测到所述通知而使用从第一字段子集和从第二字段子集检索到的数据来处理网络分组。
[0016]在一个实现方式中,循环缓冲器被维持在可由第一和第二处理器访问的存储器中。循环缓冲器存储多个网络分组。在一个实现方式中,第一处理器周期性地检查循环缓冲器的状态,并且如果现有网络分组的数目低于阈值,则第一处理器将一个或多个网络分组添加到循环缓冲器。当将网络分组添加到循环缓冲器时,第一处理器填充被添加到循环缓冲器的每个网络分组的第一字段子集。在一个实现方式中,第一字段子集包括网络控制位字段和存储器访问密钥字段。在一个实现方式中,第二字段子集包括源偏移字段、目的地偏移字段以及操作类型字段。
[0017]现在参考图1,示出了计算系统100的一个实现方式的框图。在一个实现方式中,计算系统100至少包括处理器105A至105N、输入/输出(I/O)接口120、总线125、一个或多个存储器控制器130、网络接口控制器(NIC)135和一个或多个存储器装置140。在其他实现方式中,计算系统100包括其他部件并且/或者计算系统100以不同方式布置。处理器105A至105N表示系统100中包括的任何数目的处理器。在一个实现方式中,处理器105A是通用处理器,诸如中央处理单元(CPU)。在一个实现方式中,处理器105N是具有高度并行架构的数据并行处理器。数据并行处理器包括图形处理单元(GPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)等等。在一些实现方式中,处理器105A至105N包括多个数据并行处理器。
[0018]一个或多个存储器控制器130表示可由处理器105A至105N和耦接到I/O接口120的I/O装置(未示出)访问的任何数目和类型的存储器控制器。一个或多个存储器控制器130耦接到任何数目和类型的一个或多个存储器装置140。一个或多个存储器装置140表示任何数目和类型的存储器装置。例如,一个或多个存储器装置140中的存储器的类型包括动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、NAND闪存存储器、NOR闪存存储器、铁电随机存取存储器(FeRAM)等。在一个实现方式中,给定的存储器装置140包括循环缓冲器150,以用于存储由第一处理器105A根据网络分组模板生成的新创建的网络分组。第一处理器105A用静态信息填充每个新创建的网络分组。在一个实现方式中,给定的存储器装置140在第二处理器105N本地。当第二处理器准备好发起网络传输时,第二处理器105N用动态的运行时信息更新存储在循环缓冲器150中的网络分组,并且然后第二处理器105N通知NIC 135网络分组已准备好被处理。NIC 135处理网络分组并且在网络145上执行所请求的网络通信。如本文所使用的,网络分组是具有多个字段的格式化的数据结构,其中该数据结构由第一处理器105A创建并且由第二处理器105B更新。换句话说,网络分组是格式化的数据结构,其具有被第一处理器105A写入的第一字段子集以及被第二处理器105N写入和/或更新的第二字段子集。
[0019]I/O接口120表示任何数目和类型的I/O接口(例如,外围部件互连(PCI)总线、PCI扩展(PCI-X)、PCIE(PCI快速)总线、吉比特以太网(GBE)总线、通用串行总线(USB))。各种类
型的外围装置(未示出)耦接到I/O接口120。此类外围装置包括(但不限于)显示器、键盘、鼠标、打印机、扫描仪、操纵杆或其他类型的游戏控制器、媒体记录装置、外部存储装置、网络接口卡等。网络接口控制器(NIC)135跨网络145接收和发送网络消息。在一个实现方式中,给定的处理器105N生成用于NIC 135处理网络分组的请求。在一个实现方式中,NIC 135在不涉及处理器105A的情况下处理由本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种系统,其包括:存储器;第一处理器,所述第一处理器被配置为:根据模板创建网络分组,并且填充所述网络分组的第一字段子集;以及将所述网络分组存储在所述存储器中;第二处理器,所述第二处理器被配置为:发起内核的执行;响应于在所述内核内检测到网络通信请求并且在所述内核完成执行之前:填充所述网络分组的第二字段子集;以及生成所述网络分组已准备好被处理的通知;网络接口控制器,所述网络接口控制器被配置为在所述内核完成执行之前响应于检测到所述通知来处理所述网络分组。2.如权利要求1所述的系统,其中所述网络接口控制器使用从所述第一字段子集和从所述第二字段子集检索到的数据来处理所述网络分组。3.如权利要求1所述的系统,其中所述第一字段子集包括静态数据,并且其中所述第二字段子集包括运行时数据。4.如权利要求1所述的系统,其中所述第一字段子集包括网络控制位字段和存储器访问密钥字段,并且其中所述第二字段子集包括源偏移字段、目的地偏移字段以及操作类型字段。5.如权利要求1所述的系统,其中所述第一处理器被配置为在所述第二处理器检测到所述网络通信请求之前,创建所述网络分组并且填充网络分组模板的所述第一字段子集。6.如权利要求1所述的系统,其中所述第一处理器被配置为仅响应于检测到第一条件而根据模板创建所述网络分组并且将所述网络分组存储在队列上。7.如权利要求6所述的系统,其中所述第一条件是所述队列的占用水平低于阈值。8.一种方法,其包括:由第一处理器根据模板创建网络分组,并且填充所述网络分组的第一字段子集;由所述第一处理器将所述网络分组存储在存储器中;在第二处理器上发起内核的执行;响应于在所述内核内检测到网络通信请求并且在所述内核完成执行之前:由所述第二处理器填充所述网络分组的第二字段子集;由所述第二处理器生成网络分组模板已准备好被处理的通知;以及由网络接口控制器响应于检测到所述通知并且在所述内核完成在所述第二处理器上的执行之前处理所述网络分组模板。9.如权利要求8所述的方法,其还包括:使用...

【专利技术属性】
技术研发人员:卡勒德
申请(专利权)人:超威半导体公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利