会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 91. 发明授权
    • Efficient generation of SIMD code in presence of multi-threading and other false sharing conditions and in machines having memory protection support
    • 在存在多线程和其他虚假共享条件的情况下以及具有存储器保护支持的机器中有效地生成SIMD代码
    • US07730463B2
    • 2010-06-01
    • US11358372
    • 2006-02-21
    • Alexandre E. EichenbergerKai-Ting Amy WangPeng WuPeng Zhao
    • Alexandre E. EichenbergerKai-Ting Amy WangPeng WuPeng Zhao
    • G06F9/45
    • G06F9/3851G06F8/44
    • A computer implemented method, system and computer program product for automatically generating SIMD code. The method begins by analyzing data to be accessed by a targeted loop including at least one statement, where each statement has at least one memory reference, to determine if memory accesses are safe. If memory accesses are safe, the targeted loop is simdized. If not safe, it is determined if a scheme can be applied in which safety need not be guaranteed. If such a scheme can be applied, the targeted loop is simdized according to the scheme. If such a scheme cannot be applied, it is determined if padding is appropriate. If padding is appropriate, the data is padded and the targeted loop is simdized. If padding is not appropriate, non-simdized code is generated based on the targeted loop for handling boundary conditions, the targeted loop is simdized and combined with the non-simdized code.
    • 一种用于自动生成SIMD代码的计算机实现的方法,系统和计算机程序产品。 该方法开始于分析要由目标循环访问的数据,包括至少一个语句,其中每个语句具有至少一个存储器引用,以确定存储器访问是否安全。 如果存储器访问是安全的,则对象循环被简化。 如果不安全,则确定是否可以应用不需要保证安全性的方案。 如果可以应用这种方案,则根据该方案对目标循环进行模拟。 如果不能应用这种方案,则确定填充是否合适。 如果填充是合适的,则填充数据并对目标循环进行模拟。 如果填充不合适,则基于用于处理边界条件的目标循环生成非模拟代码,目标循环被简化并与非模拟代码组合。
    • 92. 发明申请
    • SINGLE INSTRUCTION MULTIPLE DATA (SIMD) CODE GENERATION FOR PARALLEL LOOPS USING VERSIONING AND SCHEDULING
    • 单一指令多项数据(SIMD)使用版本和调度的平行代码生成代码
    • US20100011339A1
    • 2010-01-14
    • US12172199
    • 2008-07-11
    • Alexandre E. EichenbergerRaul E. SilveraAmy K. WangGuansong Zhang
    • Alexandre E. EichenbergerRaul E. SilveraAmy K. WangGuansong Zhang
    • G06F9/44
    • G06F8/456
    • Embodiments of the present invention address deficiencies of the art in respect to loop parallelization for a target architecture implementing a shared memory model and provide a novel and non-obvious method, system and computer program product for SIMD code generation for parallel loops using versioning and scheduling. In an embodiment of the invention, within a code compilation data processing system a parallel SIMD loop code generation method can include identifying a loop in a representation of source code as a parallel loop candidate, either through a user directive or through auto-parallelization. The method also can include selecting a trip count condition responsive to a scheduling policy set for the code compilation data processing system and also on a minimal simdizable threshold, determining a trip count and an alignment constraint for the selected loop, and generating a version of a parallel loop in the source code according to the alignment constraint and a comparison of the trip count to the trip count condition.
    • 本发明的实施例解决了实现共享存储器模型的目标架构的环路并行化方面的技术缺陷,并且提供了一种用于使用版本控制和调度的并行循环的SIMD代码生成的新颖且非显而易见的方法,系统和计算机程序产品 。 在本发明的一个实施例中,在代码编译数据处理系统中,并行SIMD循环码生成方法可以包括通过用户指令或通过自动并行化来将源代码表示中的循环识别为并行循环候选。 该方法还可以包括响应于针对代码编译数据处理系统的调度策略集以及最小可仿真阈值来选择跳闸计数条件,确定所选循环的跳闸计数和对准约束,以及生成 根据对齐约束在源代码中并行循环,并将行程计数与行程计数条件进行比较。
    • 93. 发明申请
    • System and Method for Domain Stretching for an Advanced Dual-Representation Polyhedral Loop Transformation Framework
    • 用于高级双表示多面体环转换框架的域拉伸的系统和方法
    • US20090307673A1
    • 2009-12-10
    • US11861503
    • 2007-09-26
    • Alexandre E. EichenbergerJohn K. P. O'BrienKathryn M. O'BrienNicolas T. Vasilache
    • Alexandre E. EichenbergerJohn K. P. O'BrienKathryn M. O'BrienNicolas T. Vasilache
    • G06F9/45
    • G06F8/452
    • A system and method for domain stretching for an advanced dual-representation polyhedral loop transformation framework are provided. The mechanisms of the illustrative embodiments address the weaknesses of the known polyhedral loop transformation based approaches by providing mechanisms for performing code generation transformations on individual statement instances in an intermediate representation generated by the polyhedral loop transformation optimization of the source code. These code generation transformations have the important property that they do not change program order of the statements in the intermediate representation. This property allows the result of the code generation transformations to be provided back to the polyhedral loop transformation mechanisms in a program statement view, via a new re-entrance path of the illustrative embodiments, for additional optimization. In addition, mechanisms are provided for stretching the domains of statements in a program loop view of the source code to thereby normalize the domains.
    • 提供了一种用于高级双重表示多面体环转换框架的域拉伸的系统和方法。 说明性实施例的机制通过提供用于在通过源代码的多面体环转换优化生成的中间表示中对各个语句实例执行代码生成变换的机制来解决已知的基于多面体循环变换的方法的弱点。 这些代码生成转换具有重要的属性,它们不改变中间表示中的语句的程序顺序。 该属性允许通过示例性实施例的新的重新导入路径将代码生成转换的结果提供给程序语句视图中的多面体循环变换机制,用于附加优化。 另外,提供了用于在源代码的程序循环视图中拉伸语句的域的机制,从而使域标准化。
    • 94. 发明授权
    • SIMD code generation for loops with mixed data lengths
    • 具有混合数据长度的循环的SIMD代码生成
    • US07475392B2
    • 2009-01-06
    • US10919131
    • 2004-08-16
    • Alexandre E. EichenbergerKai-Ting Amy WangPeng Wu
    • Alexandre E. EichenbergerKai-Ting Amy WangPeng Wu
    • G06F9/45
    • G06F8/4452
    • Generating loop code to execute on Single-Instruction Multiple-Datapath (SIMD) architectures, where the loop operates on datatypes having different lengths, is disclosed. Further, a preferred embodiment of the present invention includes a novel technique to efficiently realign or shift arbitrary streams to an arbitrary offset, regardless whether the alignments or offsets are known at the compile time or not. This technique enables the application of advanced alignment optimizations to runtime alignment. Length conversion operations, for packing and unpacking data values, are included in the alignment handling framework. These operations are formally defined in terms of standard SIMD instructions that are readily available on various SIMD platforms. This allows sequential loop code operating on datatypes of disparate length to be transformed (“simdized”) into optimized SIMD code through a fully automated process.
    • 公开了在单指令多数据路径(SIMD)架构中生成循环码,其循环对具有不同长度的数据类型进行操作。 此外,本发明的优选实施例包括一种用于有效地将任意流重新对准或将任意流移动到任意偏移的新技术,无论在编译时是否知道对准或偏移。 这种技术使得可以将高级对齐优化应用于运行时对齐。 用于打包和解包数据值的长度转换操作包含在对齐处理框架中。 这些操作根据在各种SIMD平台上容易获得的标准SIMD指令正式定义。 这允许对具有不同长度的数据类型的顺序循环代码通过完全自动化的过程进行转换(“模拟化”)成优化的SIMD代码。