CN112395246A - 用于实现多个推理计算引擎的方法和装置 - Google Patents
用于实现多个推理计算引擎的方法和装置 Download PDFInfo
- Publication number
- CN112395246A CN112395246A CN202010547189.1A CN202010547189A CN112395246A CN 112395246 A CN112395246 A CN 112395246A CN 202010547189 A CN202010547189 A CN 202010547189A CN 112395246 A CN112395246 A CN 112395246A
- Authority
- CN
- China
- Prior art keywords
- request
- acf
- computation engine
- inferential
- inferential computation
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/27—Using a specific cache architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本文中公开了用于实现多个推理计算引擎的方法和装置。所公开的示例装置包括第一推理计算引擎、第二推理计算引擎、以及一致结构加速器,该一致结构加速器用于将第一推理计算引擎和第二推理计算引擎耦合到片上系统的聚合式一致性结构,并且该一致结构加速器用于对来自第一推理计算引擎和第二推理计算引擎的请求进行仲裁以利用单个管芯内互连端口。
Description
技术领域
本公开总体涉及计算引擎,并且更具体地,涉及用于实现多个推理计算引擎的方法和装置。
背景技术
近年来,已经采用计算引擎或相关联的微处理器的核心来执行众多并行计算操作。具体地,这些操作可涉及机器学习和人工智能(AI)应用,并且这些操作通常在多个计算引擎(即,处理核心)上作为并行计算线程来执行。
发明内容
根据本公开的实施例,提供了一种装置,包括:第一推理计算引擎;第二推理计算引擎;以及一致结构加速器(ACF),所述ACF用于将所述第一推理计算引擎和所述第二推理计算引擎耦合到片上系统的聚合式一致性结构,所述ACF用于对来自所述第一推理计算引擎和所述第二推理计算引擎的请求进行仲裁以利用单个管芯内互连端口。
根据本公开的实施例,提供了至少一个非暂态计算机可读介质,包括指令,所述指令当被执行时使得机器至少执行以下操作:在一致结构加速器(ACF)处通过高级可扩展接口协议来接收来自第一推理计算引擎的第一请求;在所述ACF处通过所述高级可扩展接口协议来接收来自第二推理计算引擎的第二请求;在所述ACF处将所述第一请求转换为管芯内互连接口协议;以及将所述管芯内互连接口协议的第一请求传输到聚合式一致性结构。
根据本公开的实施例,提供了一种方法,包括:在一致结构加速器(ACF)处通过高级可扩展接口协议来接收来自第一推理计算引擎的第一请求;在所述ACF处通过所述高级可扩展接口协议来接收来自第二推理计算引擎的第二请求;在所述ACF处将所述第一请求转换为管芯内互连接口协议;以及将所述管芯内互连接口协议的第一请求传输到聚合式一致性结构。
附图说明
图1是示例处理器片上系统(SoC)的框图,该示例处理器片上系统集成各自包括多个ICE的执行块。
图2是图1的执行块的示例实现方式的框图。
图3是图2的一致结构加速器(accelerator on coherent fabric)的示例实现方式的框图,该一致结构加速器被包括在图1的执行块中。
图4是到管芯内互连转换器的高级可扩展接口的示例实现方式的框图。
图5是图4的高级可扩展接口请求接受器的示例实现方式的框图。
图6是图4的高级可扩展接口请求发送器的示例实现方式的框图。
图7是图4的管芯内互连接口的示例实现方式的框图。
图8至图9是示出可以被执行以实现图3的AXI2IDI转换器的示例机器可读指令的流程图。
图10是可以执行图8至图9的指令以实现图3的示例AXI2IDI转换器的示例处理系统的框图。
附图不是按比例绘制的。而是,层或区域的厚度在附图中可能被放大。通常,贯穿(一个或多个)附图和所附书面描述使用相同的附图标记来指代相同或相似的部件。
本文中在识别可被分开提及的多个元素或组件时使用描述语“第一”、“第二”、“第三”等等。除非另有指明或者基于其使用上下文另有理解,否则这种描述语并不打算灌输优先级、物理顺序或者列表中的布置或者时间上的排序的任何含义,而只是用作用于分开提及多个元素或组件的标签,以便容易理解公开的示例。在一些示例中,描述语“第一”在具体实施方式中可用于提及某一元素,而同一元素在权利要求中可用不同的描述语来提及,例如“第二”或“第三”。在这种情况中,应当理解这种描述语只是为了容易引用多个元素或组件而使用的。
具体实施方式
推理计算引擎(ICE)是专用于深度学习神经网络推理的计算引擎。本文中公开的方法和装置使得能够将多个ICE核心集成到片上系统。在这样的示例中,ICE核心与在系统核心(例如,Intel-Architecture Core)和外部输入/输出(IO)设备(例如,直接存储器访问(DMA))上执行的应用驱动器共享系统存储器。在这样的示例中,在所有方之间维持存储器一致性。此外,本文中公开的示例促进软件模型将所有ICE核心看作单个外围组件互连(PCI)设备,同时维持如下能力:在不同数量的核心(N个核心中的M个核心)之间划分工作负荷,将不同的工作负荷给予ICE核心的不同子集,并且具有以高效的方式在不同的ICE核心之间以及在核心和驱动器之间进行同步的能力。
在本文中公开的示例中,ICE核心作为多个管芯内互连(in-dieinterconnect,IDI)代理被直接连接到聚合式一致性结构。由于IDI端口的数量是有限的,因此2个或更多个ICE核心可以共享相同的IDI端口。在ICE核心、系统架构(Intel Architecture)核心和外部PCI设备之间维持缓存一致性。ICE核心可以使用末级缓存(LLC)来缓存数据以及在它们之间或与系统架构核心共享数据。引入了新的主要可缩放结构(PSF)代理(ICE设备控制器(ICEDC)),以从软件的角度用作单个PCI设备,同时给予SW独立地控制每个ICE核心的能力,并且实现ICE核心之间以及核心与SW之间的同步方法。
本文中公开的示例包括一致结构加速器(ACF)块,该一致结构加速器(ACF)块用于使ICE核心适用于聚合式一致性结构(CCF)。ACF使用AXI2IDI桥接器将ICE核心的高级可扩展接口(AXI)协议转换为IDI协议。示例ACF促进两个或更多个ICE核心之间的仲裁,以允许多个核心共享单个IDI端口。示例ACF还包括功率管理代理(PMA),该功率管理代理(PMA)用于管理ICE功率状态。示例AXI2IDI桥接器使得ICE核心能够访问存储器、存储器映射I/O等。
图1是示例处理器片上系统(SoC)100的框图,该示例处理器片上系统100集成各自包括多个ICE的执行块102A-F(参见图2)。示例处理器SoC 100包括聚合式一致性结构104,该聚合式一致性结构104耦合到执行块102A-F、示例输入/输出设备系统108、示例存储器系统112、以及示例处理器架构116A-B。
示例执行块102A-F各自托管多个专用计算引擎核心和控制器的组合,该控制器用于使计算引擎核心适用于CCF 104。示例计算引擎核心是专用指令处理器(例如,专门配置用于机器学习、专门配置用于数据挖掘等的指令处理器)。例如,如图2所示,示例执行块102A包括第一ICE核心202、第二ICE核心204、以及示例一致结构加速器(ACF)206。示例ACF206使ICE核心202、204适用于CCF 104。结合图3描述ACF 206的示例实现方式。
示例执行块102B-F包括与图2中所示的执行块102A相同的组件。替代地,执行块102A-F可以包括任何数量和/或类型的ICE核心或其他类型的处理器核心。
所示示例的执行块102A-F各自使用单个IDI端口与CCF 104的末级缓存(LLC)进行通信。根据所示示例,ACF 206对通过单个IDI端口进行通信的多个核心进行仲裁。此外,ACF206对核心和CCF所使用的不同时钟速率进行仲裁。例如,根据所示的示例,并且如结合图3进一步详细描述的,示例ACF 206对以第一时钟速率(例如,clk)进行操作的ICE核心202、204和以第二时钟速率(例如,uclk)进行操作的CCF 104进行仲裁。
所示示例的CCF 104是末级缓存(LLC)块130A-H的环形网络。LLC块130A-H通过IDI端口连接到执行块102A至102F以及处理器架构116A-B。示例LLC块130A-H和处理器架构116A-B通过多个一致性引擎(CBO)140A-140I通信地耦合在环形网络中。CBO 140A-140I处置对相关联的LLC块130A-H的访问,并且生成返回核心或系统互连的事务。CBO 140A-140I还确保事务冲突被正确地处置。示例CBO 140A-140I包括持有所有未决事务的TOR(请求表)。
以此方式,执行块102A-102F的ICE核心以及ICE驱动器(可在处理器架构116A-B的核心之一上作为应用运行)共享统一存储器架构中的存储器。ICE核心可以“看到”被处理器架构116A-B的核心修改了的数据,不论该数据当前是缓存在核心缓存中、缓存在末级缓存130A-H中还是已被写入到存储器。ICE核心看到由彼此写入了的数据,并且处理器架构116A-B的核心看到由ICE核心写入了的数据。
LLC 130A-H的共享对于机器学习和神经网络实现具有另一益处:大量的数据(例如,神经元网络权重和程序)被多于一个的ICE核心消耗。一旦第一ICE核心读取数据,数据就被从主存储器中读取并且被缓存在LLC 130A-H中。所有其他ICE核心将直接从LLC 130A-H中读取数据,并且因此这些ICE核心可以以与从存储器中进行读取相比更高的带宽和更低的延迟来访问数据。
示例CCF 104包括示例SBO 150(例如,SBOX),该示例SBO 150用于将末级缓存130A-H与示例不可缓存单元(NCU)160耦合。SBO 150对NCU 160和LLC 130A-H的环形网络之间的流量进行组织。示例SBO 150维持流量的排序以确保在某些情况下的功能正确性。
示例NCU 160将示例CCF 104与示例IO设备系统108以及示例存储器系统112耦合。示例NCU 160处置指令序列化功能,并且执行任何不可缓存的操作。示例NCU 160是用于以下操作的电路:接收来自处理器架构116A-B和/或执行块102A-F的加载或写入请求,并且向IO设备系统108或存储器系统112中的一者传递命令以服务该请求。
示例IO设备系统108将示例CCF 104与外部设备(例如,直接存储器访问)接口连接(interface)。根据图1所示的示例,IO设备系统108包括示例ICE设备控制器170,该示例ICE设备控制器170通过示例主要可缩放结构(PSF)172耦合到CCF 104。示例ICE设备控制器170被实现为集成片上系统结构(IOSF)设备并且可以由处理器架构116A-B的核心通过主要IOSF结构访问,并且示例ICE设备控制器170可以通过边带(sideband)结构与执行块102A-F的ICE核心202、204和ACF块206进行通信。
示例ICE DC 170允许ICE驱动器(例如,其在处理器架构116A-B的核心上执行)将分布式ICE核心202、204看作单个PCI设备。示例ICE DC 170为ICE驱动器提供用于每个ICE控件的接口,以单独地打开、关闭或重置每个ICE核心202、204。示例ICE DC 170向与通过边带而被控制的ICE核心202、204相关联的适当的ACF 206发送命令。此外,示例ICE DC 170实现允许ICE驱动器访问ICE核心202、204的寄存器、ACF 206、或ICE DC 170本身的一个或多个存储器映射IO(MMIO)范围。通过主要IOSF结构将访问发送到ICE DC 170,并且ICE DC170通过边带将访问发送到目标ICE核心202、204或ACF 206。ICE DC 170还负责阻止对当前被关闭或在重置中的ICE核心202、204的访问。此外,示例ICE DC 170包括可由ICE核心202、204访问的计数器和旗语(semaphore)的集合,并且在不涉及ICE驱动器的情况下允许ICE核心202、204传送工作进度并且对这些ICE核心进行同步。
示例存储器系统112包括可以通过CCF 104访问的存储器。例如,存储器系统112包括双倍数据速率存储器随机存取存储器。替代地,存储器系统112中可以包括任何其他类型和/或组合的存储器或存储装置。
示例处理器控制器120包括用于控制处理器SoC 100的操作的多个组件。例如,所示示例的处理器控制器120包括功率管理单元,该功率管理单元用于控制处理器SoC 100及其组件的功率利用和操作。
图3是图2的ACF 206的示例实现方式的框图,该ACF 206被包括在图1的执行块102A中(以及类似地,执行块102B-F中)。示例ACF 206使具有多个ICE核心202、204的执行块102A-F适用于在CCF 104上进行通信。图3的示例ACF 206包括示例CCP 302,该示例CCP 302包括示例边带至OCP接口(SB2OCP)304、示例胶合逻辑306、示例控制器308、以及示例AXI2IDI转换器310。
示例SB2OCP 304提供处理器SoC 100的边带结构和ICE核心202、204的开放核心协议(OCP)之间的接口。例如,SB2OCP 304允许从边带访问ICE核心202、204的内部寄存器。
示例胶合逻辑306将来自ICE核心202、204的中断接口连接到处理器架构116A-B。中断可以被用于报告各种事件,例如,工作完成和内部错误。示例胶合逻辑306将中断转换为通过CCF 104发送的消息。
示例控制器308为ACF 206提供各种控制块,例如,功率管理控件。
示例AXI2IDI转换器310管理ICE核心202、204的AXI接口与CCF 104的IDI接口的接口连接。具体地,AXI2IDI转换器310管理多个ICE核心到单个IDI端口的仲裁(例如,由于可用IDI端口的数量有限)。
图4是AXI2IDI转换器310的示例实现方式的框图。图4的示例AXI2IDI转换器310包括示例AXI请求接受器402、示例AXI请求发送器404、示例转换器406、以及示例IDI接口408。
示例AXI请求接受器402接收来自ICE核心202、204的请求/数据。结合图5描述AXI请求接受器402的示例实现方式。
示例AXI请求发送器402将请求/数据发送到示例ICE核心202、204。结合图6描述AXI请求发送器404的示例实现方式。
所示示例的示例转换器406维护关于来自ICE核心202、204以及IDI接口408的多个请求/数据的数据,以维护请求的排序和满足。示例转换器406包括追踪器控制块420、示例地址阵列422、示例数据阵列424、以及示例字节阵列426。
示例追踪器控制块420存储针对要由ICE核心202、204和/或其他设备通过IDI接口408服务的请求(例如,写入请求和读取请求)的条目。例如,示例追踪器控制块420存储针对请求的AXI属性、AXI流控制信息、IDI属性、以及IDI流控制信息。
示例地址阵列422存储针对存储在示例追踪器控制块420中的请求的地址信息(例如,要写入的地址或要读取的地址)。
示例数据阵列424存储针对存储在示例追踪器控制块420中的请求的已被读取或要被写入的数据。
示例字节阵列426存储指示针对存储在示例追踪器控制块420中的写入请求要写入哪些字节的指示。
示例追踪器控制块420、示例地址阵列422、示例数据阵列424、和/或示例字节阵列426可以由任何类型的存储器或存储装置(例如,随机存取存储器、缓存存储器、盘存储存储器、闪存等)来实现。
示例IDI接口408将AXI2IDI转换器310接口连接到示例CCF 104的IDI端口。结合图7描述IDI接口408的示例实现方式。
图5是图4的AXI请求接受器402的示例实现方式的框图。
图5的示例AXI请求接受器402包括示例ICE0写入地址先入先出缓冲器(FIFO)502、示例ICE0写入数据FIFO 504、示例ICE1写入地址先入先出缓冲器(FIFO)506、示例ICE1写入数据FIFO 508、示例ICE0读取地址FIFO 510、以及示例ICE1读取地址FIFO 512。虽然示例AXI请求接受器402与两个ICE核心(例如,ICE核心202(例如,ICE0)和ICE核心204(例如,ICE1))接口连接,但AXI请求接受器402可以通过包括针对每个ICE核心的写入地址、写入数据、以及读取地址FIFO而与任何数量的ICE核心接口连接。
示例AXI请求接受器402包括示例AXI请求接收器/突发器(burster)ICE0写入514,用于对写入地址和写入数据进行组合以供传输。示例AXI请求接受器402包括示例AXI请求接收器/突发器ICE1写入516,用于对写入地址和写入数据进行组合以供传输。示例AXI请求接受器402包括示例AXI请求接收器/突发器ICE0读取518,用于传输针对ICE0的读取地址。示例AXI请求接受器402包括示例AXI请求接收器/突发器ICE1读取520,用于传输针对ICE1的读取地址。
示例AXI请求接受器402包括示例四对一仲裁器/多路复用器522,该示例四对一仲裁器/多路复用器522用于在多个读取和写入请求之间进行仲裁,并且传输来自多个ICE核心202、204的请求并将这些请求传输到示例转换器406。
图6是图4的AXI请求发送器404的示例实现方式的框图。示例AXI请求发送器404包括示例64到1写入响应多路复用器602,用于接收来自转换器406的响应信息。示例AXI请求发送器404包括示例ICE0写入响应FIFO 604和示例ICE1写入响应FIFO 606,分别用于存储针对来自ICE0和ICE1的写入请求的响应信息。示例AXI请求发送器404包括示例64到1读取响应多路复用器608,用于接收来自转换器406的数据。示例AXI请求发送器404包括示例ICE0读取数据FIFO 610和示例ICE1读取数据FIFO 612,分别用于存储针对最初由ICE0和ICE1发送的读取请求而接收的响应数据。
图7是图4的IDI接口408的示例实现方式的框图。
图7的示例IDI接口408包括示例请求调度器702,该示例请求调度器702包括示例字段生成查找表704和示例64到1C2U请求多路复用器706。示例请求调度器702将来自ICE核心202、204的请求转换为要通过IDI接口发送的请求。
图7的示例IDI接口408包括示例数据调度器708,该示例数据调度器708包括示例64到1数据头部多路复用器710,该示例64到1数据头部多路复用器710将其输出提供给与请求处置器714耦合的2到1多路复用器712。
示例IDI接口408附加地包括请求处置器714。请求处置器714包括示例请求队列716和示例锁定处置器718。示例请求队列716存储从示例CCF 104接收的请求,并且将这些请求排队,直到它们可被处理为止。示例锁定处置器718在读取或写入数据期间控制对数据的锁定。
虽然图2至图7示出了实现图1的执行块102A-F的示例方式,但是图2至图7中示出的元件、过程、和/或设备中的一个或多个可以被组合、划分、重新布置、省略、消除和/或以任何其他方式实现。此外,图1至图7的示例块可以由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。因此,例如,图1至图7的示例块和/或更一般地示例处理器SoC100中的任何一者可以由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)图形处理单元(GPU)、(一个或多个)数字信号处理器(DSP)、(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑器件(PLD)和/或(一个或多个)现场可编程逻辑器件(FPLD)来实现。当阅读本专利的装置或系统权利要求中任一项以涵盖纯软件和/或固件实现方式时,图1至图7的示例块中的至少一者在此被明确定义为包括诸如存储器、数字多功能盘(DVD)、光盘(CD)、蓝光光盘之类的非暂态计算机可读存储设备或存储盘(包括软件和/或固件)。此外,图1的示例处理器SoC 100可以包括除图1至图7中所示的那些元件、过程和/或设备之外或作为其替代的一个或多个元件、过程和/或设备,和/或图1的示例处理器SoC 100可以包括任何一个或全部所示元件、过程和设备中的多于一个元件、过程和/或设备。如本文所使用的,短语“进行通信”(包括其变体)涵盖直接通信和/或通过一个或多个中间组件进行的间接通信,并且其不需要直接物理(例如,有线)通信和/或持续通信,而是附加地包括在周期性间隔、调度间隔、非周期性间隔、和/或一次性事件处的选择性通信。
图1至图7示出了表示用于实现处理器架构100的示例硬件逻辑、机器可读指令、硬件实现的状态机、和/或其任何组合的流程图。机器可读指令可以是一个或多个可执行程序或可执行程序的(一个或多个)部分,以供诸如示例处理器SoC 100中所示的ACF 206之类的计算机处理器执行。程序可以被体现在诸如CD-ROM、软盘、硬盘驱动器、DVD、蓝光盘、或与处理器SoC 100相关联的存储器之类的非暂态计算机可读存储介质上存储的软件中,但整个程序和/或其部分可以替代地由除处理器SoC 100之外的设备执行和/或体现在固件或专用硬件中。此外,虽然示例程序是参考图8至图9中所示的流程图来描述的,但是可以替代地使用实现该示例处理器SoC 100的许多其他方法。例如,可以改变框的执行顺序,和/或可以改变、消除、或组合所描述的框中的一部分。附加地或替代地,任一个或全部框可由一个或多个硬件电路(例如,离散和/或集成模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实现,这些硬件电路被结构化为在不执行软件或固件的情况下执行相应的操作。
可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一个或多个格式来存储本文中描述的机器可读指令。如本文中所述的机器可读指令可以被存储为数据(例如,指令的部分、代码、代码的表示等),其可以被用于创建、制造、和/或产生机器可执行指令。例如,机器可读指令可以被分段并存储在一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要以下操作中的一个或多个:安装、修改、自适应、更新、组合、补充、配置、解密、解压缩、解封装、分发、重新分配、编译等,以便使它们可由计算设备和/或其他机器直接读取、解释、和/或执行。例如,机器可读指令可以存储在多个部分中,这多个部分被单独地压缩、加密并且存储在单独的计算设备上,其中,这些部分在被解密、解压缩、以及组合时形成实现诸如本文中所描述的程序之类的可执行指令集。
在另一示例中,机器可读指令可以以它们可由计算机读取的状态存储,但是需要添加库(例如,动态链接库(DLL))、软件开发工具包(SDK)、应用编程接口(API)等,以便在特定计算设备或其他设备上执行指令。在另一示例中,在机器可读指令和/或相应的程序可以整体或部分地执行之前,可能需要配置机器可读指令(例如,存储的设置、输入的数据、记录的网络地址等)。因此,所公开的机器可读指令和/或(一个或多个)相应的程序旨在涵盖这样的机器可读指令和/或程序,而不管机器可读指令和/或程序在被存储或以其他方式处于静止或传输时的特定格式或状态。
本文中描述的机器可读指令可以由任何过去、现在、或将来的指令语言、脚本语言、编程语言等来表示。例如,机器可读指令可以使用以下语言中的任何一种来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HTML)、结构化查询语言(SQL)、Swift等。
如上所述,可以使用存储在非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)来实现图8至图9的示例过程,该非暂态计算机和/或机器可读介质为例如硬盘驱动器、闪存、只读存储器、光盘、数字多功能盘、缓存、随机存取存储器和/或任何其他存储设备或存储盘(其中信息被存储任何持续时间(例如,存储延长的时间段、永久地存储、在短暂的情况下存储、存储来用于暂时地缓冲、和/或缓存信息))。如本文中所使用的,术语非暂态计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号和排除传输介质。
“包括”和“包含”(以及其所有形式和时态)在本文中用作开放式术语。因此,无论何时权利要求采用任何形式的“包括”或“包含”(例如,包括、包含、具有等)作为前序或在任何种类的权利要求记载内,都应当理解,在不落在对应的权利要求或记载的范围之外的情况下,可以存在附加的元件、术语等。如本文中所用,当短语“至少”用作例如权利要求的前序部分中的过渡术语时,其为开放式的(以与术语“包括”和“包含”为开放式的相同方式)。术语“和/或”当例如以A、B、和/或C的形式使用时,是指A、B、C的任何组合或子集,例如(1)单独的A、(2)单独的B、(3)单独的C、(4)A与B、(5)A与C、(6)B与C、以及(7)A与B以及与C。如本文中所用,在描述结构、部件、物体、对象、和/或事物的上下文中,短语“A和B中的至少一个”旨在指代包括以下项中任何一个的实现方式:(1)至少一个A、(2)至少一个B、以及(3)至少一个A和至少一个B。类似地,如本文中所用,在描述结构、组件、物体、对象、和/或事物的上下文中,短语“A或B中的至少一个”旨在指代包括以下项中任何一个的实现方式:(1)至少一个A、(2)至少一个B、以及(3)至少一个A和至少一个B。如本文中所用,在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中,短语“A和B中的至少一个”旨在指代包括以下项中任何一个的实现方式:(1)至少一个A、(2)至少一个B、以及(3)至少一个A和至少一个B。类似地,如本文中所用,在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中,短语“A或B中的至少一个”旨在指代包括以下项中任何一个的实现方式:(1)至少一个A、(2)至少一个B、以及(3)至少一个A和至少一个B。
如本文中所使用的,单数引用(例如,“一”、“一个”、“第一”、“第二”等)不排除多个。如本文中所使用的,术语“一”或“一个”实体是指一个或多个该实体。术语“一”(或“一个”)、“一个或多个”、以及“至少一个”在本文中可互换使用。此外,尽管被单独列出,但是多个装置、元件或方法动作可以由例如单个单元或处理器来实现。另外,尽管各个特征可以被包括在不同的示例或权利要求中,但是这些特征可以被组合,并且包括在不同的示例或权利要求中并不意味着特征的组合是不可行的和/或不利的。
图8的程序800是用于示例AXI2IDI转换器310处置来自ICE核心202、204中的一个(例如,ICE核心202)的读取请求的示例过程。示例请求接受块402通过AXI接收来自ICE核心202的读取请求(框802)。示例转换器406在追踪器控制块402中对读取请求进行分配,并且将读取地址记录在地址阵列422中(框804)。示例IDI接口408通过IDI发送请求(例如,发送到LLC或存储器)(框806)。一旦接收到所请求的数据被读取的确认,示例IDI接口408就向示例转换器406传输数据已准备好的指示(例如,GO通知)(框808)。通过IDI接口408接收到的响应数据由转换器406存储(框810)。示例转换器406从示例追踪器控制块中对读取请求解除分配(框812)。示例AXI请求发送器404通过AXI将数据传输到请求ICE核心202(框814)。
图9的程序900是用于示例AXI2IDI转换器310处置来自ICE核心202、204中的一个(例如,ICE核心202)的写入请求的示例过程。示例请求接受块402通过AXI接收来自ICE核心202的写入请求(框902)。示例转换器406在追踪器控制块420中对写入请求进行分配,并且将写入地址记录在地址阵列422中并将写入数据记录在示例数据阵列424中(框904)。示例IDI接口408通过IDI发送请求(例如,发送到LLC或存储器)(框906)。一旦接收到目的地设备已准备好接收数据的确认,示例IDI接口408就向示例转换器406传输接受指示(例如,GO通知)(框908)。然后,示例转换器406通过IDI将数据发送到目的地(框910)。此外,示例转换器406从地址阵列422中对写入请求解除分配(框912)。然后,示例AXI请求发送器404通过AXI接口向ICE核心212发送对写入请求的状态的指示(例如,成功了、失败了等)(框914)。
图10是被构造为执行图8至图9的指令以实现图3的AXI2IDI转换器310的示例处理器平台1000的框图。处理器平台1000可以为例如服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,手机、智能电话、诸如iPadTM之类的平板电脑)、个人数字助理(PDA)、因特网设备、DVD播放器、CD播放器、数字视频记录器、蓝光播放器、游戏控制台、个人视频记录器、机顶盒、耳机、或其他可穿戴设备、或者任何其他类型的计算设备。
所示示例的处理器平台1000包括处理器1012。所示示例的处理器1012是硬件。例如,处理器1012可以由一个或多个集成电路、逻辑电路、微处理器、GPU、DSP、或来自任何期望系列或制造商的控制器实现。硬件处理器可以是基于半导体(例如,基于硅)的设备。在此示例中,处理器实现示例AXI请求接受器402、示例AXI请求发送器404、示例转换器406、以及示例IDI接口408。
所示示例中的处理器1012包括本地存储器1013(例如,缓存)。所示示例的处理器1012通过总线1018与包括易失性存储器1014和非易失性存储器1016的主存储器进行通信。易失性存储器1014可以通过同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器1016可以由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器1014、1016的访问由存储器控制器控制。
所示示例的处理器平台1000还包括接口电路1020。接口电路1020可以通过任何类型的接口标准来实现,例如,以太网接口、通用串行总线(USB)、接口、近场通信(NFC)接口、和/或PCI-express接口。
在所示的示例中,一个或多个输入设备1022连接到接口电路1020。(一个或多个)输入设备1022允许用户将数据和/或命令输入到处理器1012中。(一个或多个)输入设备可以通过例如音频传感器、麦克风、相机(静物相机或摄像机)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等电位点(isopoint)和/或语音识别系统来实现。
一个或多个输出设备1024也连接到所示示例的接口电路1020。输出设备1024可以例如通过显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管显示器(CRT)、平面转换(in-place switching,IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实现。因此,所示示例的接口电路1020通常包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
所示示例中的接口电路1020还包括诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口之类的通信设备,以促进通过网络1026与外部机器(例如,任何种类的计算设备)交换数据。通信可以通过例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、现场线路无线系统、蜂窝电话系统等来进行。
所示示例的处理器平台1000还包括用于存储软件和/或数据的一个或多个大容量存储设备1028。这样的大容量存储设备1028的示例包括软盘驱动器、硬驱动盘、光盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(RAID)系统、以及数字多功能盘(DVD)驱动器。
图8至图9的机器可执行指令1032可以存储在大容量存储设备1028中、易失性存储器1014中、非易失性存储器1016中、和/或诸如CD或DVD之类的可移动非暂态计算机可读存储介质上。
从上文中,将理解,已经公开了促进在片上系统中实现多个推理计算引擎(或其他类型的专用计算引擎)的示例方法、装置和制品。例如,一致结构加速器促进多个推理计算引擎与聚合式一致性结构的连接。这样的一致结构加速器使得多个计算引擎能够与末级缓存通信,以使得能够在多个推理计算引擎之间、在多个推理计算引擎和处理器核心之间、在多个推理计算引擎和存储器系统之间等共享数据。所公开的方法、装置和制品通过促进有限数量的管芯内互连端口的共享并且同时实现在多个推理计算引擎之间的互连和数据共享(例如,共享来自机器学习模型、深度学习系统、神经网络等的值)来改进使用计算设备的效率。所公开的方法、装置和制品是相应地针对计算机功能的(一个或多个)改进。
尽管本文中公开了某些示例方法、装置和制品,但本专利的覆盖范围不限于此。相反,本专利覆盖了完全落入本专利的权利要求的范围内的所有方法、装置和制品。
本文中公开了用于实现多个推理计算引擎的示例方法、装置、系统、以及制品。进一步的示例及其组合包括以下项:
示例1包括一种装置,该装置包括:第一推理计算引擎;第二推理计算引擎;以及一致结构加速器,该一致结构加速器用于将第一推理计算引擎和第二推理计算引擎耦合到片上系统的聚合式一致性结构,并且该一致结构加速器用于对来自第一推理计算引擎和第二推理计算引擎的请求进行仲裁以利用单个管芯内互连端口。
示例2包括如示例1中所所定义的装置,还包括:第三推理计算引擎和第四推理计算引擎,该第三推理计算引擎和该第四推理计算引擎与第二一致结构加速器相关联。
示例3包括如示例1中所定义的装置,还包括:聚合式一致性结构;以及输入/输出设备系统,该输入/输出设备系统通过聚合式一致性结构通信地耦合到一致结构加速器。
示例4包括如示例3中所定义的装置,还包括:存储器系统,该存储器系统通过聚合式一致性结构耦合到一致结构加速器。
示例5包括如示例4中所定义的装置,还包括:处理器核心,该处理器核心通过聚合式一致性结构耦合到一致结构加速器。
示例6包括如示例1中所定义的装置,其中,聚合式一致性结构包括末级缓存,该末级缓存通过一致结构加速器与第一推理计算引擎和第二推理计算引擎相关联。
示例7包括如示例6中所定义的装置,其中,末级缓存通过环形网络耦合到倒数第二级缓存。
示例8包括如示例1中所定义的装置,其中,一致结构加速器以第一时钟速率接收来自第一推理计算引擎的请求,并且以第二时钟速率向聚合式一致性结构发送请求。
示例9包括如示例1中所定义的装置,其中,一致结构加速器包括转换器,该转换器用于将使用高级可扩展接口协议的通信转换为管芯内互连协议。
示例10包括如示例9中所定义的装置,其中,转换器包括高级可扩展接口请求接受器,该高级可扩展接口请求接受器用于使用高级可扩展接口协议来接收来自第一推理计算引擎和第二推理计算引擎的请求。
示例11包括如示例9中所定义的装置,其中,转换器包括高级可扩展接口请求发送器,该高级可扩展接口请求发送器用于使用高级可扩展接口协议向第一推理计算引擎和第二推理计算引擎发送请求。
示例12包括至少一个非暂态计算机可读介质,该至少一个非暂态计算机可读介质包括指令,该指令当被执行时使得机器至少执行以下操作:在一致结构加速器处通过高级可扩展接口协议来接收来自第一推理计算引擎的第一请求;在一致结构加速器处通过高级可扩展接口协议来接收来自第二推理计算引擎的第二请求;在一致结构加速器处将第一请求转换为管芯内互连接口协议;以及将管芯内互连接口协议的第一请求传输到聚合式一致性结构。
示例13包括如示例12中所定义的至少一个非暂态计算机可读介质,其中,该指令当被执行时使得机器执行以下操作:在一致结构加速器处将第二请求转换为管芯内互连接口协议。
示例14包括如示例12中所定义的至少一个非暂态计算机可读介质,其中,第一请求是用于访问输入/输出设备系统中的设备的请求,该输入/输出设备系统通过聚合式一致性结构通信地耦合到一致结构加速器。
示例15包括如示例14中所定义的至少一个非暂态计算机可读介质,其中,第一请求是用于访问存储器系统中的存储器的请求,该存储器系统通过聚合式一致性结构耦合到一致结构加速器。
示例16包括如示例15中所定义的至少一个非暂态计算机可读介质,其中,第一请求是用于与处理器核心进行通信的请求,该处理器核心通过聚合式一致性结构耦合到一致结构加速器。
示例17包括如示例12中所定义的至少一个非暂态计算机可读介质,其中,聚合式一致性结构包括末级缓存,该末级缓存通过一致结构加速器与第一推理计算引擎和第二推理计算引擎相关联。
示例18包括如示例17中所定义的至少一个非暂态计算机可读介质,其中,末级缓存通过环形网络耦合到倒数第二级缓存。
示例19包括如示例12中所定义的至少一个非暂态计算机可读介质,其中,一致结构加速器以第一时钟速率接收来自第一推理计算引擎的请求,并且以第二时钟速率向聚合式一致性结构发送请求。
示例20包括如示例12中所定义的至少一个非暂态计算机可读介质,其中,一致结构加速器包括转换器,该转换器用于将使用高级可扩展接口协议的通信转换为管芯内互连协议。
示例21包括如示例20中所定义的至少一个非暂态计算机可读介质,其中,转换器包括高级可扩展接口请求接受器,该高级可扩展接口请求接受器用于使用高级可扩展接口协议来接收来自第一推理计算引擎和第二推理计算引擎的请求。
示例22包括如示例20中所定义的至少一个非暂态计算机可读介质,其中,转换器包括高级可扩展接口请求发送器,该高级可扩展接口请求发送器用于使用高级可扩展接口协议向第一推理计算引擎和第二推理计算引擎发送请求。
示例23包括一种方法,包括:在一致结构加速器处通过高级可扩展接口协议来接收来自第一推理计算引擎的第一请求;在一致结构加速器处通过高级可扩展接口协议来接收来自第二推理计算引擎的第二请求;在一致结构加速器处将第一请求转换为管芯内互连接口协议;以及将管芯内互连接口协议的第一请求传输到聚合式一致性结构。
示例24包括如示例23中所定义的方法,还包括:在一致结构加速器处将第二请求转换为管芯内互连接口协议。
示例25包括如示例23中所定义的方法,其中,第一请求是用于访问输入/输出设备系统中的设备的请求,该输入/输出设备系统通过聚合式一致性结构通信地耦合到一致结构加速器。
示例26包括如示例25中所定义的方法,其中,第一请求是用于访问存储器系统中的存储器的请求,该存储器系统通过聚合式一致性结构耦合到一致结构加速器。
示例27包括如示例26中所定义的方法,其中,第一请求是用于与处理器核心进行通信的请求,该处理器核心通过聚合式一致性结构耦合到一致结构加速器。
示例28包括如示例23中所定义的方法,其中,聚合式一致性结构包括末级缓存,该末级缓存通过一致结构加速器与第一推理计算引擎和第二推理计算引擎相关联。
示例29包括如示例28中所定义的方法,其中,末级缓存通过环形网络耦合到倒数第二级缓存。
示例30包括如示例23中所定义的方法,其中,一致结构加速器以第一时钟速率接收来自第一推理计算引擎的请求,并且以第二时钟速率向聚合式一致性结构发送请求。
示例31包括如示例23中所定义的方法,其中,一致结构加速器包括转换器,该转换器用于将使用高级可扩展接口协议的通信转换为管芯内互连协议。
示例32包括如示例31中所定义的方法,其中,转换器包括高级可扩展接口请求接受器,该高级可扩展接口请求接受器用于使用高级可扩展接口协议来接收来自第一推理计算引擎和第二推理计算引擎的请求。
示例33包括如示例31中所定义的方法,其中,转换器包括高级可扩展接口请求发送器,该高级可扩展接口请求发送器用于使用高级可扩展接口协议向第一推理计算引擎和第二推理计算引擎发送请求。
所附权利要求通过引用结合到本具体实施方式中,其中每个权利要求独立地作为本公开的单独实施例。
Claims (19)
1.一种装置,包括:
第一推理计算引擎;
第二推理计算引擎;以及
一致结构加速器(ACF),所述ACF用于将所述第一推理计算引擎和所述第二推理计算引擎耦合到片上系统的聚合式一致性结构,所述ACF用于对来自所述第一推理计算引擎和所述第二推理计算引擎的请求进行仲裁以利用单个管芯内互连端口。
2.根据权利要求1所述的装置,还包括:第三推理计算引擎和第四推理计算引擎,所述第三推理计算引擎和所述第四推理计算引擎与第二ACF相关联。
3.根据权利要求1-2中任一项所述的装置,还包括:
所述聚合式一致性结构;以及
输入/输出设备系统,所述输入/输出设备系统通过所述聚合式一致性结构通信地耦合到所述ACF。
4.根据权利要求3所述的装置,还包括:存储器系统,所述存储器系统通过所述聚合式一致性结构耦合到所述ACF。
5.根据权利要求4所述的装置,还包括:处理器核心,所述处理器核心通过所述聚合式一致性结构耦合到所述ACF。
6.根据权利要求1-2中任一项所述的装置,其中,所述聚合式一致性结构包括末级缓存,所述末级缓存通过所述ACF与所述第一推理计算引擎和所述第二推理计算引擎相关联。
7.根据权利要求6所述的装置,其中,所述末级缓存通过环形网络耦合到倒数第二级缓存。
8.根据权利要求1-2中任一项所述的装置,其中,所述ACF以第一时钟速率接收来自所述第一推理计算引擎的请求,并且以第二时钟速率向所述聚合式一致性结构发送请求。
9.根据权利要求1-2中任一项所述的装置,其中,所述ACF包括转换器,所述转换器用于将使用高级可扩展接口协议的通信转换为管芯内互连协议。
10.根据权利要求9所述的装置,其中,所述转换器包括高级可扩展接口请求接受器,所述高级可扩展接口请求接受器用于使用所述高级可扩展接口协议来接收来自所述第一推理计算引擎和所述第二推理计算引擎的请求。
11.根据权利要求9所述的装置,其中,所述转换器包括高级可扩展接口请求发送器,所述高级可扩展接口请求发送器用于使用所述高级可扩展接口协议向所述第一推理计算引擎和所述第二推理计算引擎发送请求。
12.一种方法,包括:
在一致结构加速器(ACF)处通过高级可扩展接口协议来接收来自第一推理计算引擎的第一请求;
在所述ACF处通过所述高级可扩展接口协议来接收来自第二推理计算引擎的第二请求;
在所述ACF处将所述第一请求转换为管芯内互连接口协议;以及
将所述管芯内互连接口协议的第一请求传输到聚合式一致性结构。
13.根据权利要求12所述的方法,还包括:在所述ACF处将所述第二请求转换为管芯内互连接口协议。
14.根据权利要求13所述的方法,其中,所述第一请求是用于访问输入/输出设备系统中的设备的请求,所述输入/输出设备系统通过所述聚合式一致性结构通信地耦合到所述ACF。
15.根据权利要求12-14中任一项所述的方法,还包括:以第一时钟速率接收来自所述第一推理计算引擎的请求,并且以第二时钟速率向所述聚合式一致性结构发送请求。
16.根据权利要求12-14中任一项所述的方法,还包括:将使用高级可扩展接口协议的通信转换为管芯内互连协议。
17.根据权利要求16所述的方法,还包括:使用所述高级可扩展接口协议来接收来自所述第一推理计算引擎和所述第二推理计算引擎的请求。
18.根据权利要求16所述的方法,还包括:使用所述高级可扩展接口协议向所述第一推理计算引擎和所述第二推理计算引擎发送请求。
19.一种机器可读介质,包括代码,所述代码当被执行时使得机器执行权利要求12-18中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/542,085 US11151074B2 (en) | 2019-08-15 | 2019-08-15 | Methods and apparatus to implement multiple inference compute engines |
US16/542,085 | 2019-08-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112395246A true CN112395246A (zh) | 2021-02-23 |
Family
ID=68695382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010547189.1A Pending CN112395246A (zh) | 2019-08-15 | 2020-06-16 | 用于实现多个推理计算引擎的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11151074B2 (zh) |
CN (1) | CN112395246A (zh) |
DE (1) | DE102020118205A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116721007A (zh) * | 2023-08-02 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 任务控制方法、系统及装置、电子设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11295205B2 (en) * | 2018-09-28 | 2022-04-05 | Qualcomm Incorporated | Neural processing unit (NPU) direct memory access (NDMA) memory bandwidth optimization |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3087481A4 (en) * | 2013-12-23 | 2017-08-16 | Intel Corporation | System-on-a-chip (soc) including hybrid processor cores |
US11204867B2 (en) * | 2017-09-29 | 2021-12-21 | Intel Corporation | PCIe controller with extensions to provide coherent memory mapping between accelerator memory and host memory |
US11105854B2 (en) * | 2017-11-02 | 2021-08-31 | Intel Corporation | System, apparatus and method for inter-die functional testing of an integrated circuit |
US10599568B2 (en) * | 2018-04-09 | 2020-03-24 | Intel Corporation | Management of coherent links and multi-level memory |
US11948073B2 (en) * | 2018-04-20 | 2024-04-02 | Advanced Micro Devices, Inc. | Machine learning inference engine scalability |
US20200134445A1 (en) * | 2018-10-31 | 2020-04-30 | Advanced Micro Devices, Inc. | Architecture for deep q learning |
US11657124B2 (en) * | 2018-12-10 | 2023-05-23 | Apple Inc. | Integrating binary inference engines and model data for efficiency of inference tasks |
-
2019
- 2019-08-15 US US16/542,085 patent/US11151074B2/en active Active
-
2020
- 2020-06-16 CN CN202010547189.1A patent/CN112395246A/zh active Pending
- 2020-07-10 DE DE102020118205.8A patent/DE102020118205A1/de active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116721007A (zh) * | 2023-08-02 | 2023-09-08 | 摩尔线程智能科技(北京)有限责任公司 | 任务控制方法、系统及装置、电子设备和存储介质 |
CN116721007B (zh) * | 2023-08-02 | 2023-10-27 | 摩尔线程智能科技(北京)有限责任公司 | 任务控制方法、系统及装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US11151074B2 (en) | 2021-10-19 |
US20190370209A1 (en) | 2019-12-05 |
DE102020118205A1 (de) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020001459A1 (zh) | 数据处理方法、远程直接访存网卡和设备 | |
US20090089459A1 (en) | Schedule and data caching for wireless tranmission | |
US20130238860A1 (en) | Administering Registered Virtual Addresses In A Hybrid Computing Environment Including Maintaining A Watch List Of Currently Registered Virtual Addresses By An Operating System | |
US9286232B2 (en) | Administering registered virtual addresses in a hybrid computing environment including maintaining a cache of ranges of currently registered virtual addresses | |
US9405725B2 (en) | Writing message to controller memory space | |
CN103647807A (zh) | 一种信息缓存方法、装置和通信设备 | |
US9390036B2 (en) | Processing data packets from a receive queue in a remote direct memory access device | |
WO2013109640A1 (en) | Techniques for command validation for access to a storage device by a remote client | |
CN112395246A (zh) | 用于实现多个推理计算引擎的方法和装置 | |
US11347567B2 (en) | Methods and apparatus for multiplexing data flows via a single data structure | |
US20200210224A1 (en) | Methods and apparatus for verifying completion of groups of data transactions between processors | |
JP2011170848A (ja) | トレースデータの優先度の選択 | |
EP4109285A1 (en) | Methods and apparatus for deterministic low latency packet forwarding for daisy chaining of network devices | |
US20240187015A1 (en) | Methods and apparatus to write data to registers | |
US7093037B2 (en) | Generalized queue and specialized register configuration for coordinating communications between tightly coupled processors | |
US7805579B2 (en) | Methods and arrangements for multi-buffering data | |
KR101698242B1 (ko) | Io 및 인바운드 av를 위한 토폴로지 및 대역폭 관리 | |
US10505704B1 (en) | Data uploading to asynchronous circuitry using circular buffer control | |
CN114661409A (zh) | 处理数据分组以进行逻辑和虚拟交换机加速的方法和设备 | |
US7673091B2 (en) | Method to hide or reduce access latency of a slow peripheral in a pipelined direct memory access system | |
US10389658B2 (en) | Auto zero copy applied to a compute element within a systolic array | |
WO2022121287A1 (zh) | 命令下发方法、装置、处理设备、计算机设备及存储介质 | |
US20240134650A1 (en) | Devices transferring cache lines, including metadata on external links | |
US11693795B2 (en) | Methods and apparatus to extend local buffer of a hardware accelerator | |
CN110737614A (zh) | 具有dma加速器的电子设备及其dma命令处理方法 |
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 |