Optimizing Compilers for Modern Architectures: A Dependence-based Approach
By R. Allen, K. Kennedy. 2001
1,220 citations recorded by the source corpus.
View Paper: https://www.semanticscholar.org/paper/344db049c4b9a98b93a2e2025f9d8bd10d76ab92
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
- Yoshua Bengio
- Kaiming He
- Liang-Chieh Chen
- Abhinav Kumar Gupta
- Priya Goyal
- Sergey Levine
- Jitendra Malik
- Nicolas Vasilache
Citations in the corpus
- PyCUDA and PyOpenCL: A scripting-based approach to GPU run-time code generation (2009, methodology): “We implemented common optimization strategies (e.g. loop unrolling [21], pre-fetching and software pipelining [24], alleviation of register pressure using spilling [53], communication and computation load distribution, etc.) and achieved comfortable speed-ups with a simple auto-tuning method (i.e.…”
- Tensor Comprehensions: Framework-Agnostic High-Performance Machine Learning Abstractions (2018, background): “A dependence is only violated if it has a negative distance along some loop before it is carried by another loop [42].”
- Program optimization space pruning for a multithreaded gpu (2008, unknown): “Many optimization techniques are detailed in [16, 29].”
- Automatic thread extraction with decoupled software pipelining (2005, background): “2 Decoupled Software Pipelining One way to understand why decoupled software pipelining (DSWP) is effective is to start with an examination of the salient properties of DOACROSS parallelism [13].”
- Optimization principles and application performance evaluation of a multithreaded GPU using CUDA (2008, background): “However, complexity of data distribution and communication optimization techniques, as discussed in the (cid:2)nal two chapters of [13], were a hard-to-solve challenge.”
- SPIRAL: Code Generation for DSP Transforms (2005, background): “Although much can be accomplished with program transformation techniques [3]–[8] and with algorithm recognition [9], [10], starting the transformation process from a high-level language version does not always lead to the desired results.”
- Optimistic parallelism requires abstractions (2007, background): “In the compiler literature, it is standard to distinguish between do-all loops and do-across loops [20].”
- Predicting whole-program locality through reuse distance analysis (2003, methodology): “REFERENCES [1] R. Allen and K. Kennedy.”