CN112100121B - 计算装置、计算设备以及可编程调度方法 - Google Patents

计算装置、计算设备以及可编程调度方法 Download PDF

Info

Publication number
CN112100121B
CN112100121B CN202011283070.4A CN202011283070A CN112100121B CN 112100121 B CN112100121 B CN 112100121B CN 202011283070 A CN202011283070 A CN 202011283070A CN 112100121 B CN112100121 B CN 112100121B
Authority
CN
China
Prior art keywords
request
synchronization
memory
synchronization channel
execution
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.)
Active
Application number
CN202011283070.4A
Other languages
English (en)
Other versions
CN112100121A (zh
Inventor
不公告发明人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Bilin Technology Development Co ltd
Shanghai Bi Ren Technology Co ltd
Original Assignee
Beijing Bilin Technology Development Co ltd
Shanghai Biren Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Bilin Technology Development Co ltd, Shanghai Biren Intelligent Technology Co Ltd filed Critical Beijing Bilin Technology Development Co ltd
Priority to CN202011283070.4A priority Critical patent/CN112100121B/zh
Publication of CN112100121A publication Critical patent/CN112100121A/zh
Application granted granted Critical
Publication of CN112100121B publication Critical patent/CN112100121B/zh
Priority to US17/524,700 priority patent/US11900175B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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
    • G06F15/781On-chip cache; Off-chip memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multi Processors (AREA)

Abstract

本公开的实施例涉及计算装置、计算设备和用于数据加载和执行的可编程调度的方法,涉及计算机领域。该计算装置与第一计算核和第一存储器相连,其包括:高速暂存存储器;第二计算核,用于特定领域加速;第一硬件队列,用于从第一计算核接收加载请求,加载请求指示从第一存储器加载数据到高速暂存存储器;第二硬件队列,用于从第一计算核接收执行请求,执行请求指示从高速暂存存储器提取数据到第二计算核以便执行;以及同步单元,被配置为通过同步通道、加载请求中的同步通道配置信息、执行请求中的同步通道配置信息,使得加载请求和执行请求的触发相互配合。由此,能够增强灵活性、吞吐量和整体性能。

Description

计算装置、计算设备以及可编程调度方法
技术领域
本公开的实施例总体涉及计算机领域,具体涉及计算装置、计算设备以及用于计算设备中的数据加载和执行的可编程调度方法。
背景技术
传统基于专用集成电路(ASIC)的特定领域加速器(Domain SpecificAccelerator,DSA)系统往往只能针对特定的某一领域实现加速。由于ASIC已经固定,DSA系统对于新兴的一些计算要求,其执行逻辑不能够随之改进,从而缺少灵活性,导致前向兼容性差。
发明内容
提供了一种计算装置、计算设备以及用于计算设备中的数据加载和执行的可编程调度的方法,能够增强灵活性、吞吐量和整体性能。
根据本公开的第一方面,提供了一种计算装置。该计算装置与计算设备中的第一计算核和第一存储器相连,第一计算核用于通用图形处理,其中该计算装置包括:高速暂存存储器,与第一存储器相连;第二计算核,用于特定领域加速,第二计算核与高速暂存存储器相连;第一硬件队列,用于从第一计算核接收加载请求,第一硬件队列与第一计算核和第一存储器相连,加载请求指示从第一存储器加载数据到高速暂存存储器;第二硬件队列,用于从第一计算核接收执行请求,第二硬件队列与第一计算核和高速暂存存储器相连,执行请求指示从高速暂存存储器提取数据到第二计算核以便执行;以及同步单元,与第一硬件队列和第二硬件队列相连,其中同步单元被配置为通过同步通道、第一硬件队列中的加载请求中的同步通道配置信息、第二硬件队列中的执行请求中的同步通道配置信息,使得加载请求和执行请求的触发相互配合。
根据本公开的第二方面,提供了一种计算设备。该计算设备包括第一计算核、第一存储器以及根据第一方面所述的计算装置,第一计算核用于通用图形处理,计算装置与第一计算核和第一存储器相连,其中第一计算核用于向计算装置中的第一硬件队列中添加加载请求以及向计算装置中的第二硬件队列中添加执行请求。
根据本公开的第三方面,提供了用于计算设备中的数据加载与执行的可编程调度的方法,计算设备包括第一计算核、第一存储器、第一硬件队列、第二硬件队列、高速暂存存储器、第二计算核和同步单元,第一计算核用于通用图形处理,第二计算核用于特定领域加速,该方法包括:在第一计算核处:向第一硬件队列中添加加载请求,加载请求指示从第一存储器加载数据到高速暂存存储器;以及向第二硬件队列中添加执行请求,执行请求指示从高速暂存存储器提取数据到第二计算核以便执行;以及在同步单元处:通过同步通道、第一硬件队列中的加载请求中的同步通道配置信息、第二硬件队列中的执行请求中的同步通道配置信息,使得加载请求和执行请求的触发相互配合。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
图1是根据本公开的实施例的计算设备100的示意图。
图2是根据本公开的实施例的用于计算设备110中的数据加载与执行的可编程调度的方法200的示意图。
图3是根据本公开的实施例的加载请求触发过程300的示意图。
图4是根据本公开的实施例的执行请求触发过程400的示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,传统基于ASIC的DSA系统缺少灵活性,导致前向兼容性差。
为了解决上述问题,本公开提供了一种计算装置、计算设备和用于数据加载和执行的可调度方法,使得加载请求和执行请求的触发相互配合。
图1示出了根据本公开的实施例的计算设备100的示意框图。如图1所示,计算设备100包括第一计算核110、第一存储器120和计算装置130,其中计算装置130与第一计算核110和第一存储器120相连。
关于第一计算核110,其可用于通用图形处理,例如包括但不限于GPGPU核。
关于第一存储器120,其例如包括但不限于随机存储存储器,诸如静态随机存取存储器(SRAM)、动态随机存储存储器(DRAM)。
关于计算装置130,其可以包括高速暂存存储器(scratchpad memory)131、第二计算核132、第一硬件队列133、第二硬件队列134和同步单元135。
关于高速暂存存储器131,其与第一存储器120相连,可以接收并存储从第一存储器120加载的数据。高速暂存存储器131例如包括但不限于静态随机存取存储器(SRAM)。高速暂存存储器131例如对于程序员是可见的,即可编程的。
关于第二计算核132,其可用于特定领域加速,例如包括但不限于特定领域加速器(DSA)核。第二计算核132与高速暂存存储器131相连,其可以接收从高速暂存存储器131提取的数据并针对这些数据进行执行。第一计算核110和第二计算核132可以实现不同类型或者不同阶段的计算任务。此外,第一计算核110也可以控制第二计算核132的执行,使得第二计算核132成为第一计算核110的协处理核。
关于第一硬件队列133,其可用于从第一计算核110接收加载请求。第一硬件队列133与第一计算核110和第一存储器120相连。加载请求指示从第一存储器120加载数据到高速暂存存储器131。加载请求也可以称为加载指令。
加载请求中可以带有同步通道配置信息。同步通道配置信息例如包括但不限于同步通道同步使能标记、同步通道同步标识、同步通道设置使能标记以及同步通道设置标识。
此外,加载请求中还可以带有第一存储器120中的第一地址和高速暂存存储器131中的第二地址,以便将第一存储器120中位于第一地址上的数据加载到高速暂存存储器131中的第二地址。
关于第二硬件队列134,其可用于从第一计算核110接收执行请求。第二硬件队列134与第一计算核110和高速暂存存储器131相连。执行请求指示从高速暂存存储器131提取数据到第二计算核132以便执行。执行请求也可以理解为执行指令。
执行请求中可以带有同步通道配置信息。同步通道配置信息例如包括但不限于同步通道同步使能标记、同步通道同步标识、同步通道设置使能标记以及同步通道设置标识。
此外,执行请求中还可以带有高速暂存存储器131中的第三地址,以便将高速暂存存储器131中位于第三地址上的数据提取到第二计算核132。在一些实施例中,加载请求中的第二地址与执行请求中的第三地址相同。在另一些实施例中,加载请求中的第二地址与执行请求中的第三地址不同。上述同步通道配置信息和地址信息例如可以是程序员可编程的,因而可以根据实际需求灵活设置。
可见,第一硬件队列133用于加载数据,其充当第二计算核132的数据生产者。第二计算核132消费来自高速暂存存储器131的数据。第二硬件队列134出口侧在触发执行请求之前需要检查执行请求所需的数据是否准备好。
第二计算核132释放高速暂存存储器空间,其充当用于第一硬件队列133的缓冲单元空间生产者。第一硬件队列133在触发数据加载请求到第一存储器120之前需检查缓冲单元空间是否准备好。
因而高速暂存存储器131和第二计算核132相互形成了生产者和消费者关系。
关于同步单元135,其与第一硬件队列133和第二硬件队列134相连,例如可以实现为电子硬件。同步单元135可以被配置为通过同步通道、第一硬件队列133中的加载请求中的同步通道配置信息、第二硬件队列134中的执行请求中的同步通道配置信息,使得加载请求和执行请求的触发相互配合。同步通道例如可以为多个,例如包括但不限于32或64个同步通道,其可以分为2组,分别用于数据加载和执行。
由此,能够通过加载请求和执行请求中的同步通道配置信息以及同步通道,实现数据加载和执行的可编程调度,满足生产者和消费者之间的同步,增强了灵活性从而提高前向兼容性,并且最大程度利用片上资源实现常用和新兴的计算要求,提高了吞吐量和整体性能。此外,也提供了一种基于GPGPU的DSA计算解决方案。
下面结合图3和图4详细描述加载请求和执行请求的触发过程。
在一些实施例中,同步单元135可以被配置为基于加载请求中的同步通道同步使能标记的设置与否,向第一存储器120发送加载请求,以从第一存储器120加载数据到高速暂存存储器131。例如,加载请求可以带有第一存储器120中的第一地址和高速暂存存储器131中的第二地址,以便将第一存储器120中位于第一地址上的数据加载到高速暂存存储器131中的第二地址。
同步通道同步使能标记例如可以通过加载请求中的1比特来实现。例如该比特的值为1表示同步通道同步使能标记被设置,该比特的值为0表示同步通道同步使能标记未被设置,或者反之亦然。应当理解,1比特只是举例说明,也可以采用更多比特来实现,本公开的范围在此不受限制。
具体来说,参见图3,同步单元135可以被配置为在框302处确定加载请求中的同步通道同步使能标记是否被设置。同步单元135还可以被配置为如果在框302处确定加载请求中的同步通道同步使能标记被设置,则在框304处确定与加载请求中的同步通道同步标识相关联的同步通道是否被设置。同步单元135还可以被配置为如果在框304处确定与加载请求中的同步通道同步标识相关联的同步通道被设置,则在框306处向第一存储器120发送加载请求,以从第一存储器120加载数据到高速暂存存储器131。
加载请求中的同步通道同步标识指示加载请求需等待或同步的同步通道,例如B。该同步通道被设置表明加载请求中指示的高速暂存存储器131中的第二地址已经可用,可以触发加载请求以便加载数据到高速暂存存储器131中的第二地址。该同步通道未被设置则表明加载请求中指示的高速暂存存储器131中的第二地址上仍有数据待处理,不可触发加载请求加载数据到该第二地址,以防发生数据覆盖。
此外,同步单元135还可以被配置为如果在框302处确定加载请求中的同步通道同步使能标记未被设置,则在框306向第一存储器120发送加载请求,以从第一存储器120加载数据到高速暂存存储器131。同步通道同步使能标记未被设置表明加载请求无需等待任何同步通道而直接触发。例如,对于初始的加载请求来说,此时高速暂存存储器131是空的,从而该加载请求无需等待任何同步通道,因而其中的同步通道同步使能标记可以未被设置,从而可以直接触发加载请求。
在从第一存储器120加载数据到高速暂存存储器131(具体为高速暂存存储器131中的第二地址)完成之后,同步单元135可以被配置为在框308处确定加载请求中的同步通道设置使能标记是否被设置,以及如果在框308处确定加载请求中的同步通道设置使能标记被设置,则在框310处设置与加载请求中的同步通道设置标识相关联的同步通道。
与同步通道同步使能标记类似,同步通道设置使能标记也可以通过加载请求中的1比特来实现,例如该比特的值为1表示同步通道同步使能标记被设置,该比特的值为0表示同步通道同步使能标记未被设置,或者反之亦然。应当理解,1比特只是举例说明,也可以采用更多比特来实现,本公开的范围在此不受限制。
在同步通道设置使能标记被设置时,加载请求中会带有同步通道设置标识,用于指示需设置的同步通道,例如A。通过设置与该同步通道设置标识相关联的同步通道,可以指示从第一存储器120加载数据到高速暂存存储器131中的第二地址已经完成,从而表明基于该第二地址上的数据的执行请求可以被触发。
此外,同步单元135还可以被配置为确定执行请求中的同步通道同步使能标记是否被设置,以及如果确定执行请求中的同步通道同步使能标记被设置,则基于与执行请求中的同步通道同步标识相关联的同步通道的设置与否,触发执行请求,以从高速暂存存储器131提取数据到第二计算核131,以便执行。
具体来说,参见图4,同步单元135可以被配置为在框402处确定执行请求中的同步通道同步使能标记是否被设置,以及如果在框402处确定执行请求中的同步通道同步使能标记被设置,则在框404处确定与执行请求中的同步通道同步标识相关联的同步通道是否被设置。如果在框404处确定与执行请求中的同步通道同步标识相关联的同步通道被设置,则同步单元135可以被配置为在框406处触发执行请求,以从高速暂存存储器131提取数据到第二计算核131,以便执行。执行请求中可以带有高速暂存存储器131中的第三地址,以便将高速暂存存储器131中位于第三地址上的数据提取到第二计算核132。
同步单元135还可以被配置为如果在框402处确定执行请求中的同步通道同步使能标记未被设置,则在框406处触发执行请求,以从高速暂存存储器131提取数据到第二计算核131,以便执行。
同步通道同步使能标记例如可以通过执行请求中的1比特来实现,与上文加载请求中的同步通道同步使能标记类似,不再赘述。
同步通道同步使能标记被设置表明执行请求需等待同步通道,此时,执行请求中会带有同步通道同步标识,用于指示需等待的同步通道。该同步通道被设置表明执行请求中指示的高速暂存存储器131中的第三地址上的数据已经加载完成,可以触发执行请求。该同步通道未被设置则表明执行请求中指示的高速暂存存储器131中的第三地址上的数据尚未加载完成,不可触发执行请求。
同步通道同步使能标记未被设置表明执行请求无需等待任何同步通道,可直接触发。
在一些实施例中,加载请求中的同步通道设置标识与执行请求中的同步通道同步标识相同。在此情况下,第二地址与第三地址相同。执行请求的触发依赖于加载请求从第一存储器120加载数据到高速暂存存储器131完成,也就是依赖于与加载请求中的同步通道设置标识相关联的同步通道被设置。
在另一些实施例中,加载请求中的同步通道设置标识与执行请求中的同步通道同步标识不同。在此情况下,第二地址和第三地址不同。执行请求的触发不依赖于加载请求从第一存储器120加载数据到高速暂存存储器131完成,也就是不依赖于与加载请求中的同步通道设置标识相关联的同步通道被设置。
回到图4,在从高速暂存存储器131(具体为高速暂存存储器131中的第三地址)提取数据到第二计算核132完成之后,同步单元135还可以被配置为在框408处确定执行请求中的同步通道设置标识是否被设置,以及如果在框408处确定执行请求中的同步通道设置使能标记被设置,则在框410处设置与执行请求中的同步通道设置标识相关联的同步通道。
同步通道设置使能标记也可以通过执行请求中的1比特来实现,与上文加载请求中的同步通道设置使能标记类似,不再赘述。
在同步通道设置使能标记被设置时,执行请求中会带有同步通道设置标识,用于指示需设置的同步通道,例如A。通过设置与该同步通道设置标识相关联的同步通道,可以指示从高速暂存存储器131中的第三地址提取数据到第二计算核132已经完成,从而表明基于该第三地址上的空间的加载请求可以被触发,以便从第一存储器120加载数据到高速暂存存储器131中的第三地址上。
由此,通过数据加载和执行的这种可编程调度(也可称为可编程同步),使得高速暂存存储器与第二计算核像流水线一般工作,能够充分并行地进行加载数据和执行数据,满足生产者和消费者之间的同步,增强了灵活性并且最大程度利用片上资源实现常用和新兴的计算要求,提高了吞吐量和整体性能。
图2示出了根据本公开的实施例的用于计算设备100中的数据加载和执行的可编程调度过程200的示意图。
如图2所示,在201,第一计算核(未示出)向第一硬件队列220添加加载请求。随后,如果第一硬件队列220中的加载请求中设置了同步通道同步使能标记和同步通道同步标识,例如A,则在202等待与该同步通道同步标识相关联的同步通道(例如同步通道A)被设置,在该同步通道被设置后,在203向第一存储器(未示出)发送加载请求,以从第一存储器加载数据到高速暂存存储器240。
如果第一硬件队列220中的加载请求中未设置同步通道同步使能标记,则无需等待同步通道,而直接在203向第一存储器发送加载请求。
在204,数据从第一存储器加载到高速暂存存储器240。
在数据加载完成以后,如果该加载请求中设置了同步通道设置使能标记和同步通道设置标识,例如B,则在205设置与该同步通道设置标识相关联的同步通道,例如同步通道B。
在206,第一计算核向第二硬件队列230添加执行请求。
如果第二硬件队列230中的执行请求中设置了同步通道同步使能标记和同步通道同步标识,例如B,则在207等待与该同步通道同步标识相关联的同步通道被设置。在该同步通道被设置(例如在205)之后,在208触发执行请求,以从高速暂存存储器240提取数据到第二计算核250。
在209,数据从高速暂存存储器240提取到第二计算核250,随后在第二计算核240开始执行。
在从高速暂存存储器240提取数据到第二计算核250完成之后,如果该执行请求中设置了同步通道设置使能标记和同步通道设置标识,例如A,则在210设置与该同步通道设置标识相关联的同步通道,例如同步通道A,表明高速暂存存储器240中的执行输入数据空间已经完全使用并且该空间能够是否,使得基于同步通道A的后续加载请求能够重新使用该高速暂存存储器空间以加载用于后续执行请求的数据。
由此,互为生产者和消费者的用于加载请求的第一硬件队列和用于执行请求的第二硬件队列能够通过同步通道彼此配合,实现流水线作业,提高并行化程度,从而增强了灵活性并且最大程度利用片上资源实现常用和新兴的计算要求,提高了吞吐量和整体性能。
本领域技术人员可以理解,这里所描述的方法步骤不仅仅局限于附图中所示例性示出的顺序,而是可以按照任何其他可行的顺序来执行。
本公开的以上描述用于使本领域的任何普通技术人员能够实现或使用本公开。对于本领域普通技术人员来说,本公开的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本公开的精神和保护范围的情况下应用于其它变形。因此,本公开并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。

Claims (18)

1.一种计算装置,所述计算装置与计算设备中的第一计算核和第一存储器相连,所述第一计算核用于通用图形处理,其中所述计算装置包括:
高速暂存存储器,与所述第一存储器相连;
第二计算核,用于特定领域加速,所述第二计算核与所述高速暂存存储器相连;
第一硬件队列,用于从所述第一计算核接收加载请求,所述第一硬件队列与所述第一计算核和所述第一存储器相连,所述加载请求指示从所述第一存储器加载数据到所述高速暂存存储器;
第二硬件队列,用于从所述第一计算核接收执行请求,所述第二硬件队列与所述第一计算核和所述高速暂存存储器相连,所述执行请求指示从所述高速暂存存储器提取数据到所述第二计算核以便执行;以及
同步单元,与所述第一硬件队列和所述第二硬件队列相连,其中所述同步单元被配置为通过同步通道、所述第一硬件队列中的加载请求中的同步通道配置信息、所述第二硬件队列中的执行请求中的同步通道配置信息,使得所述加载请求和所述执行请求的触发相互配合。
2.根据权利要求1所述的计算装置,其中所述同步单元具体被配置为:
基于所述加载请求中的同步通道同步使能标记的设置与否,向所述第一存储器发送所述加载请求,以从所述第一存储器加载数据到所述高速暂存存储器;
在从所述第一存储器加载数据到所述高速暂存存储器完成之后,如果确定所述加载请求中的同步通道设置使能标记被设置,则设置与所述加载请求中的同步通道设置标识相关联的同步通道;以及
如果确定所述执行请求中的同步通道同步使能标记被设置,则基于与所述执行请求中的同步通道同步标识相关联的同步通道的设置与否,触发所述执行请求,以从所述高速暂存存储器提取数据到所述第二计算核,以便执行。
3.根据权利要求2所述的计算装置,其中所述同步单元还被配置为:
如果确定所述加载请求中的同步通道同步使能标记被设置,则确定与所述加载请求中的同步通道同步标识相关联的同步通道是否被设置;以及
如果确定与所述加载请求中的同步通道同步标识相关联的同步通道被设置,则向所述第一存储器发送所述加载请求,以从所述第一存储器加载数据到所述高速暂存存储器。
4.根据权利要求2所述的计算装置,其中所述同步单元还被配置为:
如果确定所述加载请求中的同步通道同步使能标记未被设置,则向所述第一存储器发送所述加载请求,以从所述第一存储器加载数据到所述高速暂存存储器。
5.根据权利要求2所述的计算装置,其中所述同步单元还被配置为:
如果确定与所述执行请求中的同步通道同步标识相关联的同步通道被设置,则触发所述执行请求,以从所述高速暂存存储器提取数据到所述第二计算核,以便执行。
6.根据权利要求2所述的计算装置,其中所述同步单元还被配置为:
如果确定所述执行请求中的同步通道同步使能标记未被设置,则触发所述执行请求,以从所述高速暂存存储器提取数据到所述第二计算核,以便执行。
7.根据权利要求2或3所述的计算装置,其中所述同步单元还被配置为:
在从所述高速暂存存储器提取数据到所述第二计算核完成之后,如果确定所述执行请求中的同步通道设置使能标记被设置,则设置与所述执行请求中的同步通道设置标识相关联的同步通道。
8.根据权利要求2所述的计算装置,其中所述加载请求中的同步通道设置标识与所述执行请求中的同步通道同步标识相同或不同。
9.根据权利要求7所述的计算装置,其中所述加载请求中的同步通道同步标识与所述执行请求中的同步通道设置标识相同或不同。
10.一种计算设备,包括第一计算核、第一存储器以及根据权利要求1-9中任一项所述的计算装置,所述第一计算核用于通用图形处理,所述计算装置与所述第一计算核和所述第一存储器相连,其中所述第一计算核用于向所述计算装置中的第一硬件队列中添加加载请求以及向所述计算装置中的第二硬件队列中添加执行请求。
11.一种用于计算设备中的数据加载与执行的可编程调度的方法,所述计算设备包括第一计算核、第一存储器、第一硬件队列、第二硬件队列、高速暂存存储器、第二计算核和同步单元,所述第一计算核用于通用图形处理,所述第二计算核用于特定领域加速,所述方法包括:
在所述第一计算核处:
向所述第一硬件队列中添加加载请求,所述加载请求指示从所述第一存储器加载数据到所述高速暂存存储器;以及
向所述第二硬件队列中添加执行请求,所述执行请求指示从所述高速暂存存储器提取数据到所述第二计算核以便执行;以及
在所述同步单元处:
通过同步通道、所述第一硬件队列中的加载请求中的同步通道配置信息、所述第二硬件队列中的执行请求中的同步通道配置信息,使得所述加载请求和所述执行请求的触发相互配合;
其中使得所述加载请求和所述执行请求的触发相互配合包括:
基于所述加载请求中的同步通道同步使能标记的设置与否,向所述第一存储器发送所述加载请求,以从所述第一存储器加载数据到所述高速暂存存储器;
在从所述第一存储器加载数据到所述高速暂存存储器完成之后,如果确定所述加载请求中的同步通道设置使能标记被设置,则设置与所述加载请求中的同步通道设置标识相关联的同步通道;以及
如果确定所述执行请求中的同步通道同步使能标记被设置,则基于与所述执行请求中的同步通道同步标识相关联的同步通道的设置与否,触发所述执行请求,以从所述高速暂存存储器提取数据到所述第二计算核,以便执行。
12.根据权利要求11所述的方法,其中向所述第一存储器发送所述加载请求包括:
如果确定所述加载请求中的同步通道同步使能标记被设置,则确定与所述加载请求中的同步通道同步标识相关联的同步通道是否被设置;以及
如果确定与所述加载请求中的同步通道同步标识相关联的同步通道被设置,则向所述第一存储器发送所述加载请求,以从所述第一存储器加载数据到所述高速暂存存储器。
13.根据权利要求11所述的方法,其中向所述第一存储器发送所述加载请求包括:
如果确定所述加载请求中的同步通道同步使能标记未被设置,则向所述第一存储器发送所述加载请求,以从所述第一存储器加载数据到所述高速暂存存储器。
14.根据权利要求11所述的方法,其中触发所述执行请求包括:
如果确定与所述执行请求中的同步通道同步标识相关联的同步通道被设置,则触发所述执行请求,以从所述高速暂存存储器提取数据到所述第二计算核,以便执行。
15.根据权利要求11所述的方法,其中使得所述加载请求和所述执行请求的触发相互配合还包括:
如果确定所述执行请求中的同步通道同步使能标记未被设置,则触发所述执行请求,以从所述高速暂存存储器提取数据到所述第二计算核,以便执行。
16.根据权利要求11或12所述的方法,其中使得所述加载请求和所述执行请求的触发相互配合还包括:
在从所述高速暂存存储器提取数据到所述第二计算核完成之后,如果确定所述执行请求中的同步通道设置使能标记被设置,则设置与所述执行请求中的同步通道设置标识相关联的同步通道。
17.根据权利要求11所述的方法,其中所述加载请求中的同步通道设置标识与所述执行请求中的同步通道同步标识相同或不同。
18.根据权利要求16所述的方法,其中所述加载请求中的同步通道同步标识与所述执行请求中的同步通道设置标识相同或不同。
CN202011283070.4A 2020-11-17 2020-11-17 计算装置、计算设备以及可编程调度方法 Active CN112100121B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011283070.4A CN112100121B (zh) 2020-11-17 2020-11-17 计算装置、计算设备以及可编程调度方法
US17/524,700 US11900175B2 (en) 2020-11-17 2021-11-11 Computing device, computing equipment and programmable scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011283070.4A CN112100121B (zh) 2020-11-17 2020-11-17 计算装置、计算设备以及可编程调度方法

Publications (2)

Publication Number Publication Date
CN112100121A CN112100121A (zh) 2020-12-18
CN112100121B true CN112100121B (zh) 2021-02-12

Family

ID=73785717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011283070.4A Active CN112100121B (zh) 2020-11-17 2020-11-17 计算装置、计算设备以及可编程调度方法

Country Status (2)

Country Link
US (1) US11900175B2 (zh)
CN (1) CN112100121B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112100121B (zh) * 2020-11-17 2021-02-12 北京壁仞科技开发有限公司 计算装置、计算设备以及可编程调度方法
CN114706813B (zh) * 2022-05-05 2023-07-14 上海壁仞智能科技有限公司 多核异构片上系统、非对称同步方法、计算设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268386A (zh) * 2016-12-30 2018-07-10 英特尔公司 加速硬件中的存储器排序
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration
CN111382450A (zh) * 2018-12-31 2020-07-07 德克萨斯仪器股份有限公司 安全可靠的虚拟化域特定硬件加速器
CN111512298A (zh) * 2018-04-03 2020-08-07 英特尔公司 用于可配置空间加速器中的条件队列的装置、方法和系统
CN111767236A (zh) * 2019-03-30 2020-10-13 英特尔公司 用于可配置空间加速器中的存储器接口电路分配的装置、方法和系统

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651163B1 (en) * 2000-03-08 2003-11-18 Advanced Micro Devices, Inc. Exception handling with reduced overhead in a multithreaded multiprocessing system
US20110131381A1 (en) * 2009-11-27 2011-06-02 Advanced Micro Devices, Inc. Cache scratch-pad and method therefor
US8473683B2 (en) * 2010-01-08 2013-06-25 International Business Machines Corporation Ordering of guarded and unguarded stores for no-sync I/O
EP2806361B1 (en) * 2013-05-22 2020-03-04 Teknologian Tutkimuskeskus VTT Memory unit for emulated shared memory architectures
US10649914B1 (en) * 2016-07-01 2020-05-12 The Board Of Trustees Of The University Of Illinois Scratchpad-based operating system for multi-core embedded systems
US10043232B1 (en) * 2017-04-09 2018-08-07 Intel Corporation Compute cluster preemption within a general-purpose graphics processing unit
US10684957B2 (en) * 2018-08-23 2020-06-16 Advanced Micro Devices, Inc. Apparatus and method for neighborhood-aware virtual to physical address translations
US11042797B2 (en) * 2019-01-08 2021-06-22 SimpleMachines Inc. Accelerating parallel processing of data in a recurrent neural network
US10838868B2 (en) * 2019-03-07 2020-11-17 International Business Machines Corporation Programmable data delivery by load and store agents on a processing chip interfacing with on-chip memory components and directing data to external memory components
US11068268B2 (en) * 2019-08-05 2021-07-20 Arm Limited Data structure processing
CN112380150B (zh) * 2020-11-12 2022-09-27 上海壁仞智能科技有限公司 计算装置以及用于加载或更新数据的方法
CN112100121B (zh) * 2020-11-17 2021-02-12 北京壁仞科技开发有限公司 计算装置、计算设备以及可编程调度方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268386A (zh) * 2016-12-30 2018-07-10 英特尔公司 加速硬件中的存储器排序
CN111512298A (zh) * 2018-04-03 2020-08-07 英特尔公司 用于可配置空间加速器中的条件队列的装置、方法和系统
CN111382450A (zh) * 2018-12-31 2020-07-07 德克萨斯仪器股份有限公司 安全可靠的虚拟化域特定硬件加速器
CN111767236A (zh) * 2019-03-30 2020-10-13 英特尔公司 用于可配置空间加速器中的存储器接口电路分配的装置、方法和系统
US10698842B1 (en) * 2019-04-10 2020-06-30 Xilinx, Inc. Domain assist processor-peer for coherent acceleration

Also Published As

Publication number Publication date
US11900175B2 (en) 2024-02-13
US20220156128A1 (en) 2022-05-19
CN112100121A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
EP3667496B1 (en) Distributed computing system, data transmission method and device in distributed computing system
US9703603B1 (en) System and method for executing accelerator call
CN112100121B (zh) 计算装置、计算设备以及可编程调度方法
US7844752B2 (en) Method, apparatus and program storage device for enabling multiple asynchronous direct memory access task executions
EP1569091A2 (en) Vector processing apparatus with instruction re-ordering
US8819345B2 (en) Method, apparatus, and computer program product for inter-core communication in multi-core processors
US10402223B1 (en) Scheduling hardware resources for offloading functions in a heterogeneous computing system
US8225327B2 (en) Synchronizing access to a shared resource utilizing selective locking
US9588808B2 (en) Multi-core system performing packet processing with context switching
US8959319B2 (en) Executing first instructions for smaller set of SIMD threads diverging upon conditional branch instruction
US20220365782A1 (en) Instructions for operating accelerator circuit
US20210209720A1 (en) Full screen processing in multi-application environments
WO2024061135A1 (zh) 处理多个任务的方法、处理设备以及异构计算系统
CN105045632A (zh) 一种多核环境下实现免锁队列的方法和设备
CN107589990B (zh) 一种基于线程池的数据通讯的方法及系统
US7849272B2 (en) Dynamic memory management in an RDMA context
CN116521096B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN103020003A (zh) 面向多核程序确定性重演的内存竞争记录装置及其控制方法
CN110245024B (zh) 静态存储块的动态分配系统及其方法
CN117311817B (zh) 一种协处理器控制方法、装置、设备及存储介质
US5937186A (en) Asynchronous interrupt safing of prologue portions of computer programs
US20160124916A1 (en) Image decoding method and apparatus for browser
US20140331021A1 (en) Memory control apparatus and method
US9170820B2 (en) Syscall mechanism for processor to processor calls
US20130162658A1 (en) Synchronization with semaphores in a multi-engine gpu

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
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Room 0106-508, 1st floor, No.26, shangdixin Road, Haidian District, Beijing 100085

Patentee after: Beijing Bilin Technology Development Co.,Ltd.

Country or region after: China

Patentee after: Shanghai Bi Ren Technology Co.,Ltd.

Address before: Room 0106-508, 1st floor, No.26, shangdixin Road, Haidian District, Beijing 100085

Patentee before: Beijing Bilin Technology Development Co.,Ltd.

Country or region before: China

Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd.