CN111857834A - 分形计算智能处理器、分形计算智能处理方法 - Google Patents
分形计算智能处理器、分形计算智能处理方法 Download PDFInfo
- Publication number
- CN111857834A CN111857834A CN202010689150.3A CN202010689150A CN111857834A CN 111857834 A CN111857834 A CN 111857834A CN 202010689150 A CN202010689150 A CN 202010689150A CN 111857834 A CN111857834 A CN 111857834A
- Authority
- CN
- China
- Prior art keywords
- fractal
- fractal calculation
- calculation
- subunit
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 257
- 238000003672 processing method Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims description 38
- 230000009467 reduction Effects 0.000 claims description 28
- 238000000354 decomposition reaction Methods 0.000 claims description 20
- 238000004422 calculation algorithm Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 11
- 239000010410 layer Substances 0.000 description 10
- 239000011159 matrix material Substances 0.000 description 10
- 238000012163 sequencing technique Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 4
- 101000612134 Homo sapiens Procollagen C-endopeptidase enhancer 1 Proteins 0.000 description 3
- 102100041026 Procollagen C-endopeptidase enhancer 1 Human genes 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000012795 verification 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Advance Control (AREA)
Abstract
本公开提供了一种分形计算智能处理器、分形计算智能处理方法,分形计算智能处理器包括:至少两个分形计算子单元,用于根据分形计算指令进行分形计算,其中,各个所述分形计算子单元的结构之间具备层次同性;所述分形计算子单元的数量根据执行的所述分形计算对应的程序设定;控制器,用于根据所述分形计算子单元的数量及硬件资源生成分形计算指令,并发送所述分形计算指令至所述分形计算子单元;存储器,用于存储所述分形计算所需数据及分形计算结果;规约运算器,用于根据规约运算指令对各个所述分形计算子单元的分形计算结果进行规约运算。本技术方案可实现串行编程、并行执行,从而解决通用领域并行编程难题。
Description
技术领域
本公开涉及智能处理器架构技术领域,尤其涉及一种分形计算智能处理器、分形计算智能处理方法。
背景技术
计算模型提供了一个计算系统的抽象,实现了在模型上的编程和在计算系统上的实际执行之间的分离。因此程序是串行的或并行的,与实际在计算系统上的执行方式是串行的或并行的之间没有必然联系。仿照Flynn分类法的形式,可以将计算模型分为四类:
串行编程、串行执行(Serial Code,Serial Execution,SCSE):SCSE包含了最基本的串行计算模型,例如通用图灵机模型(UTM)、冯·诺伊曼模型(VNM)和随机访问模型(RAM)。SCSE编程简单,但无法利用现代多核、并行计算系统提供的高性能。
并行编程、并行执行(Parallel Code,Parallel Execution,PCPE):PCPE包含了最基本的并行计算模型,例如并行随机访问模型(PRAM)、LogP模型、BSP模型、Multi-BSP模型、消息通信接口(MPI)、OpenMP等。PCPE利用硬件的并行执行能力,具有高性能的特征,但同时造成了编程困难。
并行编程、串行执行(Parallel Code,Serial Execution,PCSE):PCSE常见于模拟执行,包括大多数硬件描述语言(HDL)及其仿真,例如VerilogHDL,以及各类并行体系结构的模拟器。采用PCSE可以在串行计算系统上虚拟任意规模的并行计算系统,低成本地实现对大规模并行算法、并行计算系统和数字电路的分析和验证。
串行编程、并行执行(Serial Code,Parallel Execution,SCPE):SCPE是现代计算模型的发展趋势,例如在大数据领域得到广泛采用的MapReduce。SCPE力图同时具有串行程序的易编程以及并行执行的高性能两项优势。
研究表明,并行编程的难度高于串行编程,这是因为并行编程需要额外考虑通信和同步问题。若简单地按照程序是否具有多条控制流来决定编程应归类于串行或并行,按照这样的规则,SIMD程序被归类为串行程序,而大多数SPMD程序被归类为并行程序(例如MPI)。
并行编程的复杂性,本质上来源于并行计算模型具有的编程-规模相关性(programming scale-variance)。当计算系统的规模发生变化时,并行编程的并发度也发生变化,导致程序不能执行或需要重新调整才可保持最优地执行。Multi-BSP模型是具有编程-规模相关性的一个典型样例:每当计算系统规模扩展,模型对应地产生一个新的层次;新层次的引入不仅引入了一组新模型参数,还引入了一组需要额外编程控制的新执行资源,导致在原模型上的程序不再适用于扩展后的模型。编程-规模相关性会导致编程对计算系统的规模(并发度)敏感,在规模越大的并行计算系统上编程越困难。在现有并行计算系统当中(包括PRAM、LogP、BSP、Multi-BSP、SPMD、SIMD和MapReduce),编程-规模相关性普遍存在。
发明内容
针对上述的缺陷,本公开的目的在于提供一种分形计算智能处理器、分形计算智能处理方法,用于至少部分解决现有技术中编程-规模相关性普遍存在的问题。
本公开一方面提供一种分形计算智能处理器,所述分形计算智能处理器包括:至少两个分形计算子单元,用于根据分形计算指令进行分形计算,其中,各个所述分形计算子单元的结构之间具备层次同性;所述分形计算子单元的数量根据执行的所述分形计算对应的程序设定;控制器,用于根据所述分形计算子单元的数量及硬件资源生成分形计算指令,并发送所述分形计算指令至所述分形计算子单元;存储器,用于存储所述分形计算所需数据及分形计算结果。
在一些实施例中,所述分形计算智能处理器还包括:规约运算器,用于根据规约运算指令对各个所述分形计算子单元的分形计算结果进行规约运算;所述控制器还用于发送所述规约运算指令至所述规约运算器。
在一些实施例中,所述分形计算子单元在应用负载、硬件资源及执行方式上具备层次同性。
在一些实施例中,所述存储器为临时储存器。
在一些实施例中,所述临时存储器的最大容量不设限制。
在一些实施例中,所述分形计算对应的程序包括k-分解程序、规约程序及叶子程序,所述k-分解程序、所述规约程序、所述叶子程序之间串行。
在一些实施例中,所述控制器内部设有第一临时存储器,所述第一临时存储器用于存储所述分形计算指令;所述控制器还用于根据所述k-分解程序对所述分形计算指令执行k-分解,并将分解后的所述分形计算指令发送至所述分形计算子单元。
在一些实施例中,所述规约运算器及所述控制器由串行计算系统实现。
在一些实施例中,所述存储器通过输入/输出从本地存储器中获取所述分形计算所需的数据;在所述分形计算或所述规约运算完成后,将所述分形计算结果或所述规约运算结果写回所述本地存储器。
在一些实施例中,所述分形计算子单元通过数据总线与所述存储器连接。
本公开另一方面提供一种分形计算智能处理方法,包括:控制器根据执行所述分形计算的分形计算子单元的数量及硬件资源选择执行所述分形计算的尺度;控制器根据所述尺度生成分形计算指令;并将所述分形计算指令发送至所述分形计算子单元;所述分形计算子单元根据所述分形计算指令并行执行所述分形计算。
在一些实施例中,所述方法还包括:对所述分形计算得到的结果进行规约运算。
在一些实施例中,所述方法还包括:在所述分形计算或所述规约运算完成后,将所述分形计算结果或所述规约运算结果写回所述本地存储器。
在一些实施例中,所述方法还包括:临时存储器通过输入/输出从本地存储器中获取所述分形计算所需的数据,并将所述数据通过数据总线分发至各个分形计算子单元。
本公开提供一种分形计算智能处理器、分形计算智能处理方法,该分形计算智能处理器基于层次同性原理进行设计,即分形计算智能处理器中每个分形计算子单元在应用负载、硬件资源及执行方式上具备层次同性,使得分形计算智能处理器具有编程-规模无关性,智能处理器规模扩展时不需要对程序进行任何修改,可以通过分形计算子单元的数量及硬件资源对分形执行的尺度进行无限缩放,实现串行编程、并行执行,从而解决通用领域并行编程难题。
附图说明
图1示意性示出了本公开实施例的分形计算智能处理器的结构框图;
图2示意性示出了本公开实施例的动态规划矩阵上的数据依赖顺序图;
图3示意性示出了本公开实施例的分形计算智能处理方法流程示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。
需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。此外,以下实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本公开。
为解决现有并行计算模型当中编程-规模相关性普遍存在的问题,本公开对分形冯·诺依曼体系结构进行分析。分形冯·诺依曼体系结构在每一层次上均与冯·诺依曼结构相似,同样具有控制器、存储器和输入/输出单元,区别在于分形冯·诺依曼体系结构的层次结构中可以具有多个并行执行的运算器——包含分形运算单元(FFU)和本地运算单元(LFU)。其中分形运算单元又可以由一个同样具有分形冯·诺依曼体系结构的计算机构成,因此每一层次的组织结构、硬件资源抽象均相同。不同层次上的硬件资源具有同样的控制方式,使得系统不再因规模扩展、增添新类型的硬件资源,而需要额外编程控制。分形冯·诺依曼体系结构中系统的每一层指令集结构是相同的,分形指令的分解规则是相同的,执行与硬件资源间的映射关系是相同的,因此可以执行相同的程序,达成编程-规模无关性。通过上述研究分析可知:分形冯·诺依曼体系结构达成编程-规模无关性的重要原理是采用了层次同性的体系结构设计准则。基于此,本公开将层次同性准则应用于计算模型的设计中,设计一种具有编程-规模无关性的并行计算系统-分形计算系统,以分形计算模型为桥梁,将需要执行的计算与分形计算系统联系起来,拟在通用领域、现有硬件上实现编程-规模无关,解决编程难题。为体现出层次异性的特征,分形计算模型仅从单一层次结构进行刻画,而不再刻画整体。下面进行详细介绍。
如图1所示,本公开提供了一种分形计算智能处理器100,包括分形计算子单元10、控制器20、临时存储器30及规约运算器40。分形计算10可以为分形计算单元,也可以为其他计算单元,例如叶子模型(VNM)。每一个分形计算子单元10均通过数据总线与临时存储器30连接,在数据总线上传播单个数据所需的时间开销为g。临时存储器30可以通过输入/输出从外部存储器访问分形运算所需的全部数据。
分形计算子单元10用于根据分形计算指令进行分形计算。其中,各个分形计算子单元的结构之间具备层次同性,具体的在应用负载、硬件资源及执行方式上具备层次同性,也即各个分形计算子单元需要满足层次同性的体系结构设计准则。分形计算子单元10的数量k可以是弹性的,具体可以根据执行分形运算对应的程序主动指定任何一个不小于2的整数作为k。在其他计算系统中与之对应的参数-处理器的数量p,均是取决于模型的固定参数,程序必须被动适应p的取值。
控制器20用于发送分形计算指令至分形计算子单元10,以使得分形计算子单元10执行分形运算。控制器20内部可以包括一个临时存储器(第一临时存储器),用于存储分形指令。控制器与该第一临时存储器组成RAM模型,控制器20可以在第一临时存储器上对分形计算指令执行k-分解程序,并将分解后的分形计算指令发送至分形计算子单元。由于控制器20所需的存储空间(KB级别)通常远小于数据所需空间,因此,在分形计算智能处理器中忽略了控制器内部的存储空间,仅考虑控制器20的执行时间。在本公开一些实施例中,控制器20可由一个串行计算系统实现。
临时存储器30用于存储分形运算所需数据及分形运算结果。由于分形计算采用的是临时存储器,在一个分形计算完成后,临时存储器中的数据不再保留,因此,每一个分形运算都必须包含装载分形运算所需全部数据和将分形运算结果完全写回外部本地存储器的步骤。另外,在分形计算模型中,临时存储器30的最大容量不设限制。
规约运算器40,用于根据规约运算指令对分形计算子单元10的分形运算结果进行规约运算,得到分形计算模型最终的计算结果。规约运算器40的规约运算指令也可以由控制器20发送。规约运算器40与临时存储器30构成一个RAM模型,规约运算器40可直接从临时存储器30中读取分形运算结果进行分形运算,其具有每单位时间处理r个基本操作的运算速率,其中,r为大于预设值的整数。在本公开一些实施例中,控制器20可由一个串行计算系统实现。
上述分形计算智能处理器不考虑本层次以外的参数,对于分形计算子单元的刻画完全由一个执行开销函数t(·)来完成,不再关心分形计算子单元具体是哪一种计算单元或者具有什么样的参数。
分形计算智能处理器可以忽略同步开销。分形计算智能处理器在一次分形计算结束前会在各功能部件间进行同步操作。研究表明,同步开销在BSP和Multi-BSP模型对应的系统中未对性能分析产生重要影响,因此,也不会对分形计算模型对应的分形计算智能处理器产生重要影响。为使分形计算智能处理器的性能分析更简洁,在建立分形计算智能处理器时可以忽略同步开销。
分形计算智能处理器可以衡量程序的执行时间。一个程序的执行时间是其中包含的各个分形运算的执行时间之和,每一个分形运算的执行时间可以自底向上地推算:首先计算在叶子模型对应的分形计算子单元上的执行开销t(·);每一层分形计算子单元的执行开销T(·)可以由各项之和来估算,即控制器进行k-分解所需的时间、数据总线完成通信所需的时间、分形计算子单元执行所需的时间和归约运算器进行归约计算所需的时间。从规模最小的层次开始逐层推算,直到推算出该分形运算总的执行时间。
分形计算子单元上的任务负载程序由串行执行的分形运算组成。一个分形运算的完整描述又包括以下几个部分:
1.一个在RAM模型上编写的k-分解程序;
2.一个在RAM模型上编写的归约程序;
3.一个在叶子模型上编写的叶子程序。
三部分程序分别描述控制器、归约运算器和叶子模型的执行行为。
本公开实施例列举了几个具体的分形计算智能处理器执行分形计算,展示分形计算智能处理器的编程方式。具体的,本公开实施例列举了以下四类算法在分形计算智能处理器上的编程和执行:简单并行(embarrassingly parallel)算法、分治算法、动态规划算法、本质串行(inherently serial)算法。其中本质串行算法在各类并行计算系统上都难以高效执行,例如模拟通用图灵机的执行;但前三类算法都可以在分形计算智能处理器上高效执行。此外,下面具体描述中的模型(如叶子模型)具体的计算过程均是由模拟该模型对应的分形计算子单元执行。
简单并行算法是指算法具有天然易并行的特征,计算可以分解为完全独立的各部分,互相之间没有数据依赖、不需要通信、不需要结果归约或仅需非常简单的归约。蒙特卡洛模拟、图像渲染、向量运算等任务通常属于简单并行算法。本公开实施例以朴素的矩阵乘法运算为例,朴素矩阵乘法的串行算法通常描述为三层循环,每一层循环都可以将循环范围进行任意的分解,计算结果仅需简单求和归约或不需要归约。该算法很容易描述为分形运算,描述包括以下三部分程序:
1.k-分解程序
2.规约程序
3.叶子程序
任务负载程序描述为串行执行的分形运算。以上三部程序已经将矩阵乘法定义为一种分形运算,因此任务负载程序仅包含一个分形运算:
在分形计算智能处理器上执行上述程序时,矩阵首先被按照n方向分解;当n=1时,操作退化为“向量乘矩阵”运算,接下来按照m方向分解;最后n、m大小均达到1,该操作退化为向量内积,仍然可以继续按k方向分解。k-分解程序也可根据其他规则来主动选择在哪个维度进行分解。另外,更为高效的分块矩阵乘法算法(例如Strassen算法),也可以使用类似的方式实现。
分治算法是一类较易并行的算法,通常分治算法的求解过程包括求解数个相同类型的子问题,每一个子问题之间相对独立,不存在数据依赖,但计算结果需要做较复杂的归约。本公开实施例选取归并排序作为分治算法的例子。归并排序首先将数组分段(对应着k-分解),在每一段上递归地执行归并排序(对应着分形计算),然后将结果归并(对应着归约运算)。此执行模式符合分形运算的定义,因此本公开实施例可以将归并排序描述为分形运算MergeSort,描述包括以下三部分程序:
1.k-分解程序
2.归约程序
3.叶子程序
此处归并排序本身已经是一种分形运算,因此任务负载程序仅包含一个分形运算:
动态规划算法的并行实现通常不及前两类算法简单,因为算法的每一轮迭代之间具有数据依赖,需要保持一定的顺序执行。但动态规划算法中数据依赖通常呈偏序关系,如果仔细处理数据依赖的顺序,仍然可以在某些迭代之间实现并行化。本公开实施例以字符串编辑距离算法为例,这是一种经典的动态规划算法,贝尔曼方程为
其动态规划矩阵上的数据依赖顺序如图2所示。研究发现,动态规划矩阵上每一条对角线上的数据之间不存在数据依赖关系,是可以并行执行的。本公开实施例将每一条对角线上的规划描述为一个分形运算DP-Step:
1.k-分解程序
每一个DP-Step负责从动态规划矩阵的上两条对角线U、V推导下一条对角线W。因为对角线上每一个元素均是完美并行的,因此可以按照范围进行分解。本公开实施例选择最简单的2-分解来实现。
2.归约程序
因为DP-Step是完美并行的,所以不需要归约,归约程序为空。
3.叶子程序
叶子程序即对W中的每一项分别计算贝尔曼方程,与串行算法的程序相似。
任务负载程序需要控制规划算法的迭代过程,因而包含基本的控制流。为了简化示例程序,我们假设输入的两个字符串长度均为1000,此时迭代过程分为两阶段:第一阶段新推导的对角线W要在左右两端附加一个常数1作为初始条件,因此尺寸比U和V大;第二阶段不再附加常数1,因此W的尺寸比U和V小。该任务负载程序可描述为:
基于上述示例可以看出,本公开设计的分形计算智能处理器具有编程-规模无关性,系统规模扩展时不需要对程序进行任何修改。虽然分形计算智能处理器需要编写多部分程序来完整地描述应用及其中涉及到的分形运算,但是其中每一个程序都是串行的,互相之间不需要在执行过程中同步和交互,而且与系统规模无关。这样的程序能够在各种规模的分形计算智能处理器上自动展开为并行执行,主要是因为分形计算智能处理器具有类似几何分形体的特征,可以通过分形执行对尺度进行无限缩放。因此,分形计算智能处理器在实际执行时可以根据系统规模、硬件资源限制等条件,自由选择分形执行至哪一尺度为止。具体到示例程序中(以归并排序为例),起始的尺度为1000,计算系统可以自由选定1~1000之间的尺度Z,在分形执行后可以保证叶子模型上执行的任务尺度不超过Z。例如当Z为500时,执行过程为:
这个执行过程可以在具有两个处理器的小规模计算系统上并行展开,定义分形计算模型在此时的系统规模p=2。如果进一步缩小Z,分形执行过程会自然加深,执行中添加了更深层次的细节,形成“缩放”效果。例如当Z为250时,执行过程为:
这样的执行过程就可以展开到规模更大(具有四个处理器)的计算系统上,定义分形计算智能处理器在此时的系统规模p=4。这种无需修改程序即可随意缩放执行过程、添加或隐藏执行细节、改变并行度的效应称为“无限缩放”。
基于上述论述可知,分形计算智能处理器并非硬件抽象,它与具有分形冯·诺伊曼体系结构的计算机之间还存在一些矛盾。主要包括两点:
1.分形计算智能处理器中的分形计算子单元的数量由程序决定,分形冯·诺伊曼体系结构中分形执行单元的数量是一个硬件参数。
2.分形计算智能处理器中临时存储器的容量不设限制,分形冯·诺伊曼体系结构中本地存储器的容量必然受硬件资源的约束。
解决第一项矛盾需要引入并行分解,解决第二项矛盾需要引入串行分解,两种分解技巧都是为了在单层分形冯·诺伊曼体系结构上多次模拟分形执行,直至将分形计算智能处理器缩放至合适的尺度。一个合适的缩放尺度既可以为分形执行单元提供充分的并发度,又可以将存储空间占用降低至一个能够满足硬件资源约束的程度。一个具体的实现方案可以参考。
另外,分形计算智能处理器也可以在具有其他体系结构的并行计算机上执行。例如在BSP机上,可以令系统中的一个处理器接收任务,模拟分形计算智能处理器中的控制器,将任务进行k-分解后分发至其他k个处理器;如果系统中仍有空闲处理器,这些收到任务的处理器可以模拟下一层次的控制器,再对任务执行k-分解后分发至其他空闲的处理器。因此系统中最多有logk p个处理器承担模拟控制器的功能,其余p-logkp个处理器则模拟叶子模型。在一轮分形计算子单元(例如叶子模型对应的计算)计算完成后,计算结果将汇总于分发任务的处理器上,此时该处理器从模拟控制器的功能切换到模拟归约运算器的功能,对结果进行归约处理。要达到高效的执行,任务分发时应该能做到仅发送数据的引用地址,而非完整的操作数。
在任务最终到达模拟叶子模型对应的分形计算子单元(处理器)上时,由模拟叶子模型的处理器从引用位置取数据。数据可以经由散列均匀分布在每一个处理器上,这样读取数据时不会产生单一处理器成为瓶颈的情况,可以满足BSP机对通信的h-关系约束。在分发任务、归约结果的过程中,一个处理器最多与另外k+1个处理器产生通信,因此也可以满足BSP机对通信的h-关系约束。k-分解、叶子模型执行和归约三步可以通过流水方式执行,进一步提高BSP机模拟执行分形计算智能处理器的效率。
本公开另一实施例还提供了一种基于上述分形计算智能处理器的分形计算方法,如图3所示,该方法例如可以包括:
S301,控制器根据执行分形计算的分形计算子单元的数量及硬件资源选择执行分形计算的尺度。
正如上述所记载,分形计算智能处理器的优势在于分形计算子单元的数量可以根据执行该分形主动指定任何一个不小于2的整数作为k,以适应对应的分形计算,并且可以根据智能处理器的分形计算子单元的数量及硬件资源选择分形计算需要执行的具体深度。
在执行分形计算前,临时存储器一般通过输入/输出从本地存储器中获取分形计算所需的数据,并将数据通过数据总线分发至各个分形计算子单元。
S302,控制器根据执行的尺度生成分形计算指令,并将分形计算指令发送至分形计算子单元。
例如上述记载:当排序计算的尺度为500时,一个分形计算子单元对0~500进行排序计算,另一个分形计算子单元对500~1000进行排序,即控制器生成的分形指令为进行0~500排序的分形计算指令及进行500~1000排序的分形计算指令,也即执行方式的层次同性。而当排序执行的尺度为250,分形计算智能处理器需要分形计算子单元的数量为4,第一个分形计算子单元对0~250进行排序计算,第二个分形计算子单元对250~500进行排序计算,第三个分形计算子单元对500~750进行排序计算,第四个分形计算子单元对750~1000进行排序计算,即控制器生成的分形指令为进行0~250排序的分形计算指令、250~500排序的分形计算指令、500~750排序的分形计算指令以及进行750~1000排序的分形计算指令。控制器将生成分形计算指令发送至对应的控制器。
S303,分形计算子单元根据分形计算指令并行执行分形计算。
由于分形计算采用的是临时存储器,因此,每一个分型计算必须加载运行运算所需的全部数据,临时存储器通过输入/输出从本地存储器中获取分形计算所需的数据,并将数据通过数据总线分发至各个分形计算子单元。在分形计算结束后,将分形计算结果写回本地存储器。
S304,对分形运算得到的结果进行规约运算。
针对于不同的运算类型选择是否执行规约运算,例如上述介绍的利用分形计算模型实现动态规划算法过程中,由于DP-Step是完美并行的,所以不需要归约,归约程序为空,即不需要执行规约运算。规约运算结束,将规约运算结果写回所述本地存储器。
方法实施例部分未尽细节之处请参见上述系统部分实施例,此处不再赘述。
综上所述,本公开基于层次同性的体系结构设计准则设计的分形计算智能处理器,使得分形计算智能处理器具有编程-规模无关性,系统规模扩展时不需要对程序进行任何修改,可以通过分形执行的尺度进行无限缩放,计算系统在实际执行时可以根据系统规模、硬件资源限制等条件,自由选择分形执行至哪一尺度为止,从而实现串行编程、并行执行,从而解决通用领域并行编程难题。
以上所述的具体实施例,对本公开的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本公开的具体实施例而已,并不用于限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (14)
1.一种分形计算智能处理器,其特征在于,所述分形计算智能处理器包括:
至少两个分形计算子单元,用于根据分形计算指令进行分形计算,其中,各个所述分形计算子单元的结构之间具备层次同性;所述分形计算子单元的数量根据执行的所述分形计算对应的程序设定;
控制器,用于根据所述分形计算子单元的数量及硬件资源生成分形计算指令,并发送所述分形计算指令至所述分形计算子单元;
存储器,用于存储所述分形计算所需数据及分形计算结果。
2.根据权利要求1所述的分形计算智能处理器,其特征在于,所述分形计算智能处理器还包括:
规约运算器,用于根据规约运算指令对各个所述分形计算子单元的分形计算结果进行规约运算;
所述控制器还用于发送所述规约运算指令至所述规约运算器。
3.根据权利要求1所述的分形计算智能处理器,其特征在于,所述分形计算子单元在应用负载、硬件资源及执行方式上具备层次同性。
4.根据权利要求1所述的分形计算智能处理器,其特征在于,所述存储器为临时储存器。
5.根据权利要求4所述的分形计算智能处理器,其特征在于,所述临时存储器的最大容量不设限制。
6.根据权利要求1所述的分形计算智能处理器,其特征在于,所述分形计算对应的程序包括k-分解程序、规约程序及叶子程序,所述k-分解程序、所述规约程序、所述叶子程序之间串行。
7.根据权利要求6所述的分形计算智能处理器,其特征在于,所述控制器内部设有第一临时存储器,所述第一临时存储器用于存储所述分形计算指令;
所述控制器还用于根据所述k-分解程序对所述分形计算指令执行k-分解,并将分解后的所述分形计算指令发送至所述分形计算子单元。
8.根据权利要求2所述的分形计算智能处理器,其特征在于,所述规约运算器及所述控制器由串行计算系统实现。
9.根据权利要求2所述的分形计算智能处理器,其特征在于,所述存储器通过输入/输出从本地存储器中获取所述分形计算所需的数据;
在所述分形计算或所述规约运算完成后,将所述分形计算结果或所述规约运算结果写回所述本地存储器。
10.根据权利要求1-9任一项所述的分形计算智能处理器,其特征在于,所述分形计算子单元通过数据总线与所述存储器连接。
11.一种基于权利要求1-10任一项所述分形计算智能处理器的分形计算智能处理方法,其特征在于,包括:
控制器根据执行所述分形计算的分形计算子单元的数量及硬件资源选择执行所述分形计算的尺度;
控制器根据所述尺度生成分形计算指令;并将所述分形计算指令发送至所述分形计算子单元;
所述分形计算子单元根据所述分形计算指令并行执行所述分形计算。
12.根据权利要求11所述的分形计算智能处理方法,其特征在于,所述方法还包括:
对所述分形计算得到的结果进行规约运算。
13.根据权利要求12所述的分形计算智能处理方法,其特征在于,所述方法还包括:
在所述分形计算或所述规约运算完成后,将所述分形计算结果或所述规约运算结果写回所述本地存储器。
14.根据权利要求11所述的分形计算智能处理方法,其特征在于,所述方法还包括:
临时存储器通过输入/输出从本地存储器中获取所述分形计算所需的数据,并将所述数据通过数据总线分发至各个分形计算子单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010689150.3A CN111857834A (zh) | 2020-07-16 | 2020-07-16 | 分形计算智能处理器、分形计算智能处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010689150.3A CN111857834A (zh) | 2020-07-16 | 2020-07-16 | 分形计算智能处理器、分形计算智能处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111857834A true CN111857834A (zh) | 2020-10-30 |
Family
ID=72983846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010689150.3A Pending CN111857834A (zh) | 2020-07-16 | 2020-07-16 | 分形计算智能处理器、分形计算智能处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111857834A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040103265A1 (en) * | 2002-10-16 | 2004-05-27 | Akya Limited | Reconfigurable integrated circuit |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN110659070A (zh) * | 2018-06-29 | 2020-01-07 | 赛灵思公司 | 高并行度计算系统及其指令调度方法 |
CN111047021A (zh) * | 2018-10-12 | 2020-04-21 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
-
2020
- 2020-07-16 CN CN202010689150.3A patent/CN111857834A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040103265A1 (en) * | 2002-10-16 | 2004-05-27 | Akya Limited | Reconfigurable integrated circuit |
CN109726806A (zh) * | 2017-10-30 | 2019-05-07 | 上海寒武纪信息科技有限公司 | 信息处理方法及终端设备 |
CN110659070A (zh) * | 2018-06-29 | 2020-01-07 | 赛灵思公司 | 高并行度计算系统及其指令调度方法 |
CN111047021A (zh) * | 2018-10-12 | 2020-04-21 | 中科寒武纪科技股份有限公司 | 一种计算装置及相关产品 |
Non-Patent Citations (1)
Title |
---|
YONGWEIZHAO 等: "Cambricon-F:machine learning computers with fractal von neumann architecture", 《2019ACM/IEEE 46TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schornbaum et al. | Massively parallel algorithms for the lattice Boltzmann method on nonuniform grids | |
WO2021000970A1 (zh) | 深度学习算法的编译方法、装置及相关产品 | |
US8984498B2 (en) | Variance analysis for translating CUDA code for execution by a general purpose processor | |
US8099584B2 (en) | Methods for scalably exploiting parallelism in a parallel processing system | |
Hannig et al. | Invasive tightly-coupled processor arrays: A domain-specific architecture/compiler co-design approach | |
US11714780B2 (en) | Compiler flow logic for reconfigurable architectures | |
US20210049231A1 (en) | Multiple Output Fusion For Operations Performed In A Multi-Dimensional Array of Processing Units | |
US20190138373A1 (en) | Multithreaded data flow processing within a reconfigurable fabric | |
CN102081544B (zh) | 应用程序生成系统和方法 | |
Giles et al. | Designing OP2 for GPU architectures | |
EP2601577A2 (en) | A method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system | |
Sen et al. | Parallel cycle based logic simulation using graphics processing units | |
Magoulès et al. | Parallel scientific computing | |
Hart et al. | Porting and scaling OpenACC applications on massively-parallel, GPU-accelerated supercomputers | |
Xue et al. | An improved framework of GPU computing for CFD applications on structured grids using OpenACC | |
Nowicki et al. | PCJ-Java library for high performance computing in PGAS model | |
Martínez del Amor et al. | Parallel simulation of probabilistic P systems on multicore platforms | |
US8041551B1 (en) | Algorithm and architecture for multi-argument associative operations that minimizes the number of components using a latency of the components | |
Kang | Scalable implementation of the parallel multigrid method on massively parallel computers | |
US20230325312A1 (en) | Merging Buffer Access Operations in a Coarse-grained Reconfigurable Computing System | |
CN111857833A (zh) | 并行计算智能处理器及并行计算智能处理方法 | |
CN111857834A (zh) | 分形计算智能处理器、分形计算智能处理方法 | |
Garcia et al. | Solution of univalued and multivalued pseudo-linear problems using parallel asynchronous multisplitting methods combined with Krylov methods | |
Ramakrishnan et al. | Efficient techniques for nested and disjoint barrier synchronization | |
Osman | Gpu computing taxonomy |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20201030 |