会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 1. 发明授权
    • Method and apparatus for optimizing computer program performance using steered execution
    • 使用转向执行优化计算机程序性能的方法和装置
    • US07458067B1
    • 2008-11-25
    • US11084656
    • 2005-03-18
    • Partha P. TirumalaiSpiros KalogeropulosYonghong SongKurt J. Goebel
    • Partha P. TirumalaiSpiros KalogeropulosYonghong SongKurt J. Goebel
    • G06F9/44
    • G06F8/443
    • One embodiment of the present invention provides a system that facilitates optimizing computer program performance by using steered execution. The system operates by first receiving source code for a computer program, and then compiling a portion of this source code with a first set of optimizations to generate a first compiled portion. The system also compiles the same portion of the source code with a second set of optimizations to generate a second compiled portion. Remaining source code is compiled to generate a third compiled portion. Additionally, a rule is generated for selecting between the first compiled portion and the second compiled portion. Finally, the first compiled portion, the second compiled portion, the third compiled portion, and the rule are combined into an executable output file.
    • 本发明的一个实施例提供了一种通过使用转向执行来有助于优化计算机程序性能的系统。 该系统首先接收计算机程序的源代码,然后用第一组优化来编译该源代码的一部分以生成第一编译部分。 该系统还使用第二组优化来编译源代码的相同部分以生成第二编译部分。 编译剩余源代码以生成第三编译部分。 另外,生成用于在第一编译部分和第二编译部分之间进行选择的规则。 最后,将第一编译部分,第二编译部分,第三编译部分和规则组合成可执行输出文件。
    • 2. 发明授权
    • Adaptive code through self steered execution
    • 自适应代码通过自我转向执行
    • US08069440B2
    • 2011-11-29
    • US11588639
    • 2006-10-27
    • Partha P. TirumalaiKurt J. GoebelYonghong SongSpiros Kalogeropulos
    • Partha P. TirumalaiKurt J. GoebelYonghong SongSpiros Kalogeropulos
    • G06F9/45G06F9/44
    • G06F9/45525G06F8/443
    • A method and mechanism for producing and executing self-steering program code. A method comprises analyzing program code and identifying portions which may be amenable to optimization. Having identified such a portion of code, at least one optimized version of the identified code is added to the program code. Additionally, a selection mechanism is added to the program code which is configured to select between two or more versions of the portion of code during runtime. The modified program code is then compiled with the added optimized version and the selection mechanism. During execution, monitoring of behavior of the code may be enabled or disabled. Based upon such monitored behavior, a different version of the code may be selected for execution. Various optimized versions may be selected for execution in a manner which takes advantage of the current behavior of the program.
    • 一种生产和执行自我导向程序代码的方法和机制。 一种方法包括分析程序代码和识别可能适于优化的部分。 在识别出这样的代码部分之后,将所识别代码的至少一个优化版本添加到程序代码中。 另外,选择机制被添加到被配置为在运行时期间在代码部分的两个或多个版本之间进行选择的程序代码。 然后,修改的程序代码将使用添加的优化版本和选择机制进行编译。 在执行期间,可以启用或禁用对代码行为的监视。 基于这样的监视行为,可以选择代码的不同版本来执行。 可以以利用程序的当前行为的方式来选择各种优化版本来执行。
    • 3. 发明申请
    • Adaptive code through self steered execution
    • 自适应代码通过自我转向执行
    • US20080127134A1
    • 2008-05-29
    • US11588639
    • 2006-10-27
    • Partha P. TirumalaiKurt J. GoebelYonghong SongSpiros Kalogeropulos
    • Partha P. TirumalaiKurt J. GoebelYonghong SongSpiros Kalogeropulos
    • G06F9/45
    • G06F9/45525G06F8/443
    • A method and mechanism for producing and executing self-steering program code. A method comprises analyzing program code and identifying portions which may be amenable to optimization. Having identified such a portion of code, at least one optimized version of the identified code is added to the program code. Additionally, a selection mechanism is added to the program code which is configured to select between two or more versions of the portion of code during runtime. The modified program code is then compiled with the added optimized version and the selection mechanism. During execution, monitoring of behavior of the code may be enabled or disabled. Based upon such monitored behavior, a different version of the code may be selected for execution. Various optimized versions may be selected for execution in a manner which takes advantage of the current behavior of the program
    • 一种生产和执行自我导向程序代码的方法和机制。 一种方法包括分析程序代码和识别可能适于优化的部分。 在识别出这样的代码部分之后,将所识别代码的至少一个优化版本添加到程序代码中。 另外,选择机制被添加到被配置为在运行时期间在代码部分的两个或多个版本之间进行选择的程序代码。 然后,修改的程序代码将使用添加的优化版本和选择机制进行编译。 在执行期间,可以启用或禁用对代码行为的监视。 基于这样的监视行为,可以选择代码的不同版本来执行。 可以以利用程序的当前行为的方式来选择各种优化版本来执行
    • 4. 发明申请
    • Anticipatory helper thread based code execution
    • 基于预期的助手线程代码执行
    • US20070271565A1
    • 2007-11-22
    • US11436948
    • 2006-05-18
    • Partha P. TirumalaiYonghong SongSpiros Kalogeropulos
    • Partha P. TirumalaiYonghong SongSpiros Kalogeropulos
    • G06F9/46
    • G06F9/4843G06F9/52
    • A method and mechanism for using threads in a computing system. A multithreaded computing system is configured to execute a first thread and a second thread. Responsive to the first thread detecting a launch point for a function, the first thread is configured to provide an indication to the second thread that the second thread may begin execution of a given function. The launch point of the function precedes an actual call point of the function in an execution sequence. The second thread is configured to initiate execution of the function in response to the indication. The function includes one or more inputs and the second thread uses anticipated values for each of the one or more inputs. When the first thread reaches a call point for the function, the first thread is configured to use a results of the second thread's execution, in response to determining the anticipated values used by the second thread were correct.
    • 一种在计算系统中使用线程的方法和机制。 多线程计算系统被配置为执行第一线程和第二线程。 响应于检测功能的发起点的第一线程,第一线程被配置为向第二线程提供指示第二线程可以开始执行给定功能的指示。 该功能的启动点在执行顺序中的函数的实际调用点之前。 第二线程被配置为响应于该指示来启动该功能的执行。 该功能包括一个或多个输入,第二线程使用一个或多个输入中的每一个的预期值。 当第一线程到达功能的调用点时,第一线程被配置为使用第二线程的执行结果,以响应于确定第二线程使用的预期值是正确的。
    • 5. 发明授权
    • Compiler implementation of lock/unlock using hardware transactional memory
    • 使用硬件事务内存的编译器实现锁定/解锁
    • US08612929B2
    • 2013-12-17
    • US12331950
    • 2008-12-10
    • Spiros KalogeropulosYonghong SongPartha P. Tirumalai
    • Spiros KalogeropulosYonghong SongPartha P. Tirumalai
    • G06F9/44G06F9/45
    • G06F9/52G06F8/458G06F9/30087G06F9/3857
    • A system and method for automatic efficient parallelization of code combined with hardware transactional memory support. A software application may contain a transaction synchronization region (TSR) utilizing lock and unlock transaction synchronization function calls for a shared region of memory within a shared memory. The TSR is replaced with two portions of code. The first portion comprises hardware transactional memory primitives in place of lock and unlock function calls. Also, the first portion ensures no other transaction is accessing the shared region without disabling existing hardware transactional memory support. The second portion performs a fail routine, which utilizes lock and unlock transaction synchronization primitives in response to an indication that a failure occurs within said first portion.
    • 用于自动高效并行化代码并结合硬件事务内存支持的系统和方法。 软件应用可以包含利用对共享存储器内的共享存储器区域的锁定和解锁事务同步功能调用的事务同步区域(TSR)。 TSR被替换为两部分代码。 第一部分包括代替锁定和解锁功能调用的硬件事务存储器原语。 此外,第一部分确保没有其他事务访问共享区域,而不会禁用现有的硬件事务内存支持。 第二部分执行故障例程,其响应于在所述第一部分内发生故障的指示,利用锁定和解锁事务同步原语。
    • 6. 发明授权
    • Runtime profitability control for speculative automatic parallelization
    • 投机自动并行化的运行时获利控制
    • US08359587B2
    • 2013-01-22
    • US12113706
    • 2008-05-01
    • Yonghong SongSpiros KalogeropulosPartha P. Tirumalai
    • Yonghong SongSpiros KalogeropulosPartha P. Tirumalai
    • G06F9/45
    • G06F8/456
    • A compilation method and mechanism for parallelizing program code. A method for compilation includes analyzing source code and identifying candidate code for parallelization. The method includes parallelizing the candidate code, in response to determining said profitability meets a predetermined criteria; and generating object code corresponding to the source code. The generated object code includes both a non-parallelized version of the candidate code and a parallelized version of the candidate code. During execution of the object code, a dynamic selection between execution of the non-parallelized version of the candidate code and the parallelized version of the candidate code is made. Changing execution from said parallelized version of the candidate code to the non-parallelized version of the candidate code, may be in response to determining a transaction failure count meets a pre-determined threshold. Additionally, changing execution from one version to the other may be in further response to determining an execution time of the parallelized version of the candidate code is greater than an execution time of the non-parallelized version of the candidate code.
    • 用于并行化程序代码的编译方法和机制。 一种编译方法包括分析源代码和识别用于并行化的候选代码。 响应于确定所述获利能力满足预定标准,该方法包括并行化候选代码; 并产生与源代码相对应的目标代码。 生成的目标代码包括候选代码的非并行化版本和候选代码的并行化版本。 在执行对象代码期间,进行候选代码的非并行化版本的执行与候选代码的并行化版本之间的动态选择。 将候选代码的所述并行化版本的执行改变为候选代码的非并行化版本可以响应于确定事务故障计数满足预定阈值。 此外,将执行从一个版本改变到另一版本可能进一步响应于确定候选代码的并行化版本的执行时间大于候选代码的非并行化版本的执行时间。
    • 8. 发明授权
    • Facilitating communication and synchronization between main and scout threads
    • 促进主和侦察线程之间的通信和同步
    • US07950012B2
    • 2011-05-24
    • US11272178
    • 2005-11-09
    • Partha P. TirumalaiYonghong SongSpiros Kalogeropulos
    • Partha P. TirumalaiYonghong SongSpiros Kalogeropulos
    • G06F9/46G06F9/38
    • G06F12/0862G06F8/4442G06F9/485G06F9/52G06F2212/6028
    • One embodiment of the present invention provides a system for communicating and performing synchronization operations between a main thread and a helper-thread. The system starts by executing a program in a main thread. Upon encountering a loop which has associated helper-thread code, the system commences the execution of the code by the helper-thread separately and in parallel with the main thread. While executing the code by the helper-thread, the system periodically checks the progress of the main thread and deactivates the helper-thread if the code being executed by the helper-thread is no longer performing useful work. Hence, the helper-thread is executes in advance of where the main thread is executing to prefetch data items for the main thread without unnecessarily consuming processor resources or hampering the execution of the main thread.
    • 本发明的一个实施例提供一种用于在主线程和辅助线程之间进行通信和执行同步操作的系统。 系统通过在主线程中执行程序来启动。 在遇到具有相关联的助手线程代码的循环时,系统通过辅助线程分别开始与主线程并行执行代码。 在由辅助线程执行代码的同时,如果由辅助线程执行的代码不再执行有用的工作,则系统将定期检查主线程的进度并停用辅助线程。 因此,辅助线程在主线程正在执行的地方执行以预取主线程的数据项,而不必耗费处理器资源或妨碍主线程的执行。
    • 9. 发明申请
    • FAULT TOLERANT COMPILATION WITH AUTOMATIC OPTIMIZATION ADJUSTMENT
    • 具有自动优化调整的容错编译
    • US20100325619A1
    • 2010-12-23
    • US12488905
    • 2009-06-22
    • Yonghong SongSpiros KalogeropulosPartha P. Tirumalai
    • Yonghong SongSpiros KalogeropulosPartha P. Tirumalai
    • G06F9/45
    • G06F8/443G06F8/43G06F11/3624
    • A compilation method is provided for correcting compiler errors that include compiler internal errors and errors produced by running a validation suite. The method includes running a compiler on a computer and storing a set of optimization levels in memory accessible by the compiler. The method includes receiving a source file with the compiler that includes a user-defined optimization level to be used in compiling the source file. The method includes identifying a set of functions within the source file and using compiler components to compile these functions using the original optimization level. When the compiling results in an internal error occurring and being reported for one or more of the functions, the method includes using an optimization adjustment module to process the internal error and assign an adjusted or lower optimization level to the one or more functions and recompiling of these functions again with the lower optimization level.
    • 提供了一种编译方法,用于纠正编译器错误,包括编译器内部错误和运行验证套件产生的错误。 该方法包括在计算机上运行编译器,并将一组优化级别存储在编译器可访问的存储器中。 该方法包括接收包含用于编译源文件的用户定义的优化级别的编译器的源文件。 该方法包括识别源文件中的一组函数,并使用编译器组件使用原始优化级别编译这些函数。 当编译导致内部错误发生并被报告给一个或多个功能时,该方法包括使用优化调整模块来处理内部错误并且将调整的或较低的优化级别分配给一个或多个功能并重新编译 这些功能再次具有较低的优化级别。
    • 10. 发明授权
    • Method and system for generating prefetch information for multi-block indirect memory access chains
    • 用于生成多块间接存储器访问链的预取信息的方法和系统
    • US07383402B2
    • 2008-06-03
    • US11446643
    • 2006-06-05
    • Spiros KalogeropulosYonghong SongPartha P. Tirumalai
    • Spiros KalogeropulosYonghong SongPartha P. Tirumalai
    • G06F12/00
    • G06F8/4442
    • Prefetch information is generated for multi-block indirect memory access chains. A method may include selecting a chain of indirect memory accesses of a procedure, the chain comprising a head access that does not depend for its address on another prefetch candidate memory access within the procedure and an indirect access that depends for its address on the head access. The method may further include determining a prefetch-ahead value for the chain, and generating a load operation corresponding to the head access that specifies a target memory address that is dependent upon the prefetch-ahead value and an address of the head access. The method may further include, for a terminal indirect access of the chain, generating a respective prefetch operation that is dependent for its address computation on results of preceding load operations in the same manner as its corresponding terminal indirect access depends upon preceding accesses in the chain.
    • 为多块间接存储器访问链生成预取信息。 一种方法可以包括选择一个过程的间接存储器访问链,该链包括在该过程内不依赖于其地址对另一预取候选存储器访问的头访问以及取决于其在头访问上的地址的间接访问 。 该方法还可以包括确定链的预取预取值,以及生成与头访问相对应的加载操作,其指定依赖于预提取值和头访问的地址的目标存储器地址。 该方法还可以包括:对于链的终端间接访问,以与其对应的终端间接访问相同的方式生成依赖于其对先前加载操作的结果的地址计算的相应预取操作取决于链中的先前访问 。