一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用来卸载工作负载执行的技术的制作方法

2023-04-05 08:08:45 来源:中国专利 TAG:

用来卸载工作负载执行的技术


背景技术:

1.云服务提供商(csp)等数据中心运营商提供各种加速器技术,以加速高性能计算(hpc)和云计算环境等计算环境中的工作负载。这些加速器可以配置为执行特殊目的计算。示例加速器技术是现场可编程门阵列(fpga),它包括可以进行编程以履行特定任务的逻辑门阵列。另一种加速器技术使用专用集成电路(asic)来执行特定任务。
2.可以通过以下方式加速并非在中央处理器(cpu)核上执行的专用硬件加速器中的软件或服务功能:操作系统(os)将硬件加速器枚举为输入/输出(i/o)装置,并直接使用cpu指令(如英特尔
®
架构指令movdir和enqcmd)或通过使用内核模块和驱动器应用程序接口(api)与硬件加速器交互来将功能任务卸载到i/o装置。在当前的部署中,硬件加速是以非此即彼的方式启用的,由此,应用可使用硬件加速器(如果存在的话),而如果硬件加速器不存在,则回退到由cpu执行的软件来执行或由os部署到软件模拟的硬件上。
3.在通过云和边缘基础设施提供的服务中,应用部署的一个关键方面是服务从一个物理基础设施到另一物理基础设施的扩缩和迁移。对服务加速的硬件依赖性在目标平台上的硬件加速器可用性方面提出了挑战,诸如当通过迁移或在目标平台上重新实例化(例如,服务扩缩)来转移服务时。应用部署可能会受限于支持硬件加速的平台。这些限制可能会妨碍将服务迁移到不包括该服务使用的硬件加速器和相关扩展性能保证的平台。因此,由于平台上硬件加速器的不可用性,可能会针对cpu执行而妥协服务性能。
4.图1描绘了示例服务迁移场景,其中在源平台100上执行的服务应用、容器和虚拟机(vm)被迁移到不支持在这些服务应用、容器和vm的源平台处曾经支持的那种硬件加速的目标平台150。例如,在该示例中,源平台100提供以下固定功能加速器:用于加密和认证的快速协助技术(qat)、用于数据复制的数据流传输加速器(dsa)和用于工作负载管理的硬件队列管理器(hqm)。在该示例中,服务使用qat在源平台100执行操作。然而,服务被迁移到目标平台150,但是目标平台150不包括qat来为该服务执行加密操作,并且加密操作由处理器(例如,cpu)执行,这可能降低加密操作的性能并且降低cpu执行其他操作的可用性。
附图说明
5.图1描绘了示例服务迁移场景。
6.图2描绘了示例平台。
7.图3描绘了加速器配置的示例序列。
8.图4描绘了加速器配置的示例序列。
9.图5描绘了示例数据库。
10.图6描绘了示例系统。
11.图7描绘了示例过程。
12.图8描绘了系统。
具体实施方式
13.云原生部署应用于数据中心和边缘基础设施。此外,应用对硬件加速器的依赖存在于云应用中,也适用于客户端和物联网(iot)基础设施。异构硬件加速器可用于此类环境。当前和未来的云应用被实施为微服务,其中应用的功能块由分布在多个平台上的多个容器和vm(表示为服务)组成。为了在服务迁移期间保持加速功能的连续性,一些示例使用存在于目标平台中的可编程加速器装置来执行源平台上的固定功能加速器装置的操作。服务迁移的各种示例包括谷歌vm迁移、实时迁移等。可编程加速器装置可以在执行迁移或在目标平台上激活迁移的服务之前进行重配置,从而即使是在目标平台上不存在特定的专用硬件加速器时也能保持硬件上的加速连续性。
14.一些示例平台包括目标平台上的一个或多个加速器装置,所述一个或多个加速器装置被实施为现场可编程门阵列(fpga),可以被配置为执行许多不同的操作。当平台中没有引导或迁移的服务和应用所请求的可用固定功能硬件加速器时(由于不能访问或不存在或不具有执行另一操作的能力),可选择可编程加速器来执行该固定功能硬件加速器的操作,以尝试避免使用中央处理单元(cpu)来执行这些操作,回退以将操作卸载到cpu仅软件模式。因此,迁移的应用和服务可以在服务迁移期间维持服务的连续性。在迁移过程中,先前使用的固定或可编程功能加速器的硬件状态可以转移到目标可编程加速器,以及用于启用可编程加速器的重配置以执行该固定功能加速器的操作的驱动器。至少一个fpga的配置可以使用存储在库中的二进制可执行文件进行。协调器或其他管理软件或硬件可以使至少一个fpga在服务迁移之前、期间或完成之后预加载二进制文件。目标平台上可编程加速器的可用性可有助于满足工作负载的服务等级协议(sla)。
15.在一些示例中,为了对应用进行配置以在目标平台上执行,可能需要进行一些更改,诸如硬件加速器特定库(例如,静态或动态)、驱动器以及硬件交互,诸如初始化、用于作业提交的应用程序接口(api)等。一些示例允许在没有一个或多个此类更改的情况下迁移或引导应用,并在目标平台上使用硬件加速器。在目标平台上,应用可以与硬件加速器特定驱动器交互,以向可编程加速装置提交工作负载请求。
16.本文描述的示例可以结合应用、虚拟机、容器、微服务或其他软件的实例化或引导来使用,而不仅仅是虚拟机或容器的迁移。
17.图2描绘了示例平台。平台200可以表示源平台或目标平台的配置。源平台可以执行迁移到目标平台的服务203。在一些示例中,平台200可以表示基础设施处理单元(ipu)或数据处理单元(dpu)的配置。尽管未描绘,但是装置到装置的通信可以使用母板迹线或其他传导信号传输技术以及专有或标准协议。
18.处理器202-0至202-a(其中a是1或更大的整数)中的一个或多个可以包括能够执行指令的执行核或计算引擎。核可以访问其自己的高速缓存和只读存储器(rom),或者多个核可以共享高速缓存或rom。各核可以是同构和/或异构装置。可以使用任何类型的处理器间通信技术,诸如但不限于消息传递、处理器间中断(ipi)、处理器间通信等。核可以以任何类型的方式连接,诸如但不限于总线、环或网。核可以通过互连装置耦合到系统代理(非核)。系统代理可以包括共享高速缓存,该共享高速缓存可以包括任何类型的高速缓存(例如,1级、2级或末级高速缓存(llc))。系统代理可以包括以下一个或多个:存储器控制器、共享高速缓存、高速缓存一致性管理器、算术逻辑单元、浮点单元、核或处理器互连装置、或者
总线或链路控制器。系统代理或非核可以提供以下一个或多个:直接存储器访问(dma)引擎连接、非高速缓存一致的主机连接、各核之间的数据高速缓存一致性和仲裁高速缓存请求、或高级微控制器总线架构(amba)功能。系统代理或非核可以管理用于接收和传输结构以及存储器控制器的优先级和时钟速度。
19.核可以支持一个或多个指令集(例如,x86指令集(带有已经添加了较新版本的一些扩展);加利福尼亚州桑尼维尔的mips技术公司的mips指令集;加利福尼亚州桑尼维尔的arm控股有限公司的高级risc机器(arm)指令集(带有可选的额外扩展,如neon),包括本文所述的(一个或多个)指令。除了使用cpu之外或者作为使用cpu的代替,可以使用xpu或xpu。xpu可以包括以下一个或多个:图形处理单元(gpu)、通用gpu(gpgpu)、现场可编程门阵列(fpga)、加速处理单元(apu)、加速器或其他处理器。
20.在一些示例中,处理器202-0可以执行服务203。服务203可以被实施为应用、一个或多个微服务、虚拟机(vm)内应用、容器内应用或其他实施方式。尽管未描绘,但是各种软件(例如,操作系统(os)、驱动器、应用程序接口(api)等)可以用于提供服务203和其他装置之间的通信。多个服务可以在处理器202-0至202-a中的一个或多个上执行。服务203可以请求加速器210-0至210-b(其中b是1或更大的整数)中的一个或多个执行操作。加速器210-0至210-b可以包括固定和/或可编程装置,包括图形处理单元(gpu)、fpga、计算空间阵列和专用集成电路(asic)中的一个或多个。
21.处理器202-0至202-a中的一个或多个可经由总线或其他装置接口技术(诸如与外围组件互连高速(pcie)、计算高速链路(cxl)一致的装置接口)访问加速器210-0至210-b中的一个或多个。参见例如外围组件互连高速(pcie)基本规范1.0(2002),以及更早版本、更晚版本及其变型。参见例如计算高速链路(cxl)规范修订版2.0,版本0.7(2019),以及更早版本、更晚版本及其变型。在一些示例中,加速器210-0至210-b中的一个或多个可以是非核或系统代理的一部分。
22.例如,在加速器是asic并可用于执行操作的情况下,可以选择asic加速器来执行操作。操作的各种示例包括但不限于:压缩、散列/认证功能、加密、解密或其他操作。在asic加速器不能及时完成操作的情况下,操作可以迁移到在加速器210-0至210-b中的另一asic加速器和/或fpga加速器上执行。在一些示例中,加速器技术的选择顺序可以是可用asic加速器之后是可用fpga加速器。
23.存储器204可以存储配置文件208的数据库206或加速器210-0至210-b中的一个或多个加速器的指定要执行的操作的参数。例如,配置文件208可以配置可编程加速器以执行使用asic技术实施的加速器的操作。数据库206可以存储加速器210-0至210-b中的可编程加速器装置的配置。配置文件208可以包括可执行二进制文件、内核或指令,其可以使得部分地配置硬件卸载装置,该硬件卸载装置使得加速器装置执行一个或多个操作。加速器装置的部分重配置可以重配置加速器装置的操作,但是保留到加速器装置的装置接口链路(例如,pcie链路),并且加速器装置不需要进行功率回收以执行重配置的操作,尽管加速器装置可以进行功率循环。在一些示例中,数据库206的子集或严格子集可以存储在远程存储器或存储装置中,并且平台200可通过网络访问。部分重配置的示例在以下文献中描述:例如,fukui等人的“用于英特尔fpga的具有配置数据压缩的自部分重配置框架”,复杂、智能和软件密集型系统会议,springer,cham,2019;以及khor等人的“使用部分重配置评估基于
fpga的qspi闪存访问”,2019年第七届国际智能计算和通信会议(icscc),电气和电子工程师协会(ieee)2019。
24.协调器可以用配置文件208创建和填充数据库206。在gpu的情况下,gpu和硬件加速器特定的二进制配置文件208可以在部署之前生成,并在数据库206中维护,使得当需要时,gpu可以被编程为提供专用硬件加速器的服务。
25.在一些示例中,可以存储应用、虚拟机、容器、微服务或其他软件的多个二进制文件,并且该多个二进制文件可以可用于在被选择来执行操作的特定硬件装置上复制和执行,所述特定硬件装置诸如可编程加速器(例如,fpga)、图形处理单元(gpu)和/或中央处理单元(cpu)。
26.在一些示例中,如本文所述,执行服务203的操作的加速器210-0的装置上下文212-0可以结合服务203到另一平台(例如,目标平台)的迁移而复制到目标平台,并且配置加速器装置的状态以匹配服务203在服务203的迁移之前使用的加速器装置的状态。
27.目标平台上的(一个或多个)加速器装置可被配置为使用可在目标平台处访问的配置文件(诸如从存储器204或通过另一存储器装置)来执行源平台上的(一个或多个)加速器装置的操作。注意,如果多个加速器正在执行由服务203卸载的操作,则该多个加速器的多个装置上下文可以复制到目标平台,并且配置一个或多个加速器装置,以供服务203在服务203迁移之后使用。注意,源平台上的加速器210-0可以是固定或可编程加速器,并且在服务203迁移之后由服务203使用的加速器可以是固定或可编程加速器。
28.在一些示例中,多级加速器平台可以是可用的(例如,加速器池220和230)。在一些示例中,加速器池210是与加速器池220或230的级别不同的级别(例如,更高或更低)。在一些示例中,加速器池220可以包括比与加速器池230相关联的加速器装置230-0至230-d更快地执行操作的加速器装置220-0至220-c。加速器装置220-0至220-c和230-0至230-d可以被实施为固定或可编程加速器装置。在一些示例中,加速器池220和230可通过网络或经由装置接口来访问。可以基于服务的级别或优先级或从服务卸载的操作的级别或优先级来选择加速器池,以便为较高级别的或较高优先级的服务或卸载操作选择比较低级别的或较低优先级的服务或卸载操作执行起来更快的加速器池。
29.各种示例部分地配置要由服务203使用的目标平台上的一个或多个加速器装置。协调器可以确定何时要迁移服务203以及要将服务203迁移到服务器或数据中心或多个数据中心中的多个可用目标平台中的哪个目标平台。迁移服务203的条件可以包括以下一个或多个:源平台处断电或故障、确定源平台不能在适用的服务级别协议(sla)参数内执行服务203并且另一平台(例如,目标平台)可以根据适用的sla参数执行服务203。在一些示例中,ipu或dpu可以选择目标平台和供目标平台处使用的加速器。
30.网络接口装置214可以用于迁移服务203、将配置文件208复制到另一平台、将装置上下文212-0复制到另一平台或装置以及复制其他信息。网络接口装置214可以被实施为以下一个或多个:网络接口控制器(nic)、智能nic、路由器、交换机、转发元件、基础设施处理单元(ipu)或数据处理单元(dpu)。
31.图2的系统的示例操作可以如结合图3描述的那样,其中图2的系统是目标平台。目标平台350的卸载池358可以包括一个或多个可配置的卸载硬件装置,包括卸载硬件370,以及一个或多个加速器装置。在(1)处,在发起迁移的实体352从源平台300到目标平台350的
迁移时或在这之前,协调器310可以确定在源平台300上为迁移的实体352执行操作的固定功能硬件加速器在目标平台350上不可用,并且请求重配置卸载硬件370以提供要由迁移的实体352请求的功能或操作。卸载硬件370可以是可编程和可重配置的加速器装置。注意,迁移的实体352不一定先前已在源平台300上被执行,而是可以被实例化以首先在目标平台350上执行。
32.在(2)处,作为迁移的实体352的迁移的一部分,源平台350可以向目标平台350提供装置上下文360,从而可以维持来自迁移的实体352的工作负载的连续性。例如,装置上下文可以包括工作负载队列、队列大小、加速器的应用特定设置等。在(3)处,数据库320可以向卸载硬件提供配置文件,诸如部分重配置二进制文件。
33.协调器310可以使用vsphere、vcenter、openstack和kubernete等的管理工具来配置目标平台350,以配置可配置卸载硬件370来执行特定操作。例如,卸载池358中的装置的硬件能力可以通过硬件能力共享框架暴露给协调器310。目标平台350及其os可以准许协调器310管理卸载池358中的一个或多个加速器,以允许至少部分重配置。协调器310还可以使数据库320插入或移除配置文件,并使配置文件从数据库320复制到目标平台350。可以提供框架来启用加速功能升级、安全数据和重配置二进制文件管理以及平台的硬件资源跟踪,以实现工作负载的负载平衡,这可以用于增强整体服务质量。
34.在(4)和(5)处,卸载硬件驱动器362可以配置或启用/禁用卸载硬件370。例如,在应用装置上下文时,管理事务可以发生在卸载硬件370和卸载硬件驱动器362之间。在(6)处,迁移的实体352可以向卸载硬件370发出卸载操作的请求。软件抽象层可以为迁移的实体352提供应用程序接口(api),以与加速器驱动器356和卸载硬件370交互。加速器驱动器356可以将来自迁移的实体352的作业提交提供给卸载硬件370,或者如果可用的话,提供给卸载池358中的固定功能加速器装置以执行该作业。
35.图4结合vm的迁移描绘了硬件卸载装置的示例配置。尽管该示例是针对vm示出的,但是该示例可以应用于容器、服务、微服务、处理器或其他软件从在源平台400上执行迁移到在目标平台450上执行。在一些示例中,在401期间,当vm在源平台400上执行时,vm使用的硬件加速器的上下文可以复制到目标平台450,并且配置可编程加速器的配置文件可以复制到目标平台450。在一些示例中,在402期间,源平台400处的vm的执行被中断,并且在vm执行的中断期间,vm在源平台400上使用的硬件加速器的vm状态和硬件加速器状态可以复制到目标平台450。在一些示例中,在403期间,vm可以在目标平台450上执行。当vm在目标平台450上执行时或在这之前,可编程加速器可以更新有vm在源平台400上使用的硬件加速器的状态。硬件状态可以包括与硬件加速器相关联的标识符值,其用于将请求和响应与硬件加速器相关联。硬件状态可以包括工作负载执行期间的硬件加速器状态,诸如状态机的状态、循环逻辑状态、寄存器值、函数返回指针等。在一些示例中,在404期间,vm可以将操作卸载到可编程加速器。网络接口装置可以用于从源平台到目标平台的迁移和上下文复制。
36.配置可以用于通过fpga重配置将过程从源平台迁移到目标平台,其中在目标平台上保存、移动和恢复vm状态之前,对存储存储器组件进行预复制。硬件加速器的fpga重配置可以在实时迁移的服务中断阶段(例如,vm暂停)之间划分,在实时迁移中,在静态vm状态转移到目标平台之前应用fpga配置。装置上下文可以从源转移到指定vm。
37.图5描绘了配置文件数据库的示例。重配置二进制文件(例如,角色(persona))可
以与特定平台标识符和平台内的装置相关联。可以检索文件并将其转发到目标平台,以进行装置重配置。可以在部署服务之前创建数据库,并且可以专门为单独的基于fpga的硬件加速器装置创建配置文件(角色文件)。硬件加速器装置的重配置可以独立于应用开发。也就是说,在一些示例中,应用不需要针对fpga或专用硬件加速器的使用进行适配(例如,软件修改)。
38.图6描绘了服务使用卸载硬件的示例。在该示例中,服务630可以被实例化或迁移到目标平台。目标平台可以包括被配置为执行固定功能加速器的操作的卸载硬件600。在一些示例中,os或超管理器620可以提供服务630和卸载硬件600之间的软件接口。在一些示例中,服务630包括请求使用固定功能加速器的指令,并且os或超管理器620的一些示例提供卸载硬件600作为固定功能加速器的替代。部分重配置区域606可以包括来自数据库的部分重配置文件610,该数据库存储在目标平台上或可通过网络访问。例如,卸载硬件600的ip核604可以如本文所述被部分重配置以执行固定功能加速器的一个或多个操作。上下文管理器602可以接收服务630在先前平台上执行时使用的(固定功能或可编程)加速器的上下文数据612。
39.图7描绘了示例过程,其中平台被选择用于迁移,其中服务可以使用其他形式的加速,诸如fpga作为专用硬件加速器的替代。fpga可以进行重配置,以新装置功能的形式作为平台属性而暴露,vm、容器、应用和os都可以使用。
40.在702,可以触发从源平台到目标平台的服务迁移或服务实例化(例如,vm引导或应用执行)。服务迁移可以基于诸如以下一个或多个条件来触发:源平台处断电、确定源平台不能在适用的服务级别协议(sla)参数内执行服务并且目标平台可以根据适用的sla参数执行服务、或者其他触发。
41.在704,可以基于以下一个或多个来选择目标平台:网络条件(例如,源和目标节点之间的可用带宽)、与源平台的地理接近度、目标节点上的计算资源的可用性、可用的处理器或加速器资源、以及服务的工作负载要求。在一些示例中,协调器可以发起服务的实例化或迁移。在一些示例中,ipu、dpu或源平台可以发起服务的实例化或迁移。在706,可以向所选目标平台发送执行服务的请求。该请求可以通过网络发送到目标平台。
42.在708,服务可以被实例化或迁移到目标平台。例如,对于服务实例化,可以在目标平台处应用vm镜像并由处理器执行。例如,为了将服务从源平台迁移到目标平台,服务使用的硬件加速器上下文和状态可以从源平台复制到目标平台。
43.在710,可以确定服务在源平台处使用的硬件加速器在目标平台处是否也可用。例如,可以基于在目标节点处执行服务的处理器确定操作将被卸载到加速器装置来确定服务在源平台处使用的硬件加速器在目标平台处也可用。如果在源平台处执行服务使用的操作的硬件加速器在目标平台处也可用,则过程可以继续到712。例如,硬件加速器可以是固定功能加速器装置,诸如asic。如果在源平台处执行服务使用的操作的硬件加速器并非在目标平台处也可用,则过程可以继续到720。
44.在712,可用硬件加速器可以配置有服务在源节点处使用的硬件加速器的上下文和状态。在714,服务可以在迁移后开始或恢复操作。
45.在720,基于在源平台处执行服务使用的操作的硬件加速器并非在目标平台处也可用,可以确定可配置加速器在目标平台处是否可用。例如,如果fpga或其他可配置加速器
可供实例化的或迁移的服务使用,则该过程可以继续到722。例如,如果fpga或其他可配置加速器不可供实例化的或迁移的服务使用,则过程可以继续到730。
46.在722,可以将配置文件加载到可配置加速器上。例如,可以使用来自数据库的配置文件来配置可配置加速器。在724,可配置加速器可以进行部分配置,以执行服务在源平台处使用的硬件加速器装置的操作。例如,在一些示例中,服务在源平台处使用的硬件加速器装置可以是固定功能加速器。在724,可配置加速器可以配置有来自服务在源平台处使用的硬件加速器装置的状态和上下文。在726,服务可以在迁移后开始或恢复操作。
47.在730,基于可配置加速器不可供实例化的或迁移的服务使用,处理器或图形处理单元(gpu)可以用于执行从服务卸载的操作。
48.一些实施例可以与ngnix应用的实例化或迁移结合使用。ngnix是负载平衡器应用,根据云原生原理部署在服务器中。nginx使用密码硬件加速来加速公钥加密(pke)功能以及与外部客户端节点的rivest

shamir

adleman(rsa)非对称密钥交换过程。ngnix使用openssl将rsa卸载到密码硬件加速器上。如果ngnix要使用硬件加速服务,则ngnix服务会与支持硬件加速的软件库一起在启用硬件加速器的平台上实例化。在服务初始实例化期间或服务迁移期间,如果目标平台上不存在密码硬件加速,则执行可能会回退到cpu执行的软件模式。如果目标节点平台不支持硬件加速器,则支配服务实例化或迁移的实体或协调器也可以选择拒绝服务实例化或迁移请求。如果专用硬件加速器在目标平台中不可用,则协调器可以选择具有可配置加速器装置的目标平台,并如本文描述的那样配置可配置加速器装置。协调器可以针对cpu特定加速进行检查,诸如指令集(is)优化(例如,aesni),并且如果不可用,则回退到cpu执行的软件以进行操作卸载。
49.图8描绘了示例计算系统。系统800的组件(例如,处理器810、加速器842、网络接口850等)要选择装置来执行卸载的工作负载,并且如果被请求,则配置可配置加速器来执行卸载操作,如本文描述的那样。系统800包括处理器810,其提供用于系统800的指令的处理、操作管理和执行。处理器810可以包括任何类型的微处理器、中央处理单元(cpu)、图形处理单元(gpu)、处理核、或为系统800提供处理的其他处理硬件、或处理器的组合。处理器810控制系统800的整体操作,并且可以是或包括一个或多个可编程通用或专用微处理器、数字信号处理器(dsp)、可编程控制器、专用集成电路(asic)、可编程逻辑器件(pld)等、或者这些器件的组合。
50.在一个示例中,系统800包括耦合到处理器810的接口812,其可以表示用于需要更高带宽连接的系统组件(诸如存储器子系统820或图形接口组件840或加速器842)的更高速接口或高吞吐量接口。接口812表示接口电路,其可以是独立的组件或集成到处理器管芯上。在存在的情况下,图形接口840与图形组件对接,以向系统800的用户提供视觉显示。在一个示例中,图形接口840可以驱动向用户提供输出的高清晰度(hd)显示器。高清晰度可以指具有大约100 ppi(像素每英寸)或更大的像素密度的显示器,并且可以包括诸如全hd(例如,1080p)、视网膜显示、4k(超高清晰度或uhd)或其他的格式。在一个示例中,显示器可以包括触摸屏显示器。在一个示例中,图形接口840基于存储在存储器830中的数据或基于由处理器810执行的操作或两者来生成显示。在一个示例中,图形接口840基于存储在存储器830中的数据或基于由处理器810执行的操作或两者来生成显示。
51.加速器842可以是可由处理器810访问或使用的固定功能或可编程卸载引擎。例
如,加速器842中的加速器可以提供压缩(dc)能力、密码服务(诸如公钥加密(pke))、暗码、散列/认证功能、解密、或其他功能或服务。在一些实施例中,作为补充或替代,加速器842中的加速器提供如本文所述的现场选择控制器能力。在一些情况下,加速器842可以集成到cpu插槽(例如,到主板或电路板的连接器,该主板或电路板包括cpu并提供与cpu的电接口)。例如,加速器842可以包括单核或多核处理器、图形处理单元、逻辑执行单元单级或多级高速缓存、可用于独立执行程序或线程的功能单元、专用集成电路(asic)、神经网络处理器(nnp)、可编程控制逻辑、以及诸如现场可编程门阵列(fpga)或可编程逻辑器件(pld)之类的可编程处理元件。加速器842可以提供多个神经网络、cpu、处理器核、通用图形处理单元,或者可以使图形处理单元可用于由人工智能(ai)或机器学习(ml)模型使用。例如,ai模型可以使用或包括以下一个或多个:强化学习方案、q学习方案、深度q学习、或异步优势动作者-评论家(a3c)、组合神经网络、递归组合神经网络、或其他ai或ml模型。可以使多个神经网络、处理器核或图形处理单元可用于由ai或ml模型使用。
52.存储器子系统820表示系统800的主存储器,并且为要由处理器810执行的代码或要在执行例程中使用的数据值提供存储。存储器子系统820可以包括一个或多个存储器装置830,诸如只读存储器(rom)、闪存、诸如dram的随机存取存储器(ram)的一种或多种变化、或其他存储器装置、或这样的装置的组合。存储器830尤其存储和托管操作系统(os)832,以提供用于系统800中的指令的执行的软件平台。另外,应用834可以从存储器830在os 832的软件平台上执行。应用834表示具有其自己的操作逻辑以执行一个或多个功能的执行的程序。过程836表示向os 832或一个或多个应用834或组合提供辅助功能的代理或例程。os 832、应用834和过程836提供了软件逻辑以提供用于系统800的功能。在一个示例中,存储器子系统820包括存储器控制器822,其是用于生成命令并将命令发布到存储器830的存储器控制器。应当理解,存储器控制器822可以是处理器810的物理部分或接口812的物理部分。例如,存储器控制器822可以是集成存储器控制器,其集成到具有处理器810的电路上。
53.在一些示例中,os 832可以是linux
®
、window
®
服务器或个人计算机、freebsd
®
、安卓
®
、macos
®
、ios
®
、vmware vsphere、opensuse、rhel、centos、debian、乌班图或任何其他操作系统。os和驱动器可以在由英特尔
®
、arm
®
、amd
®
、高通
®
、ibm
®
、德州仪器
®
等公司销售或设计的cpu上执行。在一些示例中,驱动器可以通告一个或多个加速器装置执行特定卸载操作的能力,即使在一些示例中一个或多个加速器装置是可配置加速器装置。驱动器操作的其他示例包括向加速器装置提供工作负载和用设置来配置加速器装置。
54.虽然没有具体示出,但是应当理解,系统800可以包括装置之间的一个或多个总线或总线系统,诸如存储器总线、图形总线、接口总线或其他。总线或其他信号线可以将组件通信地或电气地耦合在一起,或者既通信地又电气地耦合这些组件。总线可以包括物理通信线、点对点连接、桥、适配器、控制器、或其他电路模块或组合。总线可以包括例如系统总线、外围组件互连(pci)总线、超传输或产业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)、或电气和电子工程师协会(ieee)标准1394总线(火线)中的一个或多个。
55.在一个示例中,系统800包括接口814,其可以耦合到接口812。在一个示例中,接口814表示接口电路,其可以包括独立组件和集成电路模块。在一个示例中,多个用户接口组件或外围组件或两者耦合到接口814。网络接口850向系统800提供通过一个或多个网络与
远程装置(例如,服务器或其他计算装置)通信的能力。网络接口850可以包括以太网适配器、无线互连组件、蜂窝网络互连组件、usb(通用串行总线)、或基于其他有线或无线标准的或专有的接口。网络接口850可以将数据传输到在相同数据中心或机架中的装置或远程装置,这可以包括发送存储在存储器中的数据。
56.网络接口850的一些示例是基础设施处理单元(ipu)或数据处理单元(dpu)的一部分,或者由ipu或dpu使用。xpu至少可以指代ipu、dpu、gpu、gpgpu或其他处理单元(例如,加速器装置)。ipu或dpu可以包括具有一个或多个可编程流水线或固定功能处理器的网络接口,以执行本可由cpu执行的操作的卸载。ipu或dpu可以包括一个或多个存储器装置。在一些示例中,ipu或dpu可以执行虚拟交换机操作,管理存储事务(例如,压缩、密码、虚拟化),并管理在其他ipu、dpu、服务器或装置上执行的操作。
57.在一个示例中,系统800包括一个或多个输入/输出(i/o)接口860。i/o接口860可以包括一个或多个接口组件(例如,音频、字母数字、触觉/触摸、或其他对接),用户通过所述接口组件与系统800交互。外围接口870可以包括上面没有具体提到的任何硬件接口。外围装置通常是指依赖地连接到系统800的装置。依赖连接是其中系统800提供软件平台或硬件平台或两者的连接,在其上执行操作并且用户与其交互。
58.在一个示例中,系统800包括以非易失性方式存储数据的存储子系统880。在一个示例中,在某些系统实施方式中,存储子系统880的至少某些组件可以与存储器子系统820的组件重叠。存储子系统880包括(一个或多个)存储装置884,其可以是或包括用于以非易失性方式存储大量数据的任何常规介质,诸如一个或多个基于磁、固态或光的盘或组合。存储装置884在持久状态下保持代码或指令和数据886(例如,即使系统800的电力中断,该值也被保持)。存储装置884一般可被认为是“存储器”,尽管存储器830通常是向处理器810提供指令的执行或操作存储器。尽管存储装置884是非易失性的,但是存储器830可以包括易失性存储器(例如,如果系统800电力中断,则数据的值或状态是不确定的)。在一个示例中,存储子系统880包括与存储装置884对接的控制器882。在一个示例中,控制器882是接口814或处理器810的物理部分,或者可以包括处理器810和接口814两者中的电路或逻辑。
59.易失性存储器是如果装置电力中断则其状态(以及因此存储在其中的数据)是不确定的存储器。动态易失性存储器可以涉及刷新存储在装置中的数据以维持状态。动态易失性存储器的一个示例包括dram(动态随机存取存储器)或一些变型,诸如同步dram(sdram)。易失性存储器的示例包括高速缓存。如本文所述的存储器子系统可与多种存储器技术兼容,诸如ddr3(双倍数据速率版本3,由jedec(联合电子装置工程委员会)在2007年6月16日原始推出的)、ddr4(ddr版本4,由jedec在2012年9月出版的初始规范)、ddr4e(ddr版本4)、lpddr3(低功率ddr版本3,jesd209-3b,由jedec在2013年8月)、lpddr4(lpddr版本4,jesd209-4,由jedec在2014年8月原始出版的)、wio2(宽输入/输出版本2,由jedec在2014年8月原始出版的jesd229-2)、hbm(高带宽存储器,jesd325,由jedec在2013年8月原始出版的)、lpddr5(jedec目前正在讨论)、hbm2(hbm版本2)(jedec目前正在讨论)、或者其他存储器技术或组合以及基于这样的规范的派生或扩展的技术。
60.非易失性存储器(nvm)装置是即使装置电力中断、其状态也是确定的存储器。在一个实施例中,nvm装置可以包括块可寻址存储器装置,诸如nand技术,或者更具体讲,多阈值级nand闪存(例如,单级单元(“slc”)、多级单元(“mlc”)、四级单元(“qlc”)、三级单元
(“tlc”)、或一些其他nand)。nvm装置还可以包括字节可寻址就地写入三维交叉点存储器装置或其他字节可寻址就地写入nvm装置(也称为永久存储器),诸如单级或多级相变存储器(pcm)或具有开关的相变存储器(pcms)、英特尔
®
傲腾

存储器、使用硫族化物相变材料(例如,硫族化物玻璃)的nvm装置、包括金属氧化物基、氧空位基的电阻存储器和导电桥随机存取存储器(cb-ram)、纳米线存储器、铁电随机存取存储器(feram、fram)、结合忆阻器技术的磁阻随机存取存储器(mram)、自旋转移转矩(stt)-mram、基于自旋电子磁性结存储器的装置、基于磁隧道结(mtj)的装置、基于dw(畴壁)和sot(自旋轨道转移)的装置、基于晶闸管的存储器装置、或以上中的一个或多个的组合、或其他存储器。
61.功率源(未示出)向系统800的组件提供电力。更具体讲,功率源通常与系统800中的一个或多个电源对接,以向系统800的组件提供电力。在一个示例中,电源包括ac到dc(交流到直流)适配器以插入到壁装插座中。这种ac功率可以是可再生能源(例如太阳能)功率源。在一个示例中,功率源包括dc功率源,诸如外部ac到dc转换器。在一个示例中,功率源或电源包括无线充电硬件以经由接近充电场进行充电。在一个示例中,功率源可以包括内部电池、交流电源、基于运动的电源、太阳能电源或燃料电池源。
62.在一个示例中,系统800可以使用处理器、存储器、存储装置、网络接口和其他组件的互连计算滑轨来实现。可以使用高速互连,诸如:以太网(ieee 802.3)、远程直接存储器访问(rdma)、infiniband、互联网广域rdma协议(iwarp)、传输控制协议(tcp)、用户数据报协议(udp)、快速udp互联网连接(quic)、融合以太网上的rdma(roce)、快速外围组件互连(pcie)、英特尔quickpath互连(qpi)、英特尔超路径互连(upi)、英特尔片上系统结构(iosf)、omni-path、计算快速链路(cxl)、超传输、高速结构、nvlink、高级微控制器总线架构(amba)互连、opencapi、gen-z、无限结构(if)、加速器高速缓存一致互连(ccix)、3gpp长期演进(lte)(4g)、3gpp 5g及其变型。可以使用诸如结构上nvme(nvme-of)或nvme之类的协议将数据复制或存储到虚拟化的存储节点或访问数据。
63.本文的实施例可以在各种类型的计算装置、智能电话、平板电脑、个人计算机和联网设备中实施,诸如交换机、路由器、机架和刀片服务器(诸如在数据中心和/或服务器场环境中所采用的那些)。在数据中心和服务器场中使用的服务器包括阵列服务器配置,诸如基于机架的服务器或刀片服务器。这些服务器通过各种网络装置通信互连,诸如将服务器集合划分为局域网(lan),其中在lan之间具有适当的交换和路由设施,以形成专用内联网。例如,云托管设施通常可以采用具有多个服务器的大型数据中心。刀片包括被配置成执行服务器类型功能的单独的计算平台,即“卡上的服务器”。因此,每个刀片包括与常规服务器共用的组件,包括主印刷电路板(主板),其提供内部布线(例如,总线)以用于耦合适当的集成电路(ic)和安装到板的其他组件。
64.在一些示例中,网络接口和本文描述的其他实施例可以结合基站(例如,3g、4g、5g等)、宏基站(例如,5g网络)、皮可工作站(例如,兼容ieee 802.11的接入点)、纳米工作站(例如,用于点到多点(ptmp)应用)、企业预置型数据中心、远端数据中心、边缘网络元件、雾网络元件和/或混合数据中心(例如,使用虚拟化、云和软件定义联网来跨物理数据中心和分布式多云环境传递应用工作负载的数据中心)来使用。
65.可以使用硬件元件、软件元件或两者的组合来实现各种示例。在一些示例中,硬件元件可以包括器件、组件、处理器、微处理器、电路元件(例如,晶体管、电阻器、电容器、电感
器等)、集成电路、asic、pld、dsp、fpga、存储器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。在一些示例中,软件元件可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。确定是否使用硬件元件和/或软件元件来实现示例可以根据任意数量的因素来变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束,如针对给定实施方式所期望的。处理器可以是硬件状态机、数字控制逻辑、中央处理单元、或任何硬件、固件和/或软件元件的一个或多个组合。
66.一些示例可以使用或作为制品或至少一个计算机可读介质来实现。计算机可读介质可以包括用于存储逻辑的非暂时性存储介质。在一些示例中,非暂时性存储介质可以包括能够存储电子数据的一种或多种类型的计算机可读存储介质,包括易失性存储器或非易失性存储器、可移除或不可移除存储器、可擦除或不可擦除存储器、可写或可重写存储器等。在一些示例中,逻辑可以包括各种软件元件,例如软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、api、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任何组合。
67.根据一些示例,计算机可读介质可以包括非暂时性存储介质,以存储或维护指令,所述指令在由机器、计算装置或系统执行时,使得机器、计算装置或系统执行根据所描述示例的方法和/或操作。指令可以包括任何合适类型的代码,例如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码等。指令可以根据预定义的计算机语言、方式或语法来实现,以用于指示机器、计算装置或系统执行特定功能。指令可以使用任何合适的高级、低级、面向对象、视觉、编译和/或解释编程语言来实现。
68.至少一个示例的一个或多个方面可以由存储在至少一个机器可读介质上的代表性指令来实现,其表示处理器内的各种逻辑,其当由机器、计算装置或系统读取时,使机器、计算装置或系统制造逻辑以执行本文描述的技术。被称为“ip核”的这种表示可以存储在有形的机器可读介质上,并且提供给各种客户或制造设施以加载到实际制造逻辑或处理器的制造机器中。
69.短语“一个示例”或“示例”的出现不必全部指代相同的示例或实施例。本文描述的任何方面都可以与本文描述的任何其他方面或类似方面组合,而不管这些方面是否参考相同的附图或要素来描述。附图中所描述的块功能的划分、省略或包括不应推断为用于实现这些功能的硬件组件、电路、软件和/或元件应当必须被划分、省略或包括在实施例中。
70.一些示例可以使用表述“耦合”和“连接”以及它们的派生词来描述。这些术语不一定意图作为彼此的同义词。例如,使用术语“连接”和/或“耦合”的描述可以指示两个或更多个要素彼此直接物理或电接触。然而,术语“耦合”也可以意味着两个或更多个要素彼此不直接接触,但是仍然彼此协作或交互。
71.术语“第一”、“第二”等在此不表示任何顺序、数量或重要性,而是用于将一个要素与另一个要素区分开。术语“一”和“一个”在此不表示数量的限制,而是表示存在至少一个所引用的项目。本文参考信号使用的术语“断言”表示信号的状态,其中,信号是有效的,并
且可以通过向信号施加逻辑0或逻辑1中的任何逻辑水平来实现。术语“跟随”或“之后”可以指紧随或跟随在一些其他一个或多个事件之后。根据替代实施例,也可以执行其他操作序列。此外,根据特定的应用,可以添加或去除附加的操作。可以使用改变的任何组合,并且受益于本公开的本领域普通技术人员应当理解其许多变化、修改和替代实施例。
72.除非另外具体说明,否则例如短语“x、y或z中的至少一个”的析取语言在如一般用于呈现的上下文内理解的是,项、术语等可以是x、y或z或其任何组合(例如,x、y和/或z)。因此,这种析取语言通常不旨在也不应当暗示某些实施例需要x中的至少一个、y中的至少一个、或z中的至少一个各自存在。另外,除非另有明确说明,例如短语“x、y和z中的至少一个”的析取语言也应当被理解为表示x、y、z或其任意组合,包括“x、y和/或z”。
73.下面提供了本文公开的装置、系统和方法的说明性示例。装置、系统和方法的实施例可包括以下描述的示例中的任何一个或多个、以及任何组合。
74.示例1包括一个或多个示例,并且包括一种设备,其包括:至少一个处理器和加速器池,所述加速器池包括至少一个固定功能硬件卸载引擎和至少一个可编程硬件卸载引擎,其中,结合要在所述至少一个处理器上执行的服务的实例化以及所述至少一个固定功能硬件卸载引擎不可用于执行所述服务的操作,配置所述至少一个可编程硬件卸载引擎中的至少一个以执行所述服务的操作。
75.示例2包括一个或多个示例,其中,所述操作包括在从其迁移所述服务的源平台上由固定功能硬件卸载引擎执行的操作。
76.示例3包括一个或多个示例,其中,要执行所述服务的操作的所述至少一个可编程硬件卸载引擎中的所述至少一个被配置有在从其迁移所述服务的源平台处执行所述服务的操作的装置的执行上下文。
77.示例4包括一个或多个示例,其中,所述执行上下文包括以下一个或多个:从其迁移所述服务的源平台处的至少一个固定功能硬件卸载引擎的队列大小以及在所述源平台处的至少一个固定功能硬件卸载引擎的应用特定设置。
78.示例5包括一个或多个示例,其中,要执行所述服务的操作的所述至少一个可编程硬件卸载引擎中的所述至少一个使用配置文件通过部分重配置来进行配置,以通过装置接口维持与至少一个其他装置的连接性。
79.示例6包括一个或多个示例,其中,所述至少一个可编程硬件卸载引擎包括一个或多个:图形处理单元(gpu)、现场可编程门阵列(fpga)或计算空间阵列。
80.示例7包括一个或多个示例,并且包括数据处理单元(dpu),其包括要选择加速器以执行由所述服务卸载的一个或多个操作的电路模块。
81.示例8包括一个或多个示例,其中,服务器包括所述至少一个处理器和所述加速器池,并且服务器包括网络接口装置以接收要在服务器处执行服务的指令。
82.示例9包括一个或多个示例,并且包括数据中心,其中,数据中心要提供服务从源平台到具有硬件卸载引擎可用性的目标平台的迁移。
83.示例10包括一个或多个示例,并且包括其上存储有指令的计算机可读介质,所述指令如果由一个或多个处理器执行则使得所述一个或多个处理器:执行至少一个驱动器以:选择目标平台处的可配置加速器装置来执行服务的至少一个操作;使得将加速器装置上下文复制到目标平台处的所选可配置加速器装置;以及使得使用配置文件来配置目标平
台处的所选可配置加速器装置。
84.示例11包括一个或多个示例,其中,所述至少一个操作包括由从其迁移所述服务的源平台上的固定功能硬件卸载引擎执行的至少一个操作。
85.示例12包括一个或多个示例,其中,加速器装置上下文包括以下一个或多个:从其迁移所述服务的源平台处的加速器装置的队列大小以及从其迁移所述服务的源平台处的加速器装置的应用特定设置。
86.示例13包括一个或多个示例,其中,使用配置文件对目标平台处的所选可配置加速器装置进行配置使用部分重配置,以通过装置接口维持与至少一个其他装置的连接性。
87.示例14包括一个或多个示例,其中,目标平台处的所选可配置加速器装置包括一个或多个:图形处理单元(gpu)、现场可编程门阵列(fpga)或计算空间阵列。
88.示例15包括一个或多个示例,并且包括一种方法,其包括:结合服务的迁移或实例化选择在其上执行所述服务的目标平台,以及基于所述目标平台处用来执行特定卸载操作的可配置加速器的可用性但是固定功能加速器的不可用性而使得对所述可配置加速器进行配置以执行所述特定卸载操作。
89.示例16包括一个或多个示例,并且包括使得在所选目标平台处执行所述服务的实例。
90.示例17包括一个或多个示例,其中,结合服务的迁移或实例化,所述特定卸载操作包括从其迁移所述服务的源平台上的固定功能硬件卸载引擎执行的操作。
91.示例18包括一个或多个示例,其中,使得对所述可配置加速器进行配置以执行所述特定卸载操作包括使得以以下一个或多个对所述可配置加速器进行配置:从其迁移所述服务的源平台处的加速器装置的队列大小和从其迁移所述服务的源平台处的加速器装置的应用特定设置。
92.示例19包括一个或多个示例,其中,使得对所述可配置加速器进行配置以执行所述特定卸载操作包括使用配置文件并通过部分重配置在目标平台处配置可配置加速器装置,以通过装置接口维持与至少一个其他装置的连接性。
93.示例20包括一个或多个示例,其中,可配置加速器包括一个或多个:图形处理单元(gpu)、现场可编程门阵列(fpga)或计算空间阵列。
94.示例21包括一个或多个示例,并且包括一种设备,其包括:至少一个处理器以及加速器池,所述加速器池包括至少一个固定功能硬件卸载引擎和至少一个可编程硬件卸载引擎,其中,结合在所述至少一个处理器上执行服务以及所述至少一个固定功能硬件卸载引擎不可用于执行所述服务的操作,配置所述至少一个可编程硬件卸载引擎中的至少一个以执行所述服务的操作。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献