Generating SIMD code from code statements that include non-isomorphic code statements
    11.
    发明授权
    Generating SIMD code from code statements that include non-isomorphic code statements 有权
    从包含非同构代码语句的代码语句生成SIMD代码

    公开(公告)号:US09501268B2

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

    申请号:US14138424

    申请日:2013-12-23

    IPC分类号: G06F9/45 G06F17/30

    CPC分类号: G06F8/443

    摘要: Generating SIMD code from code statements that include non-isomorphic code statements. Code statements are received, each code statement has one or more operators in a respective operator order and each operator has a type and associated operands. At least two code statements among the code statements received have an operator of the same type in a different operator order position. A first operator order position is identified for the operators of the same type in each of the code statements. For each of the code statements, code is generated for operators and their associated operands having operator order positions preceding the first operator order positions. SIMD code is generated at least based on the identified first operator order positions, the corresponding operator type, and the operands associated with the operator type at the identified operator order positions.

    摘要翻译: 从包含非同构代码语句的代码语句生成SIMD代码。 接收到代码语句,每个代码语句在相应的运算符顺序中具有一个或多个运算符,并且每个运算符具有类型和相关联的运算符。 所接收的代码语句中至少有两个代码语句在不同的操作员顺序位置具有相同类型的运算符。 为每个代码语句中的相同类型的运算符标识第一个操作员订单位置。 对于每个代码语句,为操作员及其相关操作数生成代码,其操作员顺序位置位于第一操作员顺序位置之前。 至少基于所识别的第一操作者订单位置,相应的操作者类型以及与所识别的操作员订单位置处的操作者类型相关联的操作数,生成SIMD代码。

    GENERATING SIMD CODE FROM CODE STATEMENTS THAT INCLUDE NON-ISOMORPHIC CODE STATEMENTS
    12.
    发明申请
    GENERATING SIMD CODE FROM CODE STATEMENTS THAT INCLUDE NON-ISOMORPHIC CODE STATEMENTS 有权
    从包含非同构代码声明的代码声明中生成SIMD代码

    公开(公告)号:US20150339110A1

    公开(公告)日:2015-11-26

    申请号:US14818567

    申请日:2015-08-05

    IPC分类号: G06F9/45

    CPC分类号: G06F8/443

    摘要: Generating SIMD code from code statements that include non-isomorphic code statements. Code statements are received, each code statement has one or more operators in a respective operator order and each operator has a type and associated operands. At least two code statements among the code statements received have an operator of the same type in a different operator order position. A first operator order position is identified for the operators of the same type in each of the code statements. For each of the code statements, code is generated for operators and their associated operands having operator order positions preceding the first operator order positions. SIMD code is generated at least based on the identified first operator order positions, the corresponding operator type, and the operands associated with the operator type at the identified operator order positions.

    摘要翻译: 从包含非同构代码语句的代码语句生成SIMD代码。 接收到代码语句,每个代码语句在相应的运算符顺序中具有一个或多个运算符,并且每个运算符具有类型和相关联的运算符。 所接收的代码语句中至少有两个代码语句在不同的操作员顺序位置具有相同类型的运算符。 为每个代码语句中的相同类型的运算符标识第一个操作员订单位置。 对于每个代码语句,为操作员及其相关操作数生成代码,其操作员顺序位置位于第一操作员顺序位置之前。 至少基于所识别的第一操作者订单位置,相应的操作者类型以及与所识别的操作员订单位置处的操作者类型相关联的操作数,生成SIMD代码。

    Optimizing memory bandwidth consumption using data splitting with software caching
    13.
    发明授权
    Optimizing memory bandwidth consumption using data splitting with software caching 有权
    使用软件缓存的数据拆分优化内存带宽消耗

    公开(公告)号:US09104577B2

    公开(公告)日:2015-08-11

    申请号:US14010984

    申请日:2013-08-27

    IPC分类号: G06F9/45 G06F12/08

    摘要: A computer processor collects information for a dominant data access loop and reference code patterns based on data reference pattern analysis, and for pointer aliasing and data shape based on pointer escape analysis. The computer processor selects a candidate array for data splitting wherein the candidate array is referenced by a dominant data access loop. The computer processor determines a data splitting mode by which to split the data of the candidate array, based on the reference code patterns, the pointer aliasing, and the data shape information, and splits the data into two or more split arrays. The computer processor creates a software cache that includes a portion of the data of the two or more split arrays in a transposed format, and maintains the portion of the transposed data within the software cache and consults the software cache during an access of the split arrays.

    摘要翻译: 计算机处理器收集基于数据参考模式分析的主要数据访问环路和参考代码模式的信息,以及基于指针逸出分析的指针别名和数据形状。 计算机处理器选择用于数据分割的候选阵列,其中候选阵列由主导数据访问循环引用。 计算机处理器基于参考代码模式,指针混叠和数据形状信息来确定用于分割候选阵列的数据的数据分割模式,并将数据分割成两个或更多个分割阵列。 计算机处理器创建软件高速缓存,其以转置的格式包括两个或多个分割阵列的数据的一部分,并且将转置的数据的部分维持在软件高速缓存内,并且在分割阵列的访问期间查阅软件高速缓存 。

    OPTIMIZING MEMORY BANDWIDTH CONSUMPTION USING DATA SPLITTING WITH SOFTWARE CACHING
    14.
    发明申请
    OPTIMIZING MEMORY BANDWIDTH CONSUMPTION USING DATA SPLITTING WITH SOFTWARE CACHING 有权
    使用软件缓存数据分割优化记忆带宽消费

    公开(公告)号:US20150067260A1

    公开(公告)日:2015-03-05

    申请号:US14010984

    申请日:2013-08-27

    IPC分类号: G06F12/08

    摘要: A computer processor collects information for a dominant data access loop and reference code patterns based on data reference pattern analysis, and for pointer aliasing and data shape based on pointer escape analysis. The computer processor selects a candidate array for data splitting wherein the candidate array is referenced by a dominant data access loop. The computer processor determines a data splitting mode by which to split the data of the candidate array, based on the reference code patterns, the pointer aliasing, and the data shape information, and splits the data into two or more split arrays. The computer processor creates a software cache that includes a portion of the data of the two or more split arrays in a transposed format, and maintains the portion of the transposed data within the software cache and consults the software cache during an access of the split arrays.

    摘要翻译: 计算机处理器收集基于数据参考模式分析的主要数据访问环路和参考代码模式的信息,以及基于指针逸出分析的指针混叠和数据形状。 计算机处理器选择用于数据分割的候选阵列,其中候选阵列由主导数据访问循环引用。 计算机处理器基于参考代码模式,指针混叠和数据形状信息来确定用于分割候选阵列的数据的数据分割模式,并将数据分割成两个或更多个分割阵列。 计算机处理器创建软件高速缓存,其以转置的格式包括两个或多个分割阵列的数据的一部分,并且将转置的数据的部分维持在软件高速缓存内,并且在分割阵列的访问期间查阅软件高速缓存 。