CN111164583A - 可配置的硬件的运行时间优化 - Google Patents
可配置的硬件的运行时间优化 Download PDFInfo
- Publication number
- CN111164583A CN111164583A CN201880063952.4A CN201880063952A CN111164583A CN 111164583 A CN111164583 A CN 111164583A CN 201880063952 A CN201880063952 A CN 201880063952A CN 111164583 A CN111164583 A CN 111164583A
- Authority
- CN
- China
- Prior art keywords
- function
- compute
- computing
- group
- calls
- 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.)
- Granted
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 69
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000017525 heat dissipation Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- 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/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Logic Circuits (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公开一种用于一可配置的处理架构的运行时间优化的方法。所述方法包含:接收用于运行至少一函数的多个调用;辨识在所述多个接收到的调用之间的至少一模式;及基于所述至少一模式,操作所述可配置的处理架构的至少一部分来计算所述至少一函数。
Description
相关申请的交叉引用
本申请主张2017年8月3号提交的美国临时申请第62/540,849号及2017年9月13号提交的美国临时申请第62/558,090号的权益,其内容通过引用并入本文中。
技术领域
本公开通常有关于硬件的运行时间优化,更具体地,是有关用于可配置的硬件的运行时间优化的多个技术。
背景技术
随着科技的进步,对具有较高的处理功率的更强大的处理系统的需求迅速地增加。如今,多个处理器被期望用以传送高计算通量,并且具有高功率效率。然而,现存的多个处理系统执行多个连续的指令流,所述多个连续的指令流通过外显存储进行通信,而因此受到模型功率无效率的困扰。
在多个现代的处理架构中,每个动态指令必须被提取及解码,即便多个程序大部分在所述代码的多个较小的静态部分上进行迭代。再者,由于外显状态的存储器为用于在多个指令之间传递数据的唯一通道,因此多个中间结果在多个功能单元与多个寄存器文件之间被重复地传输。多个现代的计算架构的多个限制包括高功率消耗、散热、网络及多个I/O瓶颈,以及存储器分区。
例如,一现场可编程门阵列(FPGA)在配置有软件的硬件电路上运作。所述FPGA允许具有低延迟时间的很高的通量率。所述FPGA的可配置性可被使用作为在多核心架构中的协同处理器,或者可被放置于多个关键数据路径中,以卸载对于一系统的CPU所进行的处理。FPGA的多个主要的缺点的其中一个为缺乏灵活的可编程性。进一步地,一FPGA的所述计算功率相对地低。
一可编程的处理架构的一示例为一多核心处理器。一多核心处理器的架构包括一单一的计算组件,所述单一的计算组件具有两个或多个独立且实际的处理单元(“多个核心”),其为读取及执行多个程序指令的多个单元。所述多个指令为多个普遍的CPU指令(例如,增加、移动数据及分支)。在此架构中,一单一的处理器可在个别的核心上并行地运行多个指令。多核心处理器的多个主要的缺点为高功率消耗及低通量。
一处理架构的另一示例为一图形处理单元(GPU)。一GPU是基于一并行的架构,所述并行的架构是由设计用于同时处理多个任务的数千个较小且更有效率的核心所组成。多个GPU可被利用以加速深度学习、图形绘制及机器学习应用的多个计算任务。GPU的多个主要的缺点为高功率消耗及延迟时间。再者,GPU不具有存储器一致性,因此,共享的存储器包含一挑战。
因此,提供一种克服上述的多个缺陷的处理架构将是有利的。
发明内容
以下为本公开的多个示例实施例的一概述。提供此概述是为了方便读者提供对这样的实施例的一基本理解,并且不完全限定本公开的广度。此概述并非所有预期的实施例的一详尽的概述,并且既不旨在辨识所有实施例的关键或重要的元件,也不旨在描绘任何或所有方面的范围。其唯一的目的在于以简化的形式呈现出一个或多个实施例的一些概念,以作为之后呈现出的更详细的描述的一序言。为了方便起见,术语“一些实施例”在本文中可用来指本公开的一单一的实施例或多个实施例。
所述多个公开的实施例的各种方面包括一种用于一可配置的处理架构的运行时间优化的方法。所述方法包含:接收用于运行至少一函数的多个调用;辨识在所述多个接收到的调用之间的至少一模式;及基于所述至少一模式,操作所述可配置的处理架构的至少一部分来计算所述至少一函数。
所述多个公开的实施例的各种方面进一步包括一种可配置的处理架构。所述系统包含一计算网格;一处理单元;一存储器,连接至所述处理电路,其中所述存储器含有多个指令,在通过所述处理单元执行所述多个指令时,所述多个指令将所述处理单元配置用以:接收用于运行至少一函数的多个调用;辨识在所述多个接收到的调用之间的至少一模式;及基于所述至少一模式,操作所述可配置的处理架构的至少一部分来计算所述至少一函数。
附图说明
在说明书的结论处的多个权利要求中特别指出且明确地要求保护本文所公开的主题。通过以下与多个附图结合的详细描述,本发明的前述及其他的目的、特征及优势将变得显而易见。
图1A为根据一实施例的一可配置的处理架构的一示意图;
图1B为根据一实施例的所述可配置的处理架构的一计算网格的一示意图;
图2A至图2D为显示出根据一实施例的多个模式及其各自的函数的配置的示意性模拟图;及
图3为根据一实施例的可配置的硬件的运行时间优化的一流程图。
具体实施方式
重要的是要注意,本文所公开的多个实施例仅仅是本文创新教学的许多有利的用途的多个示例。一般而言,在本申请的说明书所做出的多个陈述不一定限制各种要求保护的实施例中的任何一个。并且,一些陈述可适用于一些发明特征,但不适用于其他特征。通常,除非另有指示,否则单数元件可为复数形式,反之亦然,而不会失去一般性。
图1说明根据一实施例的一可配置的处理架构100的一示例性示意图。所述处理架构100包括一计算网格110及一处理单元(电路)101,所述处理单元(电路)101耦接至一存储器,例如一程序存储器102。
所述处理单元101被配置用以运行一过程,所述过程用于优化在所述计算网格110上的程序代码的一部分的执行。所述程序代码的一部分可包括一函数、一基本区块或两者兼具(统称为一函数)。一基本区块为带有多个连续指令的一段程序代码,如此不会跳离或跳至所述区块的中间。
在一实施例中,所述可配置的处理架构100被配置用以加速多个计算装置的运作。例如,这种装置可包括一多核心中央处理单元(CPU)、一现场可编程门阵列(FPGA)、一图形处理单元(GPU)、一专用集成电路(ASIC)、一量子计算机、光学计算、一神经网络加速器或其组合。
根据所述多个公开的实施例,例如,通过在所述计算网格110上而不是在一计算装置(未显示)上执行多个函数来达成所述加速。所述计算网格110包括多个逻辑元件及多个多路复用器(MUXs)的一阵列,如在下文中参考图1B所进一步讨论。
通过使用一投影图来将所述函数投影至一计算群组,以进行通过所述计算网格110所进行的一函数的执行。一计算群组为藉由在所述网格110中的多个MUX来被连接的一组逻辑元件。通过正确地分配及挑选在所述网格110中的所述多个逻辑元件,可达成一优化过的多个函数的执行。
具体地,通过所述处理单元101来配置所述计算网格110,以便部分地优化所述网格110的所述运作。为此目的,所述处理单元101进行了多个优化过程。
在一实施例中,所述处理单元101被配置用以接收用于多个函数的多个调用,所述多个函数通过多个计算元件来在所述计算装置中运行。所述多个调用可针对多个不同的函数、针对相同的函数或两者均可;针对所述存储器的不同的部分、针对所述存储器的多个相同的部分或两者均可;等等。所述多个函数可进行多个计算的运作,其包括但不限于算术、逻辑运算或两者兼具。
所述处理单元101被配置用以辨识在所述多个接收到的调用之间的至少一模式。根据另一实施例,所述辨识可通过一外部过程来进行,之后转送至所述处理单元101。在一实施例中,所述多个模式是在高于一特定的预定阈值的关联性(association)下的两个或多个函数所产生的。基于某些函数的再现的某些统计分析等,所述阈值可随着时间动态地改变。也就是说,例如,当两个函数相对频繁地被一个接着一个执行时,确定了所述两个函数之间的一关联性的一模式。
基于所述被确定的模式,所述处理单元101配置或以其他方式操作所述计算网格110,以便优化所述函数的执行。通过多个过程可达成所述函数的所述操作,所述多个过程包括,但不限于,复制、扩展、缩小、内联、修改或其组合等。
在一示例实施例中,当进行一重定位过程时,所述处理单元101配置所述计算网格110,使得两个经常互相调用的计算群组被拓扑地分配成在所述网格110中彼此接近。
在另一实施例中,所述处理单元101配置所述计算网格110,使得经常使用的一组计算群组将被复制到许多实例中。在一进一步的实施例中,多个计算群组的多个调用者(caller)在多个新的复制的计算群组之间进行负载平衡。
在又一实施例中,当进行一内联过程时,所述处理单元101配置所述计算网格110,使得经常互相调用的两个逻辑计算群组被配置及重新配置为一单一的逻辑计算群组,所述单一的逻辑计算群组结合了所述两个逻辑计算群组。
在又一实施例中,当进行一扩展过程时,所述处理单元101配置所述计算网格110,使得含有多个分支及多个回路的一逻辑计算群组被重新配置成具有通过使用内联及重定位过程来被展开的所述回路,
在又一实施例中,当进行一缩小过程时,所述处理单元101配置所述计算网格110,使得不再提供有一优化过的执行的一被复制或被扩展的计算群组将被重新配置。所述多个缩小的计算群组的多个调用者受到不同计算群组的参考。一旦不具有参考,则计算群组可被重新配置。也就是说,可释放出与此计算群组有关的多个资源。
应当注意的是,所述处理单元101配置所述计算网格110,以根据相对于以下的至少一个的需求来达成更佳的性能:功率消耗、存储器访问、延迟时间、门使用计数(gateusage count)及通量。
所述处理单元101可被实现为一个或多个硬件逻辑组件或电路。例如,但并非限制,可使用的多个硬件逻辑组件的多个说明性类型包括多个通用微处理器、多个微控制器、一多核心CPU、一FPGA、一GPU、一ASIC、一量子处理器、一光学计算处理器、一神经网络加速器、一粗粒度可配置的架构(CGRA)、一智能处理单元等,或任何可进行计算或其他信息的多个操作的其他硬件逻辑组件。
在一些实施例中,对包括有受存储器限制的多个函数的多个关键的代码段进行了分析。这种函数被映射至多个计算群组,所述多个计算群组被重定位以靠近所述计算装置的一存储器。这种分析亦可适用于I/O相关的运作。例如,对多个网络端口、存储、PCI-e、视频感测器等的多个运作。
现在请参考图1B,在一示例实施方式中,所述计算网格110包括多个逻辑元件120(统称为多个LE 120,或个别称为一LE 120)。在一实施例中,一LE可为一逻辑运算符,例如,AND、OR、NOT、XOR或其组合。在又一实施例中,一LE 120可被配置用以进行一查找表(LUT)的运算。在又一实施例中,一LE 120可被配置用以进行一高级运算函数,例如,一定点或浮点数量的加、减、乘、除、指数等。在又一实施例中,一LE 120可进行一移位的运算,例如,一左移位、一右移位等。
应当注意的是,在所述计算网格110中的每个LE 120可配置有上面讨论的所述多个运算函数的任何一个。在一些配置中,所述多个LE 120的一第一群组可进行一第一运算(例如,一逻辑运算符),以及所述多个LE 120的一第二群组可进行另一个运算(例如,一移位运算)等。在某些实施例中,所有的LE 120可进行多个相同的运算函数。
在一实施例中,所述计算网格110进一步包括多个数据路由接点130,例如,多路复用器、多路解复用器、开关等(统称为多个MUX 130,或个别称为一MUX 130)。所述MUX 130被配置用以安排数据往返所述多个LE 120。
所述计算网格110由多个计算群组组成。每个计算群组包括藉由一单一的MUX 130来被连接的N乘M个LE 120。‘N’及‘M’的数值为不同或相同的整数。在一实施例中,M等于N减1(M=N-1)。所述MUX 130连接来自于所述计算网格110中的相邻两行的所述多个LE 120。
在一实施例中,每个MUX 130包括多个寄存器(未显示)以维持多个文字值。所述MUX 130进一步配置有一条件、一连接表及欲进行运作的所述代码。所述多个MUX 130藉由一总线(未显示)来通过所述处理单元101被配置。
在另一实施例中,所述计算单元110包括用作为数据输入网状网络的多个馈线(Frs)140的一网状网络。所述多个馈线140被配置用以馈送多个输入(例如,但不限于,多个函数的多个参数),以便通过所述多个LE 120来进行处理。在一实施例中,将所述多个馈线140实现为多个内部芯片互连(ICIs)。
应当理解的是,所述计算网格110的所述操作是与欲加速的所述目标计算装置的所述操作同时并即时进行的。根据一实施例,所述操作可进一步包括将一个或多个函数移动至不同的执行装置,意即,可确定在一加速器中不需要的一函数,进而将其重定位以在一CPU中执行。
应当进一步理解的是,所述多个LE 120、所述多个MUX 130及所述多个馈线140可在硬件、软件、固件或其任何的组合中被实行。在一示例性实施例中,将所述计算网格110(及其各种元件)实施作为一半导体装置。在另一实施例中,将所述计算网格110部分实施作为一半导体装置,并且部分作为软件、固件或其组合。如同一示例,确定为更可能或更频繁地出现的多个逻辑路径可在一半导体装置上实施,同时确定为较无可能或较少发生的多个逻辑路径可在一软件上实施。应当注意的是,与依赖于同质实施方式的其他实施例相比,这种实施例可在,例如,运行时间、功率消耗等方面达到较低的总体期望值成本。可通过所述处理单元101或通过在所述计算网格110中的一专用的硬件元件来侦测所述多个逻辑路径。
图2A及图2B分别为根据一实施例的某些函数的重定位的示例性模拟图200A及200B。所述重定位过程包括一计算网格的配置或操作,使得两个经常互相调用的逻辑计算群组(例如基本区块或函数)将在所述计算网格中物理上被定位成更靠近于彼此。
在图2A及图2B显示出的多个示例性模拟图中,显示出一计算网格210具有多个LE220-1至220-N,其中N为大于或等于1的一整数(在所述网格210中未包括多个MUX,仅仅是为了简化多个附图)。基于一投影图来将所述多个计算群组映射或投影至各自的多个LE 220上。一旦辨识到包括所述多个LE 220-1、220-2及220-3的一计算群组与包括所述多个LE220-4、220-5及220-6的一计算群组相关,就将所述包括所述多个LE 220-1、220-2及220-3的计算群组重定位,以邻近于所述包括所述多个LE 220-4、220-5及220-6的计算群组,如图2B所示。
图2C及图2D分别为某些函数的复制的示例性模拟图200C及200D。所述复制过程包括:将所述计算网格210进行配置,使得映射至多个频繁被调用的计算群组的所述多个LE220将在所述网格210上被多次复制,以加快计算速度并解除多个瓶颈。
在一示例实施例中。所述复制过程可进一步包括一负载平衡过程,所述负载平衡过程用于多个新复制的实例,例如,通过将所述多个调用者的参考重新配置至所述原始的区块,如此它们将均匀地调用所有的复制体(duplications)。如同另一示例,所述多个调用者的参考被重新配置至将所述多个复制体负载平衡的新配置的MUX。
当确定可通过将频繁被调用的一函数的一计算群组进行复制来优化所述计算网格210时,每个这种群组会被复制,并且被重定位成远离于所述原始群组。在图2C及图2D所显示的示例中,将包括所述多个LE 220-4、220-5及220-6的一计算群组进行复制。将所述复制的群组定位成远离于在所述计算网格210上的所述原始群组的所述多个LE,以增强对于这类函数的所述调用。这在图2D中得到证明,其相较于图2C所显示的布置包括了一复制的群组。所述复制的群组可取代相对于其他群组较不频繁被调用的多个函数的多个群组。可替代地,当一复制的逻辑计算元件被辨识为不需要用于执行而因此从所述网格被移除时,所述操作可包括缩小或一删除重复的过程。
图3显示出根据一实施例的一示例流程图300,所述示例流程图300说明了一种用于在一可配置的处理架构中运作的一计算网格的运行时间优化的方法。在S310处,接收了用于运行至少一函数的多个请求。所述多个请求可为藉由所述接口所接收的用以进行多个运作的多个调用。如同一示例,所述多个被请求的运作可为,例如,来自于一程序存储器(例如,所述程序存储器102,图1B)的s存储器的负载。
在S320处,分析所述多个接收到的系统调用来检查是否在所述多个系统调用中的两个或多个之间辨识到至少一模式。所述辨识可为依序接收到的多个调用或是未依序接收到的多个调用。如同一示例,一模式可指示出两个函数是一个接着一个进行。假如辨识到这样的模式,则继续执行S330;否则,返回执行S310。
在S330处,分析所述辨识到的模式来确定是否需要所述计算网格的改变或重新配置。例如,所述分析可包括:例如,确定在所述网格中是否有一计算群组,所述计算群组已经被分配以进行在所述模式中所指示的一函数。如同另一示例,所述分析可包括:确定所述模式是否指示出多个函数的再现。如同另一示例,所述分析可确定所述模式是否指示出一函数调用另一函数。
在S340处,基于所述分析,检查是否需要所述计算网格的操作。假如是,则继续执行S350;否则,继续执行S360。
在S350处,改变或以其他方式重新配置所述计算网格,以便优化通过所述多个接收到的调用所调用的所述多个函数。上面讨论了对于可作为进行所述计算网格的部分的所述改变或重新配置的多个过程的各种示例。
在S360处,检查是否已经接收到多个额外的请求,假如是,则继续执行S310;否则,执行终止。
本文所公开的所述多个实施例可被实施为硬件、固件、软件或其任何的组合。所述应用程序可被上载至包含任何合适架构的一机器,并通过所述机器来被执行。优选地,所述机器在一计算机平台上被实行,所述计算机平台具有一硬件,例如,一个或多个中央处理单元(“CPU”)、一存储器及多个输入/输出接口。
所述计算机平台也可包括一运算系统及微指令码。本文所描述的各种过程及函数可为所述微指令码的一部分,或所述应用程序的一部分,或其任何组合,其可通过一CPU来被执行,无论是否明确地显示出这种计算机或处理器。
另外,各种其他的外围单元可连接至所述计算机平台,例如一附加的网络结构存储单元及一印刷单元。再者,一非暂态的计算机可读介质为除了一暂态传播信号之外的任何计算机可读介质。
本文所叙述的所有示例及条件语言皆旨在用于教育目的,以帮助读者理解本公开的多个原理及通过本发明人为促进本领域所提供的多个概念,并且应解释为不限于这种具体叙述的示例及条件。
应当理解的是,本文所使用的例如“第一”、“第二”等名称对一元件的任何引用通常不限制于那些元件的数量或顺序。而是,这些名称在本文中通常使用作为区分两个或多个元件或一元件的多个实例的一方便的方法。因此,对于第一元件及第二元件的一引用并非意味着在此仅可采用两个元件,或是所述第一元件必须以一些方式来在所述第二元件之前。并且,除非另外陈述,否则一组元件包含一个或多个元件。
如本文所使用,词组“至少一”随后的项目列表指的是可单独使用所述多个列举出的项目中的任何一个,或者可使用两个或多个所述列举出的项目的任何组合。例如,假如一系统被描述为包括“A、B及C中的至少一个”,则所述系统可包括单独的A;单独的B;单独的C;A与B的组合;B与C的组合;A与C的组合;或A、B与C的组合。
Claims (22)
1.一种用于一可配置的处理架构的运行时间优化的方法,其特征在于:所述方法包含︰
接收用于运行至少一函数的多个调用;
辨识在所述多个调用之间的至少一模式;及
基于所述至少一模式,操作所述可配置的处理架构的至少一部分来计算所述至少一函数。
2.如权利要求1所述的方法,其特征在于:每个所述调用被引导至一计算装置,所述计算装置用于计算在所述计算装置上的所述至少一函数的每一个。
3.如权利要求2所述的方法,其特征在于:所述计算装置为以下任一种:一多核心中央处理单元(CPU)、一现场可编程门阵列(FPGA)、一图形处理单元(GPU)、一粗粒度可重构的架构(CGRA)、一智能处理单元(IPU)、一神经网络加速器、一专用集成电路(ASIC)及一量子计算机。
4.如权利要求2所述的方法,其特征在于:所述方法进一步包含:
通过一计算网格而不是所述计算装置来计算所述至少一函数。
5.如权利要求4所述的方法,其特征在于:所述计算网格包括:
一数据输入网状网络;
多个逻辑元件;及
多个多路复用器,其中所述多个逻辑元件及所述多个多路复用器形成至少一计算群组,其中所述多个逻辑元件的至少一个及所述多个多路复用器的至少一个形成所述至少一计算群组的每一个。
6.如权利要求5所述的方法,其特征在于:所述至少一函数的每一个被映射以通过所述至少一计算群组的至少一个来进行计算。
7.如权利要求5所述的方法,其特征在于:所述计算网格的所述操作进一步包含:
当所述模式指示出一函数的再次出现时,复制映射至所述函数的所述至少一个计算群组的其中一个。
8.如权利要求5所述的方法,其特征在于:所述至少一计算群组包括一第一计算群组及一第二计算群组,其中所述至少一函数包括一第一函数及一第二函数,其中所述计算网格的所述操作进一步包含:
基于所述模式来将分别映射至所述第一函数及所述第二函数的所述第一计算群组及第二计算群组重定位。
9.如权利要求5所述的方法,其特征在于:所述计算网格的所述操作进一步包含:
当没有对于一函数的调用被映射至一计算群组时,释放出所述计算群组。
10.如权利要求5所述的方法,其特征在于:所述数据输入的网状网络包括至少一馈线。
11.如权利要求1所述的方法,其特征在于:在运行时间进行所述操作。
12.一种可配置的处理架构,其特征在于:所述可配置的处理架构包含:
一计算元件,其中所述计算元件包括以下的至少一个:一计算网格及一处理单元;
一存储器,连接至所述处理单元,其中所述存储器含有多个指令,在通过所述计算元件执行所述多个指令时,所述多个指令将所述可配置的处理架构配置用以:
接收用于运行至少一函数的多个调用;
辨识在所述多个调用之间的至少一模式;及
基于所述至少一模式,操作所述可配置的处理架构的至少一部分来计算所述至少一函数。
13.如权利要求12所述的可配置的处理架构,其特征在于:每个所述调用被引导至一计算装置,所述计算装置用于计算在所述计算装置上的所述至少一函数的每一个。
14.如权利要求12所述的可配置的处理架构,其特征在于:所述计算元件为以下任一种:一多核心中央处理单元(CPU)、一现场可编程门阵列(FPGA)、一图形处理单元(GPU)、一粗粒度可重构的架构(CGRA)、一智能处理单元(IPU)、一神经网络加速器、一专用集成电路(ASIC)及一量子计算机。
15.如权利要求12所述的可配置的处理架构,其特征在于:所述计算元件进一步包含:
一数据输入网状网络;
多个逻辑元件;及
多个多路复用器,其中所述多个逻辑元件及所述多个多路复用器形成至少一计算群组,其中所述多个逻辑元件的至少一个及所述多个多路复用器的至少一个形成所述至少一计算群组的每一个。
16.如权利要求15所述的可配置的处理架构,其特征在于:所述至少一函数的每一个被映射以通过所述至少一计算群组的至少一个来进行计算。
17.如权利要求15所述的可配置的处理架构,其特征在于:所述计算元件的所述操作进一步包含:
当所述模式指示出一函数的再次出现时,复制映射至所述函数的所述至少一个计算群组的其中一个。
18.如权利要求15所述的可配置的处理架构,其特征在于:所述至少一计算群组包括一第一计算群组及一第二计算群组,其中所述至少一函数包括一第一函数及一第二函数,其中所述计算元件的所述操作进一步包含:
基于所述模式来将分别映射至所述第一函数及所述第二函数的所述第一计算群组及第二计算群组重定位。
19.如权利要求15所述的可配置的处理架构,其特征在于:所述计算元件的所述操作进一步包含:
当没有对于一函数的调用被映射至一计算群组时,释放出所述计算群组。
20.如权利要求15所述的可配置的处理架构,其特征在于:所述数据输入的网状网络包括至少一馈线。
21.如权利要求12所述的可配置的处理,其特征在于:在运行时间进行所述操作。
22.一种非暂态的计算机可读介质,所述非暂态的计算机可读介质具有储存在其上的多个指令,所述多个指令用于使一处理单元执行一过程,所述过程用于进行一可配置的处理架构的运行时间优化,其特征在于:所述过程包含:
接收用于运行至少一函数的多个调用;
辨识在所述多个调用之间的至少一模式;及
基于所述至少一模式,操作所述可配置的处理架构的至少一部分来计算所述至少一函数。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762540849P | 2017-08-03 | 2017-08-03 | |
US62/540,849 | 2017-08-03 | ||
US201762558090P | 2017-09-13 | 2017-09-13 | |
US62/558,090 | 2017-09-13 | ||
PCT/US2018/045008 WO2019028253A1 (en) | 2017-08-03 | 2018-08-02 | EXECUTION OPTIMIZATION OF CONFIGURABLE EQUIPMENT |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111164583A true CN111164583A (zh) | 2020-05-15 |
CN111164583B CN111164583B (zh) | 2024-02-27 |
Family
ID=65229554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880063952.4A Active CN111164583B (zh) | 2017-08-03 | 2018-08-02 | 可配置的硬件的运行时间优化 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10817309B2 (zh) |
EP (1) | EP3662384A4 (zh) |
JP (1) | JP7245833B2 (zh) |
KR (1) | KR102668340B1 (zh) |
CN (1) | CN111164583B (zh) |
SG (1) | SG11202000752RA (zh) |
WO (1) | WO2019028253A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817309B2 (en) | 2017-08-03 | 2020-10-27 | Next Silicon Ltd | Runtime optimization of configurable hardware |
EP3682353A4 (en) | 2017-09-13 | 2021-12-08 | Next Silicon Ltd | DIRECTED AND INTERCONNECTED GRID DATA FLOW ARCHITECTURE |
CN110704360B (zh) * | 2019-09-29 | 2022-03-18 | 华中科技大学 | 一种基于异构fpga数据流的图计算优化方法 |
US11269526B2 (en) | 2020-04-23 | 2022-03-08 | Next Silicon Ltd | Interconnected memory grid with bypassable units |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103562870A (zh) * | 2011-05-11 | 2014-02-05 | 超威半导体公司 | 异构核心的自动加载平衡 |
CN104238995A (zh) * | 2013-06-21 | 2014-12-24 | 中国人民解放军信息工程大学 | 一种非线性反馈移位寄存器 |
US20150156059A1 (en) * | 2013-12-02 | 2015-06-04 | Ciena Corporation | Unified management of computing networks |
Family Cites Families (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5321806A (en) | 1991-08-21 | 1994-06-14 | Digital Equipment Corporation | Method and apparatus for transmitting graphics command in a computer graphics system |
US5367653A (en) | 1991-12-26 | 1994-11-22 | International Business Machines Corporation | Reconfigurable multi-way associative cache memory |
US5933642A (en) * | 1995-04-17 | 1999-08-03 | Ricoh Corporation | Compiling system and method for reconfigurable computing |
CN1323414A (zh) * | 1998-09-30 | 2001-11-21 | 因芬尼昂技术股份公司 | 用于借助于可重新配置电路实施各个算法的方法和用于实施这样方法的装置 |
US6347346B1 (en) | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
US6871341B1 (en) * | 2000-03-24 | 2005-03-22 | Intel Corporation | Adaptive scheduling of function cells in dynamic reconfigurable logic |
US20030056091A1 (en) * | 2001-09-14 | 2003-03-20 | Greenberg Craig B. | Method of scheduling in a reconfigurable hardware architecture with multiple hardware configurations |
US7269174B2 (en) | 2003-03-28 | 2007-09-11 | Modular Mining Systems, Inc. | Dynamic wireless network |
US7957266B2 (en) | 2004-05-28 | 2011-06-07 | Alcatel-Lucent Usa Inc. | Efficient and robust routing independent of traffic pattern variability |
US7536370B2 (en) | 2004-06-24 | 2009-05-19 | Sun Microsystems, Inc. | Inferential diagnosing engines for grid-based computing systems |
US20120001371A1 (en) | 2004-07-10 | 2012-01-05 | Mann+Hummel Gmbh | Method for Producing a Ceramic Filter Element |
US7877350B2 (en) | 2005-06-27 | 2011-01-25 | Ab Initio Technology Llc | Managing metadata for graph-based computations |
US7904848B2 (en) * | 2006-03-14 | 2011-03-08 | Imec | System and method for runtime placement and routing of a processing array |
US8136076B2 (en) * | 2006-08-31 | 2012-03-13 | Fuji Xerox Co., Ltd. | Method and system for mounting circuit design on reconfigurable device |
US8156307B2 (en) | 2007-08-20 | 2012-04-10 | Convey Computer | Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set |
JP2009163328A (ja) * | 2007-12-28 | 2009-07-23 | Toshiba Corp | 情報処理装置及びその制御方法 |
EP2104047A1 (en) * | 2008-03-19 | 2009-09-23 | Panasonic Corporation | Router-aided post-placement and routing retiming |
US20110213950A1 (en) * | 2008-06-11 | 2011-09-01 | John George Mathieson | System and Method for Power Optimization |
JP5294304B2 (ja) | 2008-06-18 | 2013-09-18 | 日本電気株式会社 | 再構成可能電子回路装置 |
EP2310952A4 (en) | 2008-07-01 | 2014-09-03 | S K Nandy | PROCESS AND CHIP SYSTEM (SOC) FOR CUSTOMIZING A CONVERTIBLE HARDWARE FOR ONE TIME APPLICATION |
US8554074B2 (en) | 2009-05-06 | 2013-10-08 | Ciena Corporation | Colorless, directionless, and gridless optical network, node, and method |
US8230176B2 (en) | 2009-06-26 | 2012-07-24 | International Business Machines Corporation | Reconfigurable cache |
KR101076869B1 (ko) | 2010-03-16 | 2011-10-25 | 광운대학교 산학협력단 | 코어스 그레인 재구성 어레이에서의 메모리 중심 통신 장치 |
WO2012051577A1 (en) * | 2010-10-15 | 2012-04-19 | Coherent Logix, Incorporated | Disabling communication in a multiprocessor system |
US8621151B2 (en) | 2010-11-23 | 2013-12-31 | IP Cube Partners (IPC) Co., Ltd. | Active memory processor system |
US8504778B2 (en) | 2010-11-24 | 2013-08-06 | IP Cube Partners (ICP) Co., Ltd. | Multi-core active memory processor system |
US8589628B2 (en) | 2010-11-29 | 2013-11-19 | IP Cube Partners (ICP) Co., Ltd. | Hybrid active memory processor system |
WO2012154596A1 (en) | 2011-05-06 | 2012-11-15 | Xcelemor, Inc. | Computing system with data and control planes and method of operation thereof |
US9024655B2 (en) | 2012-02-21 | 2015-05-05 | Wave Semiconductor, Inc. | Multi-threshold flash NCL circuitry |
US8767501B2 (en) | 2012-07-17 | 2014-07-01 | International Business Machines Corporation | Self-reconfigurable address decoder for associative index extended caches |
US9563401B2 (en) | 2012-12-07 | 2017-02-07 | Wave Computing, Inc. | Extensible iterative multiplier |
US9588773B2 (en) | 2013-01-07 | 2017-03-07 | Wave Computing, Inc. | Software based application specific integrated circuit |
WO2015066561A1 (en) | 2013-11-02 | 2015-05-07 | Wave Semiconductor, Inc. | Logical elements with switchable connections |
US9460012B2 (en) | 2014-02-18 | 2016-10-04 | National University Of Singapore | Fusible and reconfigurable cache architecture |
US20150268963A1 (en) | 2014-03-23 | 2015-09-24 | Technion Research & Development Foundation Ltd. | Execution of data-parallel programs on coarse-grained reconfigurable architecture hardware |
US9553818B2 (en) | 2014-06-27 | 2017-01-24 | Adtran, Inc. | Link biased data transmission |
GB201415796D0 (en) | 2014-09-07 | 2014-10-22 | Technion Res & Dev Foundation | Logical-to-physical block mapping inside the disk controller: accessing data objects without operating system intervention |
US9946832B2 (en) | 2014-11-13 | 2018-04-17 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Optimized placement design of network and infrastructure components |
US9692419B2 (en) | 2014-11-15 | 2017-06-27 | Wave Computing, Inc. | Compact logic evaluation gates using null convention |
US11144283B2 (en) | 2015-05-20 | 2021-10-12 | Ab Initio Technology Llc | Visual program specification and compilation of graph-based computation |
JP6616420B2 (ja) * | 2015-08-20 | 2019-12-04 | 株式会社日立製作所 | 情報処理装置 |
US10503524B2 (en) * | 2016-03-22 | 2019-12-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Interception of a function call, selecting a function from available functions and rerouting the function call |
US10884761B2 (en) * | 2016-03-22 | 2021-01-05 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd | Best performance delivery in heterogeneous computing unit environment |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10817309B2 (en) | 2017-08-03 | 2020-10-27 | Next Silicon Ltd | Runtime optimization of configurable hardware |
EP3682353A4 (en) | 2017-09-13 | 2021-12-08 | Next Silicon Ltd | DIRECTED AND INTERCONNECTED GRID DATA FLOW ARCHITECTURE |
-
2018
- 2018-08-02 US US16/053,382 patent/US10817309B2/en active Active
- 2018-08-02 WO PCT/US2018/045008 patent/WO2019028253A1/en unknown
- 2018-08-02 JP JP2020529105A patent/JP7245833B2/ja active Active
- 2018-08-02 KR KR1020207006247A patent/KR102668340B1/ko active IP Right Grant
- 2018-08-02 CN CN201880063952.4A patent/CN111164583B/zh active Active
- 2018-08-02 EP EP18842001.2A patent/EP3662384A4/en active Pending
- 2018-08-02 SG SG11202000752RA patent/SG11202000752RA/en unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103562870A (zh) * | 2011-05-11 | 2014-02-05 | 超威半导体公司 | 异构核心的自动加载平衡 |
CN104238995A (zh) * | 2013-06-21 | 2014-12-24 | 中国人民解放军信息工程大学 | 一种非线性反馈移位寄存器 |
US20150156059A1 (en) * | 2013-12-02 | 2015-06-04 | Ciena Corporation | Unified management of computing networks |
Also Published As
Publication number | Publication date |
---|---|
CN111164583B (zh) | 2024-02-27 |
JP7245833B2 (ja) | 2023-03-24 |
EP3662384A4 (en) | 2021-05-05 |
KR102668340B1 (ko) | 2024-05-22 |
KR20200052277A (ko) | 2020-05-14 |
WO2019028253A1 (en) | 2019-02-07 |
JP2020530175A (ja) | 2020-10-15 |
SG11202000752RA (en) | 2020-02-27 |
EP3662384A1 (en) | 2020-06-10 |
US10817309B2 (en) | 2020-10-27 |
US20190042282A1 (en) | 2019-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111164583B (zh) | 可配置的硬件的运行时间优化 | |
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN111414197B (zh) | 数据处理系统、编译器、处理器的方法和机器可读介质 | |
JP4277042B2 (ja) | 演算処理装置 | |
US20210216318A1 (en) | Vector Processor Architectures | |
EP3327566B1 (en) | Encoding and decoding variable length instructions | |
US11080227B2 (en) | Compiler flow logic for reconfigurable architectures | |
US7162617B2 (en) | Data processor with changeable architecture | |
US10817344B2 (en) | Directed and interconnected grid dataflow architecture | |
CN108399594B (zh) | 处理器的高效数据选择 | |
Fujita et al. | Parallel processing on FPGA combining computation and communication in OpenCL programming | |
US11789733B2 (en) | Instruction processing apparatus, acceleration unit, and server | |
Marconi | Online scheduling and placement of hardware tasks with multiple variants on dynamically reconfigurable field-programmable gate arrays | |
KR20130105182A (ko) | 미니 코어 기반의 재구성가능 프로세서, 이를 위한 스케줄 장치 및 방법 | |
CN115860066A (zh) | 一种基于批处理的神经网络推理流水线复用的方法 | |
US10476492B2 (en) | Structures and operations of integrated circuits having network of configurable switches | |
US10534625B1 (en) | Carry chain logic in processor based emulation system | |
Rettkowski et al. | Application-specific processing using high-level synthesis for networks-on-chip | |
US20230059970A1 (en) | Weight sparsity in data processing engines | |
Fell et al. | Streaming FFT on REDEFINE-v2: An application-architecture design space exploration | |
US20230153115A1 (en) | Sparse SIMD Cross-lane Processing Unit | |
JP2006351047A (ja) | データ処理装置および方法、コンピュータプログラム、情報記憶媒体、並列演算装置、データ処理システム | |
KR20230170977A (ko) | 희소 simd 크로스-레인 프로세싱 유닛 | |
Vanderbauwhede et al. | MORA: High-Level FPGA Programming Using a Many-Core Framework | |
KR20240017740A (ko) | 소프트 플로트 함수 회로를 포함하는 시스템-온-칩 |
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 |