REUSE OF DECODED INSTRUCTIONS
    1.
    发明申请
    REUSE OF DECODED INSTRUCTIONS 审中-公开
    重新使用说明书

    公开(公告)号:WO2016210022A1

    公开(公告)日:2016-12-29

    申请号:PCT/US2016/038845

    申请日:2016-06-23

    Abstract: Systems and methods are disclosed for reusing fetched and decoded instructions in block-based processor architectures. In one example of the disclosed technology, a system includes a plurality of block-based processor cores and an instruction scheduler. A respective core is capable of executing one or more instruction blocks of a program. The instruction scheduler can be configured to identify a given instruction block of the program that is resident on a first processor core of the processor cores and is to be executed again. The instruction scheduler can be configured to adjust a mapping of instruction blocks in flight so that the given instruction block is re-executed on the first processor core without re-fetching the given instruction block.

    Abstract translation: 公开了用于在基于块的处理器架构中重用采用和解码的指令的系统和方法。 在所公开的技术的一个示例中,系统包括多个基于块的处理器核和指令调度器。 相应的核能够执行程序的一个或多个指令块。 指令调度器可以被配置为识别驻留在处理器核心的第一处理器核心上并将被再次执行的程序的给定指令块。 指令调度器可以被配置为调整飞行中的指令块的映射,使得给定的指令块在第一处理器核心上被重新执行,而不重新获取给定的指令块。

    COMPILER OPTIMIZATION FOR COMPLEX EXPONENTIAL CALCULATIONS
    2.
    发明申请
    COMPILER OPTIMIZATION FOR COMPLEX EXPONENTIAL CALCULATIONS 审中-公开
    复合计算的编译器优化

    公开(公告)号:WO2014200501A1

    公开(公告)日:2014-12-18

    申请号:PCT/US2013/045782

    申请日:2013-06-14

    Abstract: Technologies for optimizing complex exponential calculations include a computing device with optimizing compiler. The compiler parses source code, optimizes the parsed representation of the source code, and generates output code. During optimization, the compiler identifies a loop in the source code including a call to the exponential function having an argument that is a loop-invariant complex number multiplied by the loop index variable. The compiler tiles the loop to generate a pair of nested loops. The compiler generates code to pre-compute the exponential function and store the resulting values in a pair of coefficient arrays. The size of each coefficient array may be equal to the square root of the number of loop iterations. The compiler applies rewrite rules to replace the exponential function call with a multiplicative expression of one element from each of the coefficient arrays. Other embodiments are described and claimed.

    Abstract translation: 用于优化复数指数计算的技术包括具有优化编译器的计算设备。 编译器解析源代码,优化源代码的解析表示,并生成输出代码。 在优化期间,编译器识别源代码中的循环,包括对具有循环不变复数乘以循环索引变量的参数的指数函数的调用。 编译器平铺循环以生成一对嵌套循环。 编译器生成代码以预先计算指数函数,并将结果值存储在一对系数数组中。 每个系数数组的大小可以等于循环次数的平方根。 编译器使用重写规则来替换来自每个系数数组的一个元素的乘法表达式的指数函数调用。 描述和要求保护其他实施例。

    HARDWARE AND SOFTWARE SOLUTIONS TO DIVERGENT BRANCHES IN A PARALLEL PIPELINE
    3.
    发明申请
    HARDWARE AND SOFTWARE SOLUTIONS TO DIVERGENT BRANCHES IN A PARALLEL PIPELINE 审中-公开
    硬件和软件解决方案到并行管道中的分支分支

    公开(公告)号:WO2014120690A1

    公开(公告)日:2014-08-07

    申请号:PCT/US2014/013455

    申请日:2014-01-28

    Inventor: YAZDANI, Reza

    Abstract: A system and method for efficiently processing instructions in hardware parallel execution lanes within a processor. In response to a given divergent point within an identified loop, a compiler arranges instructions within the identified loop into very large instruction words (VLIW's). At least one VLIW includes instructions intermingled from different basic blocks between the given divergence point and a corresponding convergence point. The compiler generates code wherein when executed assigns at runtime instructions within a given VLIW to multiple parallel execution lanes within a target processor. The target processor includes a single instruction multiple data (SIMD) micro-architecture. The assignment for a given lane is based on branch direction found at runtime for the given lane at the given divergent point. The target processor includes a vector register for storing indications indicating which given instruction within a fetched VLIW for an associated lane to execute.

    Abstract translation: 一种用于在处理器内的硬件并行执行通道中高效地处理指令的系统和方法。 响应于所识别的循环内的给定的发散点,编译器将识别的循环内的指令排列成非常大的指令字(VLIW's)。 至少一个VLIW包括在给定发散点和对应的收敛点之间从不同基本块混合的指令。 编译器生成代码,其中当执行时将运行时指定的VLIW内的指令分配给目标处理器内的多个并行执行通道。 目标处理器包括单指令多数据(SIMD)微架构。 给定车道的分配基于在给定发散点处给定车道在运行时发现的分支方向。 目标处理器包括一个矢量寄存器,用于存储指示所取出的VLIW内的哪个给定指令用于相关联的车道执行。

    METHODS TO OPTIMIZE A PROGRAM LOOP VIA VECTOR INSTRUCTIONS USING A SHUFFLE TABLE AND A BLEND TABLE
    4.
    发明申请
    METHODS TO OPTIMIZE A PROGRAM LOOP VIA VECTOR INSTRUCTIONS USING A SHUFFLE TABLE AND A BLEND TABLE 审中-公开
    通过使用表和混合表通过矢量指令优化程序循环的方法

    公开(公告)号:WO2013089750A1

    公开(公告)日:2013-06-20

    申请号:PCT/US2011/065216

    申请日:2011-12-15

    Abstract: According to one embodiment, a code optimizer is configured to receive first code having a program loop implemented with scalar instructions to store values of a first array to a second array based on values of a third array and to generate second code representing the program loop using at least one vector instruction. The second code include a shuffle instruction to shuffle elements of the first array based on the third array using a shuffle table in a vector manner, a blend instruction to blend the shuffled elements of the first array using a blend table in a vector manner, and a store instruction to store the blended elements of the first array in the second array.

    Abstract translation: 根据一个实施例,代码优化器被配置为接收具有由标量指令实现的程序循环的第一代码,以基于第三阵列的值将第一阵列的值存储到第二阵列,并且生成表示程序循环的第二代码,使用 至少一个矢量指令。 第二代码包括用于以矢量方式使用混洗表基于第三数组洗牌第一数组的元素的混洗指令,使用向量方式使用混合表来混合第一数组的混洗元素的混合指令,以及 存储指令,用于将第一阵列的混合元素存储在第二阵列中。

    A METHOD FOR EXPLOITING MASSIVE PARALLELISM
    5.
    发明申请
    A METHOD FOR EXPLOITING MASSIVE PARALLELISM 审中-公开
    一种解决大规模并行的方法

    公开(公告)号:WO2013050057A1

    公开(公告)日:2013-04-11

    申请号:PCT/EP2011/067232

    申请日:2011-10-03

    CPC classification number: G06F8/456 G06F8/452

    Abstract: A method of statically testing dependence in a dataflow program is provided, the method comprising receiving a dataflow program which provides parameters, including consumption rates, production rates on connections between actors in the program and a number of initial samples (delays) on the connections, generating from the parameters a model of a precedence graph for the dataflow program representing dependence constraints between distinct firings of the number of actors. For the model, determining a feedback distance between multiple firings of a same actor, determining sets of parallel regions comprising a given number of actor firings of a same actor, composing mutually independent component regions comprising at least a part of the sets of parallel regions, and composing one or more composite regions comprising one or more component regions and/or one or more sets of parallel regions, being composed so that a pre-determined criteria is satisfied.

    Abstract translation: 提供了一种在数据流程序中静态测试依赖性的方法,该方法包括:接收数据流程序,该程序提供参数,包括消耗速率,程序中各参与者之间的连接的生产率和连接上的多个初始采样(延迟) 从参数生成用于表示参与者数量的不同发射之间的依赖约束的数据流程序的优先图的模型。 对于该模型,确定相同演员的多次发射之间的反馈距离,确定包括相同演员的给定数量的演员发射的并行区域的组合,构成包括平行区域集合的至少一部分的相互独立的组件区域, 并且构成包括一个或多个组分区域和/或一组或多组平行区域的一个或多个复合区域,以使得满足预定标准。

    GENERATING OBJECT CODE FROM INTERMEDIATE CODE THAT INCLUDES HIERARCHICAL SUB-ROUTINE INFORMATION
    6.
    发明申请
    GENERATING OBJECT CODE FROM INTERMEDIATE CODE THAT INCLUDES HIERARCHICAL SUB-ROUTINE INFORMATION 审中-公开
    从中间代码生成包含分层次序信息的对象代码

    公开(公告)号:WO2016204865A1

    公开(公告)日:2016-12-22

    申请号:PCT/US2016/029375

    申请日:2016-04-26

    Inventor: HOWES, Lee

    CPC classification number: G06F8/41 G06F8/443 G06F8/447 G06F8/452 G06F8/456

    Abstract: Examples are described for a device to receive intermediate code that was generated from compiling source code of an application. The intermediate code includes information generated from the compiling that identifies a hierarchical structure of lower level sub-routines in higher level sub-routines, and the lower level sub-routines are defined in the source code of the application to execute more frequently than the higher level sub-routines that identify the lower level sub-routines. The device is configured to compile the intermediate code to generate object code based on the information that identifies lower level sub-routines in higher level sub-routines, and store the object code.

    Abstract translation: 描述了用于接收从编译应用程序的源代码生成的中间代码的设备的示例。 中间代码包括从编译中生成的信息,其识别较高级子例程中较低级子例程的层次结构,并且较低级子例程在应用的源代码中被定义为比较高级的子例程更频繁地执行 标识较低级子例程的级别子例程。 该设备被配置为基于识别较高级子例程中的较低级子例程的信息来编译中间代码以生成目标代码,并存储目标代码。

    METHOD FOR EXPLOITING PARALLELISM IN NESTED PARALLEL PATTERNS IN TASK-BASED SYSTEMS
    7.
    发明申请
    METHOD FOR EXPLOITING PARALLELISM IN NESTED PARALLEL PATTERNS IN TASK-BASED SYSTEMS 审中-公开
    在基于任务系统的并行并行模式中开发并发数据的方法

    公开(公告)号:WO2015143370A1

    公开(公告)日:2015-09-24

    申请号:PCT/US2015/021831

    申请日:2015-03-20

    Abstract: Aspects include computing devices, systems, and methods for task-based handling of nested repetitive processes in parallel. At least one processor of the computing device may be configured to partition iterations of an outer repetitive process and assign the partitions to initialized tasks to be executed in parallel by a plurality of processor cores. A shadow task may be initialized for each task to execute iterations of an inner repetitive process. Upon completing a task, divisible partitions of the outer repetitive process of ongoing tasks may be subpartitioned and assigned to the ongoing task, and the completed task and shadow task or a newly initialized task and shadow task. Upon completing all but one task and one iteration of the outer repetitive process, shadow tasks may be initialized to execute partitions of iterations of the inner repetitive process.

    Abstract translation: 方面包括并行执行嵌套重复过程的基于任务的处理的计算设备,系统和方法。 计算设备的至少一个处理器可以被配置为分配外部重复过程的迭代,并且将分区分配给由多个处理器核并行执行的初始化任务。 可以为每个任务初始化影子任务以执行内部重复过程的迭代。 完成任务后,正在执行的任务的外部重复进程的可分割分区可以被分区并分配给正在进行的任务,并且完成任务和影子任务或新初始化的任务和影子任务。 完成外部重复过程的所有除了一个任务和一个迭代之外,可以对影子任务进行初始化,以执行内部重复过程的迭代分区。

    METHODS AND SYSTEMS TO VECTORIZE SCALAR COMPUTER PROGRAM LOOPS HAVING LOOP-CARRIED DEPENDENCES
    8.
    发明申请
    METHODS AND SYSTEMS TO VECTORIZE SCALAR COMPUTER PROGRAM LOOPS HAVING LOOP-CARRIED DEPENDENCES 审中-公开
    用于展示具有循环载体的标量计算机程序脚本的方法和系统

    公开(公告)号:WO2014142972A1

    公开(公告)日:2014-09-18

    申请号:PCT/US2013/032111

    申请日:2013-03-15

    Abstract: Methods and systems to convert scalar computer program loops having loop carried dependences to vector computer program loops are disclosed. One example method and system generates a first predicate set associated with a first conditionally executed statement. The first predicate set contains a first set of predicates that cause a variable to be defined in a scalar computer program loop at or before the variable is defined by the first conditionally executed statement. The method and system also generates a second predicate set associated with the first conditionally executed statement. The second predicate set contains a second set of predicates that cause the variable to be used in the scalar computer program loop at or before the variable is defined by the first conditionally executed statement. The method and system determines whether the second predicate set is a subset of the first predicate set and, based on the determination, propagates a vector value in an element of a vector of the variable to a subsequent element of the vector.

    Abstract translation: 公开了将具有循环携带依赖性的标量计算机程序循环转换为向量计算机程序循环的方法和系统。 一个示例性方法和系统生成与第一条件执行语句相关联的第一谓词集合。 第一个谓词集包含第一组谓词,导致在第一个有条件执行的语句定义变量之前或之前,在标量计算机程序循环中定义变量。 方法和系统还生成与第一条件执行语句相关联的第二谓词集合。 第二个谓词集包含第二组谓词,导致在第一个有条件执行的语句定义变量之前或之前在标量计算机程序循环中使用该变量。 方法和系统确定第二谓词集是否是第一谓词集的子集,并且基于该确定,将该变量的向量的元素中的向量值传播到向量的后续元素。

    データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法
    9.
    发明申请
    データ処理装置、データ処理システム、データ構造、記録媒体、記憶装置およびデータ処理方法 审中-公开
    数据处理设备,数据处理系统,数据结构,记录介质,存储设备和数据处理方法

    公开(公告)号:WO2013118754A1

    公开(公告)日:2013-08-15

    申请号:PCT/JP2013/052691

    申请日:2013-02-06

    Inventor: 武者野 満

    CPC classification number: G06F8/45 G06F8/452 G06F8/456 G06F9/4494

    Abstract:  本発明は、ループ処理においてボトルネックを解消し、高速に並列処理することを目的とし、複数の処理部は、拡張識別情報の少なくとも一部に基づいて算出される宛先情報が当該処理部を示すパケットのみを取得する入出力部と、入出力部によって取得されたパケットの処理命令のうち最初に実行されるべき処理命令を実行し、当該実行によって生成されるデータに、実行された処理命令の次に実行されるべき処理命令を最初に実行されるべき処理命令とする拡張識別情報が付加されたパケットを生成して入出力部に入力する演算部と、最初に実行されるべき処理命令が複数のパケットからなるパケット群を生成する処理命令である場合に、パケット群を生成するためのテンプレート情報が登録されるテンプレート記憶部と、テンプレート記憶部に登録されているテンプレート情報に基づいてパケット群を生成して入出力部に入力するパケット生成部と、をそれぞれ有する。

    Abstract translation: 本发明的目的是解决循环处理中的瓶颈,以便以高速执行并行处理,其中多个处理单元各自具有:输入/输出单元,其仅获取基于在...处计算出的目的地信息的分组 扩展识别信息的至少一部分表示处理单元; 计算单元,其执行在由输入/输出单元获取的分组的处理指令之间最初执行的处理指令,以便产生扩展识别信息的分组,该分组处理在执行的处理指令之后的下一个执行处理指令 作为最初执行的处理指令,已被添加到由前述执行生成的数据,以将其输入到输入/输出单元中; 模板存储单元,如果要最初执行的处理指令是生成包括多个分组的分组组的处理指令,则登记用于生成分组组的模板信息; 以及分组生成单元,其基于登录在模板存储单元中的模板信息生成分组组,以便将其输入到输入/输出单元。

    プログラム生成装置、プログラム生産方法及びプログラム
    10.
    发明申请
    プログラム生成装置、プログラム生産方法及びプログラム 审中-公开
    程序生成设备,程序生成方法和程序

    公开(公告)号:WO2012004972A1

    公开(公告)日:2012-01-12

    申请号:PCT/JP2011/003812

    申请日:2011-07-04

    CPC classification number: G06F8/452 G06F8/456

    Abstract:  プログラム生成装置は、ブロックを繰り返しN回(N≧2)処理する、i(1≦i<N)回目の実行に係る前記ブロック内で定義された変数が、j(i<j≦N)回目の実行に係る前記ブロック内で参照される依存関係にあるループ処理を含むソースプログラムを参照し、i回目の実行に係る前記ブロック及びi回目以外の実行に係る1以上の前記ブロックにおける変数表記の等価関係を算出し、前記依存関係にある全ての対象変数の表記について、当該対象変数の表記と等価な前記依存関係のない他の変数の表記を特定し、前記ループ処理のM回分(M≦N)の処理を行うための、特定した他の変数の表記を含んだ命令文を含むプログラムを生成する。

    Abstract translation: 程序生成装置参考包括循环处理的源程序,用于重复处理块N次(N = 2),该块具有与i(1 = i

Patent Agency Ranking