CN105446733B - 数据处理系统、用于数据处理系统的方法及可读存储介质 - Google Patents
数据处理系统、用于数据处理系统的方法及可读存储介质 Download PDFInfo
- Publication number
- CN105446733B CN105446733B CN201510578575.6A CN201510578575A CN105446733B CN 105446733 B CN105446733 B CN 105446733B CN 201510578575 A CN201510578575 A CN 201510578575A CN 105446733 B CN105446733 B CN 105446733B
- Authority
- CN
- China
- Prior art keywords
- processing
- processor
- data processing
- processing system
- pipeline
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 172
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000004044 response Effects 0.000 claims description 12
- 230000015654 memory Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/7828—Architectures of general purpose stored program computers comprising a single central processing unit without memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
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)
- Advance Control (AREA)
Abstract
本发明涉及数据处理系统、用于数据处理系统的方法及可读存储介质。一种数据处理系统包括:处理器,该处理器包括多个核,每个核包括第一处理管线和第二处理管线,所述第二处理管线具有与所述第一处理管线不同的架构;框架,该框架被配置为管理包括所述处理器的所述数据处理系统的处理资源;以及接口,该接口被配置为将各个所述处理管线向所述框架呈现为核。
Description
技术领域
本发明涉及处理器资源的有效利用。
背景技术
处理器设计者不断地试图改进处理器性能,设计例如计算能力增加、操作速度增大、功耗减小和/或成本降低的处理器架构。对于许多先前的处理器架构,通过增大其操作频率来改进处理器性能已变得越来越困难。结果,许多更新的处理器架构聚集于并行处理来改进性能。
处理器架构中所采用的一种并行处理技术提供了多个处理核。此技术利用并行操作的多个独立的处理器(称作核)来执行程序。通常,多个处理核共享公共接口,并且可共享其它外围资源。各个核可具有进一步的并行处理能力。例如,核可具有多线程、超标量、单指令多数据(SIMD)、多指令多数据(MIMD)、超长指令字(VLIW)和/或其它并行处理能力。
各个核可设置有不同类型的处理元件,所述处理元件被配置为以不同的方式处理数据。例如,核可包括被优化用于处理标量运算的一组主处理元件以及被优化用于矢量运算的另一组辅处理元件(例如,SIMD管线(pipeline))。
在SIMD处理中,多个处理元件同时但利用不同的数据来执行相同的指令。因此,SIMD处理对于针对不同的数据集多次重复相同的代码序列的例程尤其有效。这些例程可以例如用于调节数字图像中的对比度。
接收机可包括具有并行处理能力的多个不同类型的处理器(例如,CPU、GPU、DSP、FGPA等)。诸如OpenCL和CUDA的框架允许程序员编写能够在不同类型的处理器上执行的程序。在一些情况下,在由框架提供的结构下,当执行程序时处理能力可能是未充分利用的。因此,需要更好地管理可用处理能力以使得程序能够被更有效地处理。
发明内容
根据本公开的第一方面,提供一种数据处理系统,包括:处理器,该处理器包括多个核,每个核包括第一处理管线和第二处理管线,所述第二处理管线具有与所述第一处理管线不同的架构;框架,该框架被配置为管理包括所述处理器的所述数据处理系统的处理资源;以及接口,该接口被配置为将各个所述处理管线向所述框架呈现为核。
所述接口还可被配置为将所述处理器向所述框架呈现为两个不同的处理器。
所述接口可被配置为将第一处理管线向所述框架呈现为所述两个不同的处理器中的一个处理器中的核,并且将第二处理管线呈现为所述两个不同的处理器中的另一处理器中的核。
所述框架可被配置为查询数据处理系统以确定数据处理系统内的处理器的数量,并且所述接口可被配置为对所述查询做出响应,所述响应指示两个不同的处理器以将所述处理器呈现为两个不同的处理器。
所述接口可被配置为将各个处理管线向所述框架呈现为所述处理器中的核。
所述框架可被配置为查询所述处理器以确定包括在所述处理器内的核的数量,并且所述接口可被配置为对所述查询做出响应,所述响应指示包括在所述处理器内的处理管线的数量以将各个处理管线呈现为核。
所述第二处理管线可以是单指令多数据(SIMD)处理管线。
所述数据处理系统还可包括调度器,该调度器被配置为访问包括第一指令集和第二指令集的存储器,并且所述调度器被配置为使得所述第一指令集在第一处理管线处执行且所述第二指令集在第二处理管线处执行。
所述第一指令集和第二指令集可从相同的程序代码编译。
所述数据处理系统还可包括编译器,该编译器被配置为将程序编译成第一指令集,并且将相同的程序编译成第二指令集。
所述第一指令集可从程序编译以适合于在第一处理管线处处理,并且所述第二指令集可从相同的程序编译以适合于在第二处理管线处处理。
所述第一指令集可从第一程序编译,所述第二指令集可从不同的第二程序编译。
所述第一指令集可不同于第二指令集。
所述第一指令集和第二指令集可依据OpenCL标准来编译。
所述框架可被配置为依据OpenCL标准来操作。
所述处理器可以是同时多线程处理器。
所述第一处理管线可具有超长指令字(VLIW)和/或超标量架构。
根据本公开的第二方面,提供一种数据处理系统的方法,该数据处理系统包括处理器,该处理器包括多个核,每个核包括第一处理管线和第二处理管线,所述第二处理管线具有与所述第一处理管线不同的架构,所述方法包括:在框架处管理包括所述处理器的所述数据处理系统的处理资源;以及将各个所述处理管线向所述框架呈现为核。
该方法还可包括将所述处理器向所述框架呈现为两个不同的处理器。
该方法还可包括将各个处理管线向所述框架呈现为所述处理器中的核。
根据本公开的第三方面,提供一种用于生成上述数据处理系统的机器可读代码。
根据本公开的第四方面,提供一种机器可读存储介质,其上编码有用于生成上述数据处理系统的非瞬时性机器可读代码。
根据本公开的第五方面,提供参照图1-4中的任何图、基本上如本文所述的数据处理系统和/或方法。
附图说明
现在将参照附图作为示例描述本发明。在附图中:
图1示出处理器处理内核;
图2示出更有效方式的处理器处理内核;
图3是能够处理程序的数据处理系统的示意图;并且
图4是在处理器处处理程序的流程图。
具体实施方式
以下描述作为示例而呈现以使得本领域技术人员能够使用本发明。本发明不限于本文所描述的实施方式,对于本领域技术人员而言对所公开的实施方式的各种修改将易于显而易见。
图1是包括四个核101、102、103和104的处理器100的示意图。各个核分别包括主处理管线105、106、107和108以及SIMD处理管线109、110、111和112。用于各个核的主处理管线105、106、107和108可在能够实现标量运算的一组处理元件(例如,超标量、VLIW等处理器)处实现。用于各个核的SIMD处理管线109、110、111和112可在被优化用于矢量运算的SIMD处理的一组处理元件处实现。
各个核还包括前端逻辑,其被配置为取得和发出指令以使得可在各个循环将来自多个线程的多个指令发出给处理元件。这被称作同时多线程(SMT)。图1将该前端逻辑描绘为向适当的管线分配指令的SMT引擎113、114、115和116。在矢量运算的情况下,用于各个核的SMT引擎可向SIMD管线或主管线分配指令。对于标量运算和一些矢量运算,SMT引擎向主管线分配指令。
作为OpenCL框架的一部分,需要在处理器处运行主机程序以便分配待执行的指令或内核。主机程序被示出于117处,主机程序在核101处实现。通常,主机程序被设计成包括标量运算的顺序例程,因此主机程序的大多数指令在主管线105处实现。主机程序117可具有可由SMT引擎113分配给SIMD管线109的相对少量的SIMD指令。因此,核101的SIMD管线109将在大部分情况下为空闲和未充分利用的。
主机程序117将内核118分配给剩余核102、103和104。这些内核可包括标量或矢量运算或者这两者的混合。通常,为了增加处理程序的速度,程序将被编译以使得相对大量的处理可并行地进行。因此,当在SMT引擎114、115和116处接收到内核时,它将大部分并行处理工作分别分配给SIMD管线109、110和111。然而,这使得主管线106、107和108处于空闲达相当长的一段时间。
因此,如图1所示,核101的SIMD管线108以及核102、103和104的主管线106、107和108由于那些管线相应的SMT引擎将相对少量的指令提供给那些管线而分别处于空闲达相当长的一段时间。
图2示出以更有效的方式利用的图1的处理器100的示意图。主机程序117依旧在核101的主管线105上运行。然而,在此示例中,主机117能够将各个其它管线(主管线和SIMD管线)当作独立的核。因此,主机117可同时将两个内核分配给核102、103和104中的每一个并且将一个内核分配给核101。然后,各个核处的SMT引擎能够将来自各个接收的内核的指令分配给主管线和SIMD管线。这提供了处理器100的所有可用管线的更有效的利用。
在一个示例中,为了允许主机程序117将各个管线当作独立核,在处理器处或者处理器与OpenCL框架之间提供接口。该接口可向OpenCL框架呈现处理器100具有八个核,而非它实际所具有的四个核。该接口可以是处理器100的驱动器,其被编程以返回处理器所具有的管线的数量,而非处理器所具有的核的数量。另选地,接口可以是程序,其被配置为拦截来自OpenCL框架的、以处理器100为目的地的查询,并且对该查询做出响应就像该响应来自处理器100一样。该响应指示处理器100所具有的管线的数量,而非核的数量。在任一情况下,接口可对请求处理器上的计算单元的数量(可被视为核的数量)的信息的查询(例如,OpenCL标准中提供的clGetDeviceInfo查询)做出响应。
另选地,接口可将处理器100向OpenCL框架呈现为两个虚拟处理器,每个虚拟处理器具有四个核(即,在OpenCL术语中,两个计算装置,每个计算装置具有四个计算单元)。第一虚拟处理器可被呈现为具有四个核,每个核具有主管线的能力,并且第二虚拟处理器可被呈现为具有四个核,每个核具有SIMD管线的能力。因此,向OpenCL框架呈现总共八个核,而非处理器100的四个核。当OpenCL框架查询可用装置的列表(例如,利用clGetDeviceIDs查询)时,接口可对该查询做出响应以返回两个虚拟处理器(而非处理器100)的细节。各个虚拟处理器可具有其自己的地址和装置能力特性。各个虚拟处理器可处理同一程序,该程序可被编译成适合于各个虚拟处理器的两种不同的版本(如下所述)。虚拟处理器还可在各个虚拟处理器处同时处理不同的程序。
通过向OpenCL框架指示管线的数量n,而非处理器实际所具有的核的数量m,程序可被编译成指令并提供给处理器就像处理器具有n个核一样。如果主机程序在处理器的管线之一上运行,则主机程序可同时将n-1个内核分配给处理器以用于在各个可用管线处执行。因此,主机能够将内核分配给处理器就像处理器具有n-1个可用核一样。
用于各个核的SMT引擎适当地将来自各个内核的指令分配给主管线或SIMD管线。依据需要实现的处理的类型将指令分配给主管线或SIMD管线。例如,如果指令针对矢量运算,则SMT引擎可将那些指令分配给SIMD管线以用于执行。如果指令针对标量运算,则SMT将那些指令分配给主管线。
为了甚至更有效地利用处理器100的并行处理能力,待处理的程序可被编译成两个不同的指令版本:第一版本用于在主管线处处理,第二版本用于在SIMD管线处处理。两个版本如果利用相同的数据执行则将输出相同的结果。主机程序将两个版本分配给处理器,该处理器适当地在其相应的主管线和SIMD管线处分配并处理两个版本(其可能未必在同一核处)。因此,可更有效地执行程序,因为主管线和SIMD管线同时用于其执行,而非单个管线。
图3是包括处理器310和框架320的数据处理系统300的示意图,所述框架320使得程序330能够在处理器310处执行。
处理器310可以是CPU、GPU、DSP或者能够兼容地用在框架320内的任何其它类型的处理器。处理器310包括m个核,其中m大于一。在图3的示例中,处理器310被示出为具有四个核311至314。如上所述,各个核可具有一个或更多个管线,例如主管线和/或一个或更多个SIMD管线。在处理器处可用的管线的总数n大于核的数量m。如上所述,各个核可包括将在核处接收的指令分配给适当的管线的SMT引擎。
框架320包括能够读取并编译程序330的编译器340。程序330可包括两个不同的代码集:一个用于将在处理器310处执行的内核(330A),另一个用于将调用内核的主机程序(330B)。程序330被编译成能够在处理器310处执行的离散指令序列。
主机程序330B由编译器340编译以优选在主机CPU的主管线上运行。如上所述,编译器340可将内核程序330A编译成两个不同的指令集,以提供同一内核程序330A的两个不同的版本。编译器340可直接读取程序330或者经由程序语言向编译器340能够读取的语言的翻译来间接读取程序330。可利用诸如C、C++、Java、Fortran等的编程语言对程序330进行编码。
框架320还可包括API 350,其用于管理处理器310处的程序330的处理。通过API350,可查询可存在于数据处理系统300处的处理器310和其它处理器(未示出)以收集关于数据处理系统300处可用的处理资源的信息。然后由主机程序(从程序330编译的)使用该信息来将工作分配给处理器310以及任何其它检测到的处理器。
数据处理系统300还包括接口360。如上所述,接口360可在处理器310的驱动器或者API 350与处理器310之间的程序处。如上所述,接口360可对向处理器310寻址的查询做出响应,以向框架320提供将处理器310的各个管线呈现为核的信息。
图4是描述具有m个核的处理器处的处理指令的流程图(可从一个或更多个程序编译),每个核具有第一处理管线以及不同的第二处理管线。在此示例中,处理器由OpenCL框架管理。
在步骤401,OpenCL框架查询处理器以确定其处理能力。如上所述,这可通过发送clGetDeviceInfo查询和/或clGetDeviceIDs查询来进行。
在步骤402,接口拦截来自框架的查询。在步骤403,接口生成对查询的响应。接口依据将管线呈现为核的优选机制来生成响应。
例如,如果第一管线和第二管线将被呈现为两个不同的虚拟处理器中的核,则接口可利用两个虚拟处理器的两个不同的ID(而非处理器的ID)来生成对clGetDeviceIDs查询的响应。然后,当框架稍后针对所标识的虚拟处理器发送clGetDeviceInfo时,接口可生成将各个虚拟处理器呈现为具有m个核(即,用于两个虚拟处理器的总共2m个核)的响应。
另选地,如果第一管线和第二管线将被呈现为单个处理器中的核,则接口可在不生成响应的情况下将clGetDeviceIDs查询转发给处理器,并且允许处理器正常响应。然后,接口仅对向处理器寻址的clGetDeviceInfo查询生成响应。所生成的响应将处理器呈现为具有2m个核。
在步骤404,将所生成的将各个管线呈现为核的响应发送给框架。
在步骤405,依据框架编译程序。程序被编译成:a)待执行的内核;以及b)调用内核的主机程序。
在步骤406,主机程序将内核分配给处理器就像处理器具有2m个核一样或者就像处理器是各自具有m个核的两个不同的处理器(即,总共2m个核)一样,而非处理器实际上所具有的m个核。这允许更大量的内核并行地执行,因此更快速地处理程序。另外,可在步骤405和406处相似地编译并执行程序。
参照OpenCL框架描述了以上示例。然而,所描述的特征和方法可利用其它框架(例如,CUDA)来实现。
图3的数据处理系统被示出为包括诸如API 350和接口360的多个功能块。这仅是示意性的,并非旨在限定数据处理系统的不同逻辑元件之间的严格划分。各个功能块可按照任何合适的方式来设置。
如本文中使用的术语软件和计算机可读代码包括处理器(例如,CPU和/或GPU)可执行的代码、固件、字节代码、编程语言代码(诸如C或OpenCL)和可重构逻辑器件(诸如FPGA)的模块。机器可读代码包括用于限定任何级别(包括寄存器传送级(RTL))的集成电路的硬件表示、高级别电路表示(诸如Verilog或VHDL)和低级别表示(诸如OASIS和GDSII)的软件和代码。
可以由一个或更多个物理处理单元来执行本文中描述的算法和方法,所述一个或更多个物理处理单元执行使所述单元执行所述算法/方法的软件。所述物理处理单元或每个物理处理单元可以是任何适当的处理器,诸如CPU或GPU(或其核)或者固定功能或可编程硬件。软件可以以非暂时形式存储在诸如集成电路存储器或者光学存储器或磁存储器这样的机器可读介质中。机器可读介质可以包括多种存储器,诸如芯片上存储器(on-chipmemory)、计算机工作存储器和非易失性存储装置。
本申请人据此独立地公开了本文中描述的每个独立特征和两个或更多个这种特征的任和组合,使得这些特征或组合能够根据本领域技术人员的公知常识基于作为整体的本说明书来实现,而无论这些特征或特征的组合是否解决本文中公开的任何问题,并且不限制权利要求的范围。本申请人指出,本发明的方面可以包括任何这种独立特征或特征的组合。考虑到上述描述,将对本领域技术人员显而易见的是,可以在本发明的范围内做出各种修改。
Claims (20)
1.一种数据处理系统,该数据处理系统包括:
处理器,该处理器包括多个核,每个核包括第一处理管线和第二处理管线,所述第二处理管线具有不同于所述第一处理管线的架构;
处理资源管理器,该处理资源管理器被配置为管理包括所述处理器的所述数据处理系统的处理资源;以及
接口,该接口被配置为将各个所述处理管线向所述处理资源管理器呈现为核。
2.根据权利要求1所述的数据处理系统,其中,所述接口还被配置为将所述处理器向所述处理资源管理器呈现为两个不同的处理器。
3.根据权利要求2所述的数据处理系统,其中,所述接口被配置为将所述第一处理管线向所述处理资源管理器呈现为所述两个不同的处理器中的一个处理器中的核,并且将所述第二处理管线呈现为所述两个不同的处理器中的另一处理器中的核。
4.根据权利要求2所述的数据处理系统,其中,所述处理资源管理器被配置为查询所述数据处理系统以确定所述数据处理系统内的处理器的数量,并且所述接口被配置为对所述查询做出响应,所述响应指示两个不同的处理器以将所述处理器呈现为两个不同的处理器。
5.根据权利要求1所述的数据处理系统,其中,所述接口被配置为将各个处理管线向所述处理资源管理器呈现为所述处理器中的核。
6.根据权利要求5所述的数据处理系统,其中,所述处理资源管理器被配置为查询所述处理器以确定包括在所述处理器内的核的数量,并且所述接口被配置为对所述查询做出响应,所述响应指示包括在所述处理器内的处理管线的数量以将各个处理管线呈现为核。
7.根据权利要求1所述的数据处理系统,其中,所述第二处理管线是单指令多数据SIMD处理管线。
8.根据权利要求1所述的数据处理系统,该数据处理系统还包括调度器,该调度器被配置为访问包括第一指令集和第二指令集的存储器,并且所述调度器被配置为使得所述第一指令集在所述第一处理管线处执行且所述第二指令集在所述第二处理管线处执行。
9.根据权利要求8所述的数据处理系统,其中,所述第一指令集和所述第二指令集从相同的程序编译。
10.根据权利要求9所述的数据处理系统,该数据处理系统还包括编译器,该编译器被配置为将程序编译成所述第一指令集,并且将相同的程序编译成所述第二指令集。
11.根据权利要求9所述的数据处理系统,其中,所述第一指令集从所述程序编译以适合于在所述第一处理管线处处理,并且所述第二指令集从相同的程序编译以适合于在所述第二处理管线处处理。
12.根据权利要求8所述的数据处理系统,其中,所述第一指令集从第一程序编译,所述第二指令集从不同的第二程序编译。
13.根据权利要求8所述的数据处理系统,其中,所述第一指令集不同于所述第二指令集。
14.根据权利要求8所述的数据处理系统,其中,所述第一指令集和第二指令集依据OpenCL标准来编译。
15.根据权利要求1所述的数据处理系统,其中,所述处理资源管理器被配置为依据OpenCL标准来操作。
16.根据权利要求1所述的数据处理系统,其中,所述处理器是同时多线程处理器。
17.根据权利要求1所述的数据处理系统,其中,所述第一处理管线具有超长指令字VLIW和/或超标量架构。
18.一种用于数据处理系统的方法,该数据处理系统包括处理器,该处理器包括多个核,每个核包括第一处理管线和第二处理管线,所述第二处理管线具有与所述第一处理管线不同的架构,所述方法包括以下步骤:
由处理资源管理器管理包括所述处理器的所述数据处理系统的处理资源;以及
将各个所述处理管线向所述处理资源管理器呈现为对应核。
19.根据权利要求18所述的方法,该方法还包括将所述处理器向所述处理资源管理器呈现为两个不同的处理器,其中,各个所述第一处理管线呈现为所述两个不同的处理器中的一个处理器中的对应核,并且各个所述第二处理管线呈现为另一处理器中的对应核,或者,
该方法还包括将各个所述处理管线向所述处理资源管理器呈现为所述处理器中的对应核。
20.一种存储有计算机可执行指令的非瞬时性机器可读存储介质,数据处理系统包括处理器,该处理器包括多个核,每个核包括第一处理管线和第二处理管线,所述第二处理管线具有与所述第一处理管线不同的架构,所述计算机可执行指令在所述数据处理系统处执行时使得所述系统:
在处理资源管理器处管理包括所述处理器的所述数据处理系统的处理资源;并且
将各个所述处理管线向所述处理资源管理器呈现为核。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1416578.1A GB2524346B (en) | 2014-09-19 | 2014-09-19 | Separating Cores |
GB1416578.1 | 2014-09-19 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105446733A CN105446733A (zh) | 2016-03-30 |
CN105446733B true CN105446733B (zh) | 2020-09-04 |
Family
ID=51869165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510578575.6A Active CN105446733B (zh) | 2014-09-19 | 2015-09-11 | 数据处理系统、用于数据处理系统的方法及可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10146736B2 (zh) |
CN (1) | CN105446733B (zh) |
DE (1) | DE102015112250A1 (zh) |
GB (1) | GB2524346B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102485935B1 (ko) * | 2018-02-23 | 2023-01-10 | 삼성전자주식회사 | 전자 장치 및 그의 동작 방법 |
US10949211B2 (en) * | 2018-12-20 | 2021-03-16 | Vmware, Inc. | Intelligent scheduling of coprocessor execution |
CN110362530B (zh) * | 2019-07-17 | 2023-02-03 | 电子科技大学 | 一种基于并行流水线架构的数据链盲信号处理方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102099788A (zh) * | 2008-06-06 | 2011-06-15 | 苹果公司 | 用于在多处理器上进行数据并行计算的应用编程接口 |
CN102498470A (zh) * | 2009-08-24 | 2012-06-13 | Abb技术股份有限公司 | 改进的采用自动化控制器的实时应用程序的执行 |
CN103164285A (zh) * | 2011-12-12 | 2013-06-19 | 三星电子株式会社 | 可重构处理器和可重构处理器的微核 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030135716A1 (en) * | 2002-01-14 | 2003-07-17 | Gil Vinitzky | Method of creating a high performance virtual multiprocessor by adding a new dimension to a processor's pipeline |
US7802073B1 (en) * | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
US8418177B2 (en) * | 2010-10-01 | 2013-04-09 | Microsoft Corporation | Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores |
KR101738641B1 (ko) * | 2010-12-17 | 2017-05-23 | 삼성전자주식회사 | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 |
US8782645B2 (en) * | 2011-05-11 | 2014-07-15 | Advanced Micro Devices, Inc. | Automatic load balancing for heterogeneous cores |
US8789026B2 (en) * | 2011-08-02 | 2014-07-22 | International Business Machines Corporation | Technique for compiling and running high-level programs on heterogeneous computers |
US9256915B2 (en) * | 2012-01-27 | 2016-02-09 | Qualcomm Incorporated | Graphics processing unit buffer management |
-
2014
- 2014-09-19 GB GB1416578.1A patent/GB2524346B/en active Active
-
2015
- 2015-07-28 DE DE102015112250.2A patent/DE102015112250A1/de active Pending
- 2015-09-11 CN CN201510578575.6A patent/CN105446733B/zh active Active
- 2015-09-18 US US14/858,459 patent/US10146736B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102099788A (zh) * | 2008-06-06 | 2011-06-15 | 苹果公司 | 用于在多处理器上进行数据并行计算的应用编程接口 |
CN102498470A (zh) * | 2009-08-24 | 2012-06-13 | Abb技术股份有限公司 | 改进的采用自动化控制器的实时应用程序的执行 |
CN103164285A (zh) * | 2011-12-12 | 2013-06-19 | 三星电子株式会社 | 可重构处理器和可重构处理器的微核 |
Also Published As
Publication number | Publication date |
---|---|
GB201416578D0 (en) | 2014-11-05 |
US20160085719A1 (en) | 2016-03-24 |
DE102015112250A1 (de) | 2016-03-24 |
CN105446733A (zh) | 2016-03-30 |
GB2524346B (en) | 2016-12-21 |
US10146736B2 (en) | 2018-12-04 |
GB2524346A (en) | 2015-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307862B2 (en) | Compiling and combining instructions from different branches for execution in a processing element of a multithreaded processor | |
US11954036B2 (en) | Prefetch kernels on data-parallel processors | |
TWI628594B (zh) | 用戶等級分叉及會合處理器、方法、系統及指令 | |
US8683468B2 (en) | Automatic kernel migration for heterogeneous cores | |
US8782645B2 (en) | Automatic load balancing for heterogeneous cores | |
CN110249302B (zh) | 在处理器核上同时执行多个程序 | |
GB2520571A (en) | A data processing apparatus and method for performing vector processing | |
US9747216B2 (en) | Computer processor employing byte-addressable dedicated memory for operand storage | |
Sunitha et al. | Performance improvement of CUDA applications by reducing CPU-GPU data transfer overhead | |
CN105446733B (zh) | 数据处理系统、用于数据处理系统的方法及可读存储介质 | |
JP2023518833A (ja) | ハードウェアアクセラレーションリソースを有効にするためのコンパイラ主導のタイル置換 | |
Poss et al. | Apple-CORE: Microgrids of SVP Cores--Flexible, General-Purpose, Fine-Grained Hardware Concurrency Management | |
Etsion et al. | Task superscalar: Using processors as functional units | |
Poss et al. | Apple-CORE: harnessing general-purpose many-cores with hardware concurrency management | |
Sommer et al. | Synthesis of interleaved multithreaded accelerators from OpenMP loops | |
Butler et al. | Improving application concurrency on GPUs by managing implicit and explicit synchronizations | |
US11847462B2 (en) | Software-based instruction scoreboard for arithmetic logic units | |
KR102644951B1 (ko) | 산술 논리 장치 레지스터 시퀀싱 | |
Lenir et al. | Exploiting instruction-level parallelism: the multithreaded approach | |
Labarta et al. | Hybrid Parallel Programming with MPI/StarSs | |
Seyhanli | Memory Controller Design for GPU Simulation in Multi2sim | |
Goossens et al. | A Multicore and Multithreaded Microcontroller | |
Chu et al. | The comparisons of opencl and openmp computing paradigm | |
Kim et al. | GPU Design, Programming, and Trends |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |