摘要:
Methods and apparatus to predict software values are disclosed. In one example, a method identifies a variable associated with one or more machine readable instructions, determines a predicted value of the variable based on a pattern, generates a value prediction instruction to predict a run-time value using the predicted value of the variable based on the pattern, and combines the value prediction instruction with the one or more machine readable instructions.
摘要:
A Markov chain model of a software system may be used to compute all-pairs reaching probabilities to provide guidance in performing speculative operations with respect to the software system.
摘要:
Sequential loops in computer programs may be identified and transformed into speculative parallel threads based on partitioning dependence graphs of sequential loops into pre-fork and post-fork regions.
摘要:
A method to optimize speculative parallel thread execution comprises selecting a plurality of partition candidate pairs for speculative parallel thread execution, transforming each partition candidate pair of the plurality of partition candidate pairs to improve the expected performance gain of each pair, and selecting a set of one or more transformed partition candidate pairs that do not interfere with each other and produce a maximum expected performance gain.
摘要:
Methods and apparatus are disclosed to compile programs to use speculative parallel threads. An example method disclosed herein identifies a set of speculative parallel thread candidates; determines misspeculation cost values for at least some of the speculative parallel thread candidates; selects a set of speculative parallel threads from the set of speculative parallel thread candidates based on the cost values; and generates program code based on the set of speculative parallel threads.
摘要:
Systems and methods perform affine partitioning on a code stream to produce code segments that may be parallelized. The code segments include copies of the original code stream with conditional inserted that aid in parallelizing code. The conditional is formed by determining the constraints on a processor variable determined by the affine partitioning and applying the constraints to the original code stream.
摘要:
Linear transformations of statements in code are performed to generate linear expressions associated with the statements. Parallel code is generated using the linear expressions. Generating the parallel code includes splitting the computation-space of the statements into intervals and generating parallel code for the intervals.
摘要:
Code is affine partitioned to generate affine partitioning mappings. Parallel code is generated based on the affine partitioning mappings. Generating the parallel code includes coalescing loops in the parallel code generated from the affine partitioning mappings to generate coalesced parallel code and optimizing the coalesced parallel code.