CN112463709A - 可配置的异构人工智能处理器 - Google Patents

可配置的异构人工智能处理器 Download PDF

Info

Publication number
CN112463709A
CN112463709A CN201910846890.0A CN201910846890A CN112463709A CN 112463709 A CN112463709 A CN 112463709A CN 201910846890 A CN201910846890 A CN 201910846890A CN 112463709 A CN112463709 A CN 112463709A
Authority
CN
China
Prior art keywords
computing
unit
artificial intelligence
task
mode
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
Application number
CN201910846890.0A
Other languages
English (en)
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.)
Shanghai Denglin Technology Co ltd
Original Assignee
Shanghai Denglin 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 Shanghai Denglin Technology Co ltd filed Critical Shanghai Denglin Technology Co ltd
Priority to CN201910846890.0A priority Critical patent/CN112463709A/zh
Priority to US16/812,832 priority patent/US11782870B2/en
Publication of CN112463709A publication Critical patent/CN112463709A/zh
Pending legal-status Critical Current

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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • 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/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Neurology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Advance Control (AREA)

Abstract

本发明的实施例提供了可配置的异构人工智能处理器,包括至少两种不同结构类型的计算单元及与每个计算单元对应的任务队列、存储单元和控制器;其中控制器将待处理的神经网络的计算图分解成多个计算子任务并分发至各个计算单元的相应任务队列中,设定各计算子任务之间的依赖关系,根据所设定的依赖关系实现各计算子任务之间的同步以及控制各计算子任务所涉及的数据在所述存储单元以及片外内存上的存取。本发明实施例的技术方案中采用片内异构的形式,由单个控制器统一调度和管理各架构的计算单元来处理不同的应用任务,使得人工智能处理器能灵活适应不同应用场景,不仅提高了可扩展性,也改善了处理不同任务的效率。

Description

可配置的异构人工智能处理器
技术领域
本发明涉及异构计算及处理器架构,尤其涉及一种用于人工智能处理的可配置的异构处理器。
背景技术
人工智能(AI)技术在近些年来得到了迅猛的发展,已经渗透至视觉感知、语音识别、辅助驾驶、智能家居、交通调度等各个领域。很多AI算法都涉及到基于神经网络的学习和计算,例如卷积神经网络CNN、循环神经网络RNN、深度神经网络DNN等等。这些AI算法通常要求较强的并行计算能力以处理海量数据。而串行指令执行方式的中央处理器CPU或DSP,执行AI算法的效率很低。由此出现了“CPU+加速芯片”的异构计算架构,其中采用了专门处理AI应用中的大量计算任务的AI芯片,而其他无法担当的计算任务及调度任务仍由CPU负责,例如处理不规则数据结构、不可预测的存取模式、递归算法、分支密集型代码和单线程程序等;而AI芯片作为协处理器,例如用于处理与AI算法相关的张量计算任务。这种异构的缺点一来是CPU的瓶颈使得计算加速芯片的效能不能发挥,从而不得不用多核CPU来补救***性能,却因此带来了不必要的功耗和造价;二来其采用的是传统异构,由多个不同软件驱动,协调效率低下。
这些专用的面向AI应用的芯片也可以称为AI芯片、人工智能处理器、协处理器、AI加速器等等。目前AI芯片的主要结构通常可分为GPU、FPGA、ASIC三类。图像处理单元GPU(Graphics Processing Unit)因良好的矩阵计算能力和并行计算优势,最早被用于AI计算,但芯片体积和功耗大,难以有效提升性能。现场可编程门阵列FPGA(Field-Programmable Gate Array)可以硬件编程,但性能要低于GPU。专用集成电路ASIC(Application Specific Integrated Circuits)是可以针对特定应用需求而定制的芯片,体积更小、功耗更低,但是无可编程性,适应性和扩展性差。随着人工智能算法在各个应用领域的普及,亟需一种能适应具体应用需求的可扩展且高效的人工智能处理器。
发明内容
因此,本发明实施例的目的提供一种新的可配置的异构人工智能处理器,由控制器统一管理和调度片内异构的形式的不同计算单元来处理不同的人工智能应用任务,在灵活适应不同应用场景的同时也改善了计算任务的执行效率。
上述目的是通过以下技术方案实现的:
根据本发明实施例的第一方面,提供了一种可配置的异构人工智能处理器,包括至少两种不同结构类型的计算单元及与每个计算单元对应的任务队列、存储单元和控制器;所述控制器包括任务调度模块、任务同步模块和访存控制模块;其中所述任务调度模块用于根据指示任务分配的配置选项将待处理的神经网络的计算图分解成多个计算子任务并分发至各个计算单元相应硬件的任务队列中,以及设定各计算子任务之间的依赖关系;所述任务同步模块根据所设定的依赖关系实现各计算子任务之间的在硬件上同步;所述访存控制模块用于控制各计算子任务所涉及的数据在所述存储单元以及片外内存上的存取。
在本发明的一些实施例中,所述任务调度模块还可以被配置为根据指示工作模式的配置选项设置各计算单元之间的工作模式,所述工作模式包括独立并行模式、合作并行模式和交互合作模式;其中
在独立并行模式下,各计算单元的计算子任务各自独立地并行执行;
在合作并行模式下,各计算单元的计算子任务以流水线方式合作执行;
在交互合作模式下,计算单元在执行计算子任务时需要等待或依赖与其合作的计算单元执行计算子任务所产生的结果。
在本发明的一些实施例中,所述存储单元可包括高速缓存存储器和便签式存储器。
在本发明的一些实施例中,所述访存控制模块还可被配置为根据所设置各计算单元之间的工作模式来设置不同计算单元之间共享数据的存储位置,其中:在独立并行模式下,该存储位置设置在片外内存上;在合作并行模式下,该存储位置设置在便签式存储器上;在交互合作模式下,该存储位置设置在高速缓存存储器上。
在本发明的一些实施例中,所述任务调度模块还被配置为根据指示操作融合的配置选项对分配给同一计算单元的计算子任务进行操作融合。
在本发明的一些实施例中,所述任务调度模块还可被配置为根据指示层间融合的配置选项,通知访存控制模块将中间神经网络层的输出保存至便签式存储器。
在本发明的一些实施例中,所述计算单元的结构类型为下列之一:应用型专用集成电路ASIC、通用图像处理单元GPGPU、现场可编程门阵列FPGA、视频编解码器DSP。
在本发明的一些实施例中,所述至少两种不同结构类型的计算单元的其中一个为针对特定人工智能算法或运算的定制计算单元,而另一个为可编程的计算单元。
在本发明的一些实施例中,所述至少两种不同结构类型的计算单元可包括采用应用型专用集成电路ASIC结构的计算单元和采用通用图像处理单元GPGPU结构的计算单元。
在本发明的一些实施例中,所述任务调度器还被配置为根据各计算单元的能力来将计算子任务分发给相应的计算单元。
在本发明的一些实施例中,访存控制模块可用于通过所述访存接口将各计算单元执行计算子任务时所需的操作数据从片外内存读取至所述存储单元中,以及将各计算单元执行计算子任务后产生的数据存放至所述存储单元和/或所述片外内存中。该访存控制模块可包括直接存储器存取(Direct Memory Access,DMA)部件来负责进行数据存取和数据搬运。
根据本发明实施例的第二方面,提供了一种片内异构人工智能处理器,包括:通过片上数据交换网络连接的多个计算集群,其中每个计算集群包括:至少两种不同结构类型的计算单元;与每个计算单元对应的任务队列,用于保存该计算单元待执行的计算子任务;访存控制模块以及由各计算单元共享的高速缓存器和片上内存。该片内异构人工智能处理器还包括控制器,其用于将收到的待处理的神经网络的计算图分解成多个计算子任务并分发至各个计算集群中计算单元的相应命令队列中。该片内异构人工智能处理器还包括用于访问片外内存的访存接口以及用于与片外的主处理器交互的主机接口。
在本发明的一些实施例中,所述至少两种不同结构类型的计算单元的其中一个为针对特定人工智能算法或运算的定制计算单元,而另一个为可编程的计算单元。
在本发明的一些实施例中,所述至少两种不同结构类型的计算单元包括采用应用型专用集成电路ASIC结构的计算单元和采用通用图像处理单元GPGPU结构的计算单元。
本发明实施例的技术方案可以包括以下有益效果:
采用片内异构的形式,由单个控制器统一调度和管理各架构的计算单元来处理不同的应用任务,并且可灵活配置各计算单元之间的工作模式,使得人工智能处理器能灵活适应不同应用场景,不仅提高了可扩展性,也改善了处理不同任务的效率。这种片内异构处理器不仅可以支持普通计算应用,还可支持大量并行计算应用以及以深度神经网络学习为核心的人工智能应用。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
在附图中:
图1示出了根据本发明一个实施例的片内异构人工智能处理器的结构示意图。
图2a),b)和c)示出了根据本发明一个实施例的不同计算单元之间的工作模式示意图。
图3(a)和(b)示出了根据本发明一个实施例的任务调度和任务同步流程示意。
图4示出了根据本发明又一个实施例的利用片内异构人工智能处理器的结构示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动下获得的所有其他实施例,都属于本发明保护的范围。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
如上文提到的异构计算主要是指使用由不同类型指令集和体系架构的计算单元组成的***进行计算的方式,包括主处理器(例如CPU)和其它各类协处理器,例如GPU、DSP、ASIC、FPGA等。由异构的计算单元组成的***通常采用片上***(System on Chip,SoC)的形式,虽然可以利用不同类型的计算单元处理不同的任务从而在整体上改善计算资源的利用率,但其调度和数据交换的开销比较大,从而导致整个***的运行效率大幅下降。
这是因为,从形式上而言,片上***SoC将诸如处理器模块(包括CPU、GPU)、存储器模块、各种接口控制模块等IP功能模块以及各种互联总线的集成在单一芯片上,但各个IP模块是独立的,其各自包含完整的硬件***及其承载的嵌入式软件。这意味着,在SoC芯片上各IP模块还是由各自的相应软件来驱动的,这导致SoC软硬件规模都比较大。而且在SoC上还必须设置或配套有针对来自各IP供应商的IP功能模块之间进行互联的标准协议软件,其调度和数据交换的开销比较大。而且IP功能模块的种类和复杂度越来越大以及通用接口的缺乏均使得IP的集成变得越来越困难。另外,这种模式还存在数据的连贯相干性(coherence)问题。这是由于为使得各IP功能模块能进行并行或异步计算,通常要求各IP功能模块保留自己的数据副本,并且各IP功能模块之间也经常需要共享数据,例如一个IP功能模块可能要依赖另一IP功能模块产生的数据,这涉及到复杂的共享缓存机制或同步机制来保证正确的数据交换,同时由于各IP功能模块之间需要彼此等待而导致性能下降。
另外,从本质上讲,在上述***中作为协处理器本身的AI芯片是同构的。如背景技术部分提到的,三种主流的AI芯片的处理器架构GPU、FPGA、ASIC各有优缺点。GPU具有良好的并行计算能力,但其是专门处理图像计算的,并非专为AI算法而设计的,很难适应不同应用场景的AI算法需求。现场可编程门阵列FPGA可采用例如OpenCL等语言进行硬件编程,提高了应用的灵活性,适用于多指令,单数据流的分析,但对于模型训练等大规模并行计算能力较弱。专用集成电路ASIC是针对特定AI应用需求的定制芯片,体积更小、功耗更低,但是无法进行编程,适应性和扩展性差。随着人工智能算法云端和在多样化的智能终端设备的不断普及,亟需一种能适应具体应用需求的可扩展的且性能更全面和高效的人工智能处理器。
在本发明的实施例中提供了一种采用片上异构形式的人工智能处理器,其中至少包括两种架构的计算单元。例如其中一种架构可以采用可编程的且可处理各种通用计算任务的图像处理单元(也称为GPGPU),另一种架构可以采用针对特定人工智能算法定制的专用集成电路ASIC。由于在很多AI算法中涉及大量的矩阵和导数运算,因此可以定制专用于处理矩阵的加法、乘法和除法的ASIC,以及针对向量运算和求导运算的ASIC。在一些实施例中,还可以定制针对各种类型神经网络的ASIC,例如针对CNN定制的ASIC、针对DNN定制的ASIC、针对RNN定制的ASIC。在一些实施例中,还可以针对各种机器学习算法定制ASIC,例如针对支持向量机算法定制的ASIC、针对K均值算法定制的ASIC等等。采用这些针对AI算法或AI运算的定制的计算单元,可以节省功耗并减小芯片面积。而对于这些定制ASIC计算单元不能处理的计算任务,分派给可编程的GPGPU架构的计算单元来执行。这样,不仅可以提高人工智能应用中不同计算任务的执行效率,而且可以适应不同应用场景的需求,具备良好的可扩展性。在又一些实施例中,除了上述两种架构之外,该片内异构人工智能处理器还可以包括采用FPGA形式的计算单元、采用视频编解码器DSP形式的计算单元,甚至可以采用通用的中央处理器CPU作为其中一个计算单元。在该实施例的方案中将各种异构的元素有机地集成在一个芯片上,由单个控制器一体无缝调度,既发挥各架构的特有优势功能,又没有明显的瓶颈,使AI计算更高效。
下面结合附图对于本发明实施例的片内异构人工智能处理器进行更详细的介绍。为描述方便,下文仅以处理作为AI算法基础的神经网络为例,并以针对矩阵运算定制的ASIC计算单元(下文中也可简称为TU)和负责其余计算任务的可编程的通用图像处理单元GPGPU(下文中也可以简称为CU)作为两种不同结构类型计算单元的示例进行说明,但并非对此进行任何限制。
图1给出了根据本发明一个实施例的片内异构人工智能处理器,其包括至少两种不同结构类型的计算单元,例如第一类计算单元为TU,第二类计算单元为CU,以及每个计算单元对应的任务队列,该任务队列用于保存需要该计算单元执行的计算子任务。该片内异构人工智能处理器还包括控制器、存储单元和用于访问诸如DDR之类的片外内存的访存接口。其中控制器可以用于将收到的待处理的神经网络的计算图分解成多个计算子任务并分发至各个计算单元的相应任务队列中;存储单元可以用于存放各计算单元执行计算子任务时所需的数据。在一些实施例中,该存储单元可以包括诸如L1缓存、L2缓存之类的高速缓存存储器和诸如便签式存储器(Scratch-pad Memory,SPM)之类的片上内存。各个计算单元可以共享该片上内存和高速缓存存储器。
在图1所示的人工智能处理器中,控制器主要用于向各计算单元分配计算子任务,控制各计算子任务之间的同步以及负责各计算子任务所涉及数据的搬运和控制,其可以包括任务调度模块、任务同步模块和访存控制模块。其中任务调度模块可以根据当前各个计算单元的特点,对接收到待处理的神经网络程序对应的计算图进行分析,将其分解成多个计算子任务,并将每个计算子任务分发至能处理该类型计算子任务的计算单元的相应任务队列中。如上文提到的,不同结构类型的计算单元可以用于处理不同的任务或指令,例如CPU适用于逻辑运算及分支密集的控制流程,GPU适用于高吞吐量数据处理及并行计算,专门针对深度学习中的矩阵运算和卷积计算等定制的ASIC结构的计算单元适用于处理诸如矩阵、卷积等运算,DSP适用于实时信号处理、视频编码解码等,GPGPU结构的计算单元可以处理由用户自定义的操作和其余的TU不能执行的操作。因此,将同类型计算子任务尽量分配给适用于处理该类型任务的计算单元,可以提高执行效率,避免内部切换开销。除了不同计算单元的特点之外,任务调度模块在分配计算子任务时还可以结合各个计算单元的处理能力来进行分配,例如基于各计算单元的任务队列中当前的排队状况,各计算单元的当前负载等来尽可能地在各计算单元之间均衡地分派计算子任务。
在一些实施例中,任务调度模块还可以根据计算图上各节点间的依赖关系确定分派给各计算单元的计算子任务之间的依赖关系,并根据相应依赖关系在各个任务队列中定义同步事件点。任务同步模块监控各个任务队列中的同步事件点来实现各个计算子任务之间的自动同步。在一些实施例中,该同步事件点可以是同步控制标志,任务调度模块在分派计算子任务时,判断该当前的子任务与先前已分配至各任务队列中的子任务之间是否存在依赖关系,若存在则为该当前子任务设置同步控制标志,该同步控制标志中包含用于该当前子任务所依赖的计算子任务的参数,例如任务队列标识及任务序号等。任务同步模块可以监控各个同步控制标志所指示的计算子任务,当检测到该计算子任务执行完毕后,任务同步模块可以向相关任务队列发送事件通知或记录该计算子任务的执行状态以供后续查询。这样,当从任务队列中提取设置有同步控制标志的当前子任务进行执行时,可以先向任务同步模块查询其依赖的子任务是否已经执行完毕,如果没有,则当前子任务需要进行等待。
例如以处理神经网络中部分操作为例,在神经网络中逐元素(element-wise,EW)操作适合CU计算单元,而卷积更适合TU计算单元。在该神经网络的计算图中常常有卷积+EW+卷积+EW依次计算的需求,控制器在进行任务调度时可以将卷积任务都分给TU,将EW任务都分给CU,只要在任务队列上加上用于同步的互相等待的事件标识即可。这样在具体执行过程中,控制器软件不需要再介入,可在硬件上自动完成任务队列之间的同步,大大提高并行效率。并且,控制器在任务调度时还可以控制和优化各计算子任务之间的合作方式,例如TU计算单元执行卷积的结果要由CU来完成激活,CU计算单元的启动依赖于TU中某些子任务的完成,但不必等TU中一个网络层任务的全部完成。只要TU计算单元完成了一部分子任务,CU就可以基于TU的这些部分结果来执行任务,这些可以通过在各任务队列中设置适当的同步事件点来实现。
在一些实施例中,各个计算单元之间可以存在三种工作模式:独立并行模式、合作并行模式和交互合作模式。如图2a)所示,在合作并行模式下,各计算单元的计算子任务按照流水线方式合作执行,不同计算子任务的数据依赖和同步,基本上是在由各个计算单元共享的片上内存实现的。例如TU和CU将合作完成任务1(例如批处理1),但是TU可以先做,然后将其生成结果放在片上内存(例如SPM)中,接着可继续执行任务2(如果片上内存可以保留更多结果,则可继续执行后续任务)。而CU将从片上内存提取由TU生成的结果,然后产生自己的结果供TU消费。以这种方式,TU和CU将以略微解耦的方式一起完成任务1和任务2。比如,TU一层卷积的执行结果立即被CU作为下一层输入做其擅长的点对点(element-wise)操作,而TU可以继续做同一层但工作在另一个批次(batch)数据上。如图2b)所示,在独立并行模式下,不同计算单元之间基本上可以独立并行执行,没有急迫同步的需求,各个计算单元的计算子任务之间的数据依赖和同步可以通过片外内存(例如DDR)实现,因为那里有较大的存储空间来保存相关数据。例如,TU和CU可以各自先处理更大批量的数据以填充近一半的DDR空间,然后可能会切换到彼此之前为依赖性生成的数据继续进行处理。如图2c)所示,在交互合作模式下,各计算单元在执行时需要互相进行等待,例如尤其是当TU缺乏某些能力但是使用CU来补偿时,或者CU缺乏处理能力但是利用TU时。在该模式下,数据依赖和同步在具有有限的尺寸的高速缓存存储器(例如L2缓存)上实现,以尽量减少等待时间,提高TU/CU吞吐量。比如TU的结果临时存放的缓存被CU读取以执行用户自定义的操作,其结果又放入缓存被TU进一步读取,完成融合操作。这三种模式在神经网络整体实现中,可以多次混合使用,并且可以通过软件来配置控制器中各计算单元的计算子任务之间的工作模式。
继续参考图1,该控制器中的访存控制模块主要用于负责各计算子任务所涉及数据的搬运和控制,以及控制各计算单元所操作的数据的输入和输出。例如访存控制模块可以利用独立于各计算单元执行的DMA部件通过访存接口将各计算子任务所涉及的数据从片外内存预取至片上内存和/或高速缓存存储器中,以尽量减少访存次数和访存等待时间。在一些实施例中,访问控制模块还可以被配置为根据各计算单元之间的运行模式来确定各计算单元产生的中间结果的存储位置和存储格式,以便让数据直接流畅使用,避免或减少额外的数据搬运和重新格式化。例如,在独立并行模式下,将各计算单元产生的数据设置为存储在具有较大空间的片外内存(DDR)上。在合作并行模式下,将各计算单元产生的数据设置为存储在各计算单元共享的片上内存,以尽量减少访存次数。在交互合作模式下,将各计算单元产生的数据设置为存储在内部缓存上,以尽量减少访存等待时间。在一些实施例中,访存控制模块还可以配置和管理可以供各计算单元之间共享的片上内存、高速缓存存储器、片外内存或上述存储器的部分区域。
下面结合图3(a)和(b)对于控制器任务调度和同步过程进行举例说明但并非就那些任何限制。控制器接收待处理的神经网络的计算图,该神经网络的计算图可以通过软件程序预先定义或转换而来,也可以通过诸如TensorFlow之类的商业软件得到。神经网络的计算图中每个节点对应要执行的计算子任务,而节点之间的边表示节点之间的输入和输出关系,也体现了节点之间的依赖关系。如图3(a)所示,控制器根据当前各计算单元的特点和能力,将收到的待处理的神经网络的计算图中各个节点对应的计算子任务分配给不同类型的计算单元(例如TU和CU)和处理单元(例如独立于各计算单元执行的访存控制模块中的DMA部件)的相应任务队列中。例如将与存取数据相关的计算子任务DMA1、DMA2…、DMA5存放至DMA任务队列中,该DMA任务队列中的任务由控制器的访存控制模块中DMA部件执行,用于存取各计算单元的计算子任务所涉及的数据。DMA部件可以独立于各计算单元而执行,负载数据流的搬运和控制,可以将计算子任务所需的数据从片外内存中预取至片上内存SPM中,以减少访存等待时间。同时将适合TU计算单元执行的诸如矩阵、矢量、卷积之类的计算子任务tu1、tu2…、tu5分派至TU计算单元的任务队列中;以及将TU计算单元不支持的计算子任务和用户自定义的计算子任务cu1、cu2…、cuN、cuN+1、cuN+2分派至cu计算单元的任务队列。如图3(b)所示,控制器在按照处理先后次序分派子任务至各个任务队列时,还需要考虑各子任务之间的依赖关系。当某个子任务需要依赖被分配至其他任务队列中的子任务时,可以在该子任务之前***一个等待命令,该等待命令中可以包含所等待的任务队列标识及子任务标识。当执行到该等待命令时,任务同步模块检查等待命令所指示的计算子任务是否已执行完毕,若相应子任务尚未执行完毕,则需要继续等待。在又一些实施例中,控制器在处理依赖关系时,除了要控制各任务队列并行执行各自的任务的同时,还要允许在某些同步点在不同任务队列之间交换中间结果。例如可以通过硬件级的事件同步技术,将任务队列中的某个任务设置为依赖于事件,以便当收到某个事件通知时,可以从高速缓存区或片上内存的某个区域读取其他类型计算单元所生成的数据。
神经网络处理中常常将神经网络模型抽象成为由一些运算符(Operator)组成的有向无环的数据流图(即计算图),然后再按照某种拓扑序来依次调度并执行这些节点对应的内核函数,从而完成该模型的执行。计算图中节点对应的运算符通常定义在代数运算符这个粒度上,例如向量的加、减、乘、除和矩阵乘法等等,由于这些运算符的抽象粒度较低,往往一个神经网络训练模型的计算图往往会包括数千个节点,需要频繁的调用多次内核函数,内核函数的启动开销和内核函数之间的数据传输开销比较大。因此,在又一些实施例中,控制器还可以配置为支持操作融合(operator fusion)模式,将计算图中的某些节点所对应的内核函数融合成一个函数,使得只需要通过一次函数调用即可完成,从而减小内核启动带来的开销。控制器可以被配置为将分配给同一计算单元的同类型计算子任务进行操作融合,以使计算单元的执行效率更连续流畅,并尽量减小和避免内部切换的开销。例如,如果TU计算单元同时支持卷积和池化(pooling)操作,则可以将卷积和池化从中在TU计算单元进行融合。如果TU计算单元不支持池化操作,控制器可以指示小规模卷积和池化操作在CU计算单元中进行融合。
在又一些实施例中,控制器还可以配置为支持神经网络的层间融合模式。目前神经网络模型处理过程中每个神经网络层从片外内存读取上层输出的数据,进行本层处理后将处理结果保存至片外内存,以作为下一层的输入。当数据批量较大时,频繁存取片外内存带来很多延迟。在本发明的实施例中,可以将控制器配置为支持层间融合模式,可以将连续几次网络层输出的中间结果保存在片上内存SPM中,以减少片外内存访问数量。
现参考图4,其给出了根据本发明又一个实施例的片内异构人工智能处理器的结构示意图。该片内异构人工智能处理器包括通过片上数据交换网络连接的多个计算集群,其中每个计算集群包括至少两种不同结构类型的计算单元、访存控制模块以及由各计算单元共享的片上内存,其中第一类计算单元例如TU,第二类计算单元例如为CU,每个计算单元对应的任务队列用于保存需要该计算单元执行的计算子任务。该人工智能处理器还包括控制器,当控制器接收到待处理的神经网络程序对应的计算图时,根据其当前各个计算集群的负载情况以及各计算集群所包含的不同计算单元的特征,对计算图进行功能分析,将其分解成多个计算子任务,并将每个计算子任务分发至能处理该类型计算子任务的计算单元的相应任务队列中,以及用于控制各计算子任务之间的同步。该人工智能处理器还包括用于访问片外内存的访存接口,以及用于与片外的主处理器交互的主机接口。
其中各个计算集群以及每个计算集群中各个计算单元之间都可以存在如上文提到的三种运行模式:独立并行模式、合作并行模式和交互合作模式。这三种模式在神经网络整体实现中,可以多次混合使用,可以通过软件来配置控制器中各计算单元的计算子任务和各个计算集群之间的运行模式。各个计算集群之间通过片上数据交换网络来互相交换数据,并且也可以根据实际需求设置由各个计算集群之间共享的全局的片上内存。
在一些实施例,在前述的本发明的实施例的异构人工处理器中,控制器是可以通过配置文件、配置选项或软件程序来进行配置的。例如,任务调度模块可以根据指示任务分配的配置选项将待处理的神经网络的计算图分解成多个计算子任务并分发至各个计算单元相应硬件的任务队列中。这些指示任务分配的配置选项可包括基于类型匹配的任务分配(根据计算子任务类型来选择处理该子任务的计算单元)、基于负载的任务分配(根据各计算单元任务队列的排队情况来进行任务分配)、基于指定标记的任务分配(将带有指定标记的计算子任务分发给该标记所指示的特定计算单元)等。可以同时设置一个或多个配置选项,不同配置选项优先级不同,例如基于类型匹配的任务分配优先级最高、基于指定标记的任务分配优先级次之、基于负载的任务分配优先级最低。又例如,任务调度模块还可以根据指示工作模式的配置选项设置各计算单元之间的工作模式,例如独立并行模式、合作并行模式和交互合作模式。在又一些实施例中,任务调度模块还可以根据指示操作融合的配置选项对分配给同一计算单元的计算子任务进行操作融合,以及可以根据指示层间融合的配置选项,通知访存控制模块将中间神经网络层的输出保存至便签式存储器。在又一些实施例中,还可以通过配置文件或软件程序等提前对于待处理的神经网络的计算图各节点进行设定或标记其适用于哪种结构类型的计算单元来处理。这样任务调度模块在收到计算图时,可以根据这些指示任务分配的配置选项将各个计算子任务分发至各个计算单元的相应任务队列中。另外还可以通过配置文件或软件程序等配置、设定或调整各计算子任务之间的依赖关系。这样任务调度模块可以根据相应的指示计算子任务之间的依赖关系的配置选项来在各任务队列之间设定各计算子任务的依赖关系。在一些实施例中,任务调度模块还可以被配置为根据收到的指示工作模式的配置选项设置各计算单元之间的工作模式。在一些实施例中,任务调度模块还可以被配置为根据收到的指示操作融合的配置选项对分配给同一计算单元的计算子任务进行操作融合。在一些实施例中,所述任务调度模块还可以被配置为根据收到的指示层间融合的配置选项,通知访存控制模块将中间神经网络层的输出保存至便签式存储器。在上述实施例中,可以通过各种不同的配置选项来灵活地调整计算子任务在不同计算单元之间的分配、各任务队列之间的同步以及各计算子任务之间的数据依赖与同步等等,从而能针对各种应用场景灵活设置各计算单元的工作模式,使更充分地利用和发挥异构处理器本身的硬件性能和计算效率。
本说明书中针对“各个实施例”、“一些实施例”、“一个实施例”、或“实施例”等的参考指代的是结合所述实施例所描述的特定特征、结构、或性质包括在至少一个实施例中。因此,短语“在各个实施例中”、“在一些实施例中”、“在一个实施例中”、或“在实施例中”等在整个说明书中各地方的出现并非必须指代相同的实施例。此外,特定特征、结构、或性质可以在一个或多个实施例中以任何合适方式组合。因此,结合一个实施例中所示出或描述的特定特征、结构或性质可以整体地或部分地与一个或多个其他实施例的特征、结构、或性质无限制地组合,只要该组合不是非逻辑性的或不能工作。
本说明书中“包括”和“具有”以及类似含义的术语表达,意图在于覆盖不排他的包含,例如包含了一系列步骤或单元的过程、方法、***、产品或设备并不限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。“一”或“一个”也不排除多个的情况。另外,本申请附图中的各个元素仅仅为了示意说明,并非按比例绘制。
虽然本发明已经通过上述实施例进行了描述,然而本发明并非局限于这里所描述的实施例,在不脱离本发明范围的情况下还包括所做出的各种改变以及变化。

Claims (10)

1.一种可配置的异构人工智能处理器,包括至少两种不同结构类型的计算单元及与每个计算单元对应的任务队列、存储单元和控制器;所述控制器包括任务调度模块、任务同步模块和访存控制模块;
其中所述任务调度模块用于根据指示任务分配的配置选项将待处理的神经网络的计算图分解成多个计算子任务并分发至各个计算单元的相应任务队列中,以及设定各计算子任务之间的依赖关系;
所述任务同步模块根据所设定的依赖关系实现各计算子任务之间的同步;
所述访存控制模块用于控制各计算子任务所涉及的数据在所述存储单元以及片外内存上的存取。
2.根据权利要求1所述的异构人工智能处理器,其中所述任务调度模块还被配置为根据指示工作模式的配置选项设置各计算单元之间的工作模式,所述工作模式包括独立并行模式、合作并行模式和交互合作模式;其中
在独立并行模式下,各计算单元的计算子任务各自独立地并行执行;
在合作并行模式下,各计算单元的计算子任务以流水线方式合作执行;
在交互合作模式下,计算单元在执行计算子任务时需要等待或依赖与其合作的计算单元执行计算子任务所产生的结果。
3.根据权利要求2所述的异构人工智能处理器,其中所述存储单元包括高速缓存存储器和便签式存储器。
4.根据权利要求3所述的异构人工智能处理器,其中所述访存控制模块被配置为根据所设置各计算单元之间的工作模式来设置不同计算单元之间共享数据的存储位置,其中:
在独立并行模式下,该存储位置设置在片外内存上;
在合作并行模式下,该存储位置设置在便签式存储器上;
在交互合作模式下,该存储位置设置在高速缓存存储器上。
5.根据权利要求1所述的异构人工智能处理器,其中所述任务调度模块还被配置为根据指示操作融合的配置选项对分配给同一计算单元的计算子任务进行操作融合。
6.根据权利要求3所述的异构人工智能处理器,其中所述任务调度模块还被配置为根据指示层间融合的配置选项,通知访存控制模块将中间神经网络层的输出保存至便签式存储器。
7.根据权利要求1所述的异构人工智能处理器,其中所述计算单元的结构类型为下列之一:应用型专用集成电路ASIC、通用图像处理单元GPGPU、现场可编程门阵列FPGA、视频编解码器DSP。
8.根据权利要求1所述的异构人工智能处理器,其中所述至少两种不同结构类型的计算单元的其中一个为针对特定人工智能算法或运算的定制计算单元,而另一个为可编程的计算单元。
9.根据权利要求8所述的异构人工智能处理器,其中所述至少两种不同结构类型的计算单元包括采用应用型专用集成电路ASIC结构的计算单元和采用通用图像处理单元GPGPU结构的计算单元。
10.根据权利要求1所述的异构人工智能处理器,其中所述任务调度器还被配置为根据各计算单元的能力来将计算子任务分发给相应的计算单元。
CN201910846890.0A 2019-09-09 2019-09-09 可配置的异构人工智能处理器 Pending CN112463709A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201910846890.0A CN112463709A (zh) 2019-09-09 2019-09-09 可配置的异构人工智能处理器
US16/812,832 US11782870B2 (en) 2019-09-09 2020-03-09 Configurable heterogeneous AI processor with distributed task queues allowing parallel task execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910846890.0A CN112463709A (zh) 2019-09-09 2019-09-09 可配置的异构人工智能处理器

Publications (1)

Publication Number Publication Date
CN112463709A true CN112463709A (zh) 2021-03-09

Family

ID=74807331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910846890.0A Pending CN112463709A (zh) 2019-09-09 2019-09-09 可配置的异构人工智能处理器

Country Status (2)

Country Link
US (1) US11782870B2 (zh)
CN (1) CN112463709A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048030A (zh) * 2021-11-09 2022-02-15 北京百度网讯科技有限公司 调度算子的方法和装置
CN114529444A (zh) * 2022-04-22 2022-05-24 南京砺算科技有限公司 图形处理模块、图形处理器以及图形处理方法
CN115237582A (zh) * 2022-09-22 2022-10-25 摩尔线程智能科技(北京)有限责任公司 处理多个任务的方法、处理设备以及异构计算***
CN115269016A (zh) * 2022-09-27 2022-11-01 之江实验室 一种用于图计算的指令执行方法及装置
CN116149797A (zh) * 2023-04-04 2023-05-23 上海燧原科技有限公司 面向异构场景的ai统一计算方法、装置、设备及介质
CN116795769A (zh) * 2023-06-27 2023-09-22 李斌 一种SoC集群及分布式计算方法

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210232969A1 (en) * 2018-12-24 2021-07-29 Intel Corporation Methods and apparatus to process a machine learning model in a multi-process web browser environment
CN113191491B (zh) * 2021-03-16 2022-08-09 杭州慧芯达科技有限公司 多维度并行的人工智能处理器架构
US11656909B2 (en) * 2021-04-15 2023-05-23 National Taiwan University Tensor accelerator capable of increasing efficiency of data sharing
CN113610209A (zh) * 2021-08-10 2021-11-05 东南数字经济发展研究院 一种面向监控视频流场景的神经网络模型推理加速方法
EP4178232A1 (en) * 2021-11-04 2023-05-10 Abb Schweiz Ag Managing the operation of applications on mobile computing devices
CN114035810B (zh) * 2022-01-10 2022-04-15 北京一流科技有限公司 用于多流并行的同步部署***及其方法
CN114996008B (zh) * 2022-05-30 2024-05-03 上海壁仞科技股份有限公司 Ai计算图多后端协同计算方法及装置
CN117171075B (zh) * 2023-10-27 2024-02-06 上海芯联芯智能科技有限公司 一种电子设备及任务处理方法
CN117851070B (zh) * 2024-01-18 2024-06-07 北京怀美科技有限公司 应用于检测任务的计算芯片架构及计算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025363A1 (en) * 2000-03-24 2001-09-27 Cary Ussery Designer configurable multi-processor system
US20100005472A1 (en) * 2008-07-07 2010-01-07 Infosys Technologies Ltd. Task decomposition with throttled message processing in a heterogeneous environment
US20160154677A1 (en) * 2013-03-15 2016-06-02 Rajkishore Barik Work Stealing in Heterogeneous Computing Systems
CN110147251A (zh) * 2019-01-28 2019-08-20 腾讯科技(深圳)有限公司 用于计算神经网络模型的架构、芯片及计算方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323574B2 (en) * 2014-02-21 2016-04-26 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Processor power optimization with response time assurance
KR102569086B1 (ko) * 2017-11-20 2023-08-22 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 태스크 병렬 처리 방법, 장치, 시스템, 기억 매체 및 컴퓨터 기기
CN110489213B (zh) * 2018-05-15 2022-04-05 华为技术有限公司 一种任务处理方法及处理装置、计算机***
US11367160B2 (en) * 2018-08-02 2022-06-21 Nvidia Corporation Simultaneous compute and graphics scheduling
US20200249998A1 (en) * 2019-02-01 2020-08-06 Alibaba Group Holding Limited Scheduling computation graph heterogeneous computer system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010025363A1 (en) * 2000-03-24 2001-09-27 Cary Ussery Designer configurable multi-processor system
US20100005472A1 (en) * 2008-07-07 2010-01-07 Infosys Technologies Ltd. Task decomposition with throttled message processing in a heterogeneous environment
US20160154677A1 (en) * 2013-03-15 2016-06-02 Rajkishore Barik Work Stealing in Heterogeneous Computing Systems
CN106164881A (zh) * 2013-03-15 2016-11-23 英特尔公司 异构计算***中的工作窃取
CN110147251A (zh) * 2019-01-28 2019-08-20 腾讯科技(深圳)有限公司 用于计算神经网络模型的架构、芯片及计算方法

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114048030A (zh) * 2021-11-09 2022-02-15 北京百度网讯科技有限公司 调度算子的方法和装置
CN114048030B (zh) * 2021-11-09 2022-07-26 北京百度网讯科技有限公司 调度算子的方法和装置
CN114529444A (zh) * 2022-04-22 2022-05-24 南京砺算科技有限公司 图形处理模块、图形处理器以及图形处理方法
CN114529444B (zh) * 2022-04-22 2023-08-11 南京砺算科技有限公司 图形处理模块、图形处理器以及图形处理方法
CN115237582A (zh) * 2022-09-22 2022-10-25 摩尔线程智能科技(北京)有限责任公司 处理多个任务的方法、处理设备以及异构计算***
CN115237582B (zh) * 2022-09-22 2022-12-09 摩尔线程智能科技(北京)有限责任公司 处理多个任务的方法、处理设备以及异构计算***
TWI831729B (zh) * 2022-09-22 2024-02-01 大陸商摩爾線程智能科技(北京)有限責任公司 處理多個任務的方法、處理設備以及異構計算系統
CN115269016A (zh) * 2022-09-27 2022-11-01 之江实验室 一种用于图计算的指令执行方法及装置
CN116149797A (zh) * 2023-04-04 2023-05-23 上海燧原科技有限公司 面向异构场景的ai统一计算方法、装置、设备及介质
CN116149797B (zh) * 2023-04-04 2023-07-07 上海燧原科技有限公司 面向异构场景的ai统一计算方法、装置、设备及介质
CN116795769A (zh) * 2023-06-27 2023-09-22 李斌 一种SoC集群及分布式计算方法

Also Published As

Publication number Publication date
US11782870B2 (en) 2023-10-10
US20210073170A1 (en) 2021-03-11

Similar Documents

Publication Publication Date Title
CN112465129B (zh) 片内异构人工智能处理器
CN112463709A (zh) 可配置的异构人工智能处理器
AU2019392179B2 (en) Accelerating dataflow signal processing applications across heterogeneous CPU/GPU systems
US20070150895A1 (en) Methods and apparatus for multi-core processing with dedicated thread management
CN1602467A (zh) 具有多个处理器的数据处理***、用于具有多个处理器的数据处理***的任务调度程序及用于任务调度的对应方法
US20090327610A1 (en) Method and System for Conducting Intensive Multitask and Multiflow Calculation in Real-Time
CN110308982B (zh) 一种共享内存复用方法及装置
CN105683939A (zh) 用于在诸如fpga的动态可重新配置硬件装置以及诸如cpu的指令集处理器上同时执行进程的计算平台、可重新配置硬件装置和方法、以及相关的计算机可读介质
CN110297661B (zh) 基于amp构架dsp操作***的并行计算方法、***及介质
CN110795254A (zh) 一种基于php处理高并发io的方法
US20200371835A1 (en) Method And Apparatus For Scheduling Matrix Operations In Digital Processing Systems
CN101414270A (zh) 硬件辅助的辅核任务动态优先级调度的实现方法
CN111190741A (zh) 基于深度学习节点计算的调度方法、设备及存储介质
CN111258655A (zh) 融合计算方法及可读存储介质
CN111459647A (zh) 基于嵌入式操作***的dsp多核处理器并行运算方法及装置
Vaidehi et al. Multicore applications in real time systems
CN111597044A (zh) 任务调度方法、装置、存储介质及电子设备
CN114371933A (zh) 一种动态调度多核融合计算处理器的方法及其***
CN111045800A (zh) 一种基于短作业优先的优化gpu性能的方法及***
CN114661460A (zh) 面向异构众核处理器的ai框架两级并行加速方法
US20220207643A1 (en) Implementing heterogenous wavefronts on a graphics processing unit (gpu)
CN115562846A (zh) 一种资源调度的方法、装置及计算节点
US9760969B2 (en) Graphic processing system and method thereof
KR100590764B1 (ko) 멀티프로세서 시스템에서 스케줄러를 이용한 대규모데이터 처리 방법
US20210191754A1 (en) User-defined metered priority queues

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