We present a framework for unifying iteration reordering transformations such as loop interchange, loop distribution, skewing, tiling, index set splitting and statement reordering. The framework is based on the idea that a transformation can be represented as a mapping from the original iteration space to a new iteration space. The framework is designed to provide a uniform way to represent and reason about transformations. We also provide algorithms to test the legality of mappings, and to generate optimized code for mappings.
There has been a great amount of recent work toward unifying iteration reordering transformations. Many of these approaches represent transformations as a ne mappings from the original iteration space to a new iteration space. These approaches show a great deal of promise, but they all rely on the ability to generate code that iterates over the points in these new iteration spaces in the appropriate order. This problem has been fairly well-studied in the case where all statements use the same mapping. We have developed an algorithm for the less well-studied case where each statement uses a potentially di erent mapping. Unlike many other approaches, our algorithm can also generate code from mappings corresponding to loop blocking. We address the important trade-o between reducing control overhead and duplicating code. AbstractThere has been a great amount of recent work toward unifying iteration reordering transformations. Many of these approaches represent transformations as a ne mappings from the original iteration space to a new iteration space. These approaches show a great deal of promise, but they all rely on the ability to generate code that iterates over the points in these new iteration spaces in the appropriate order. This problem has been fairly well-studied in the case where all statements use the same mapping. We have developed an algorithm for the less well-studied case where each statement uses a potentially di erent mapping. Unlike many other approaches, our algorithm can also generate code from mappings corresponding to loop blocking. We address the important trade-o between reducing control overhead and duplicating code.
Integer tuple relations can concisely summarize many types of information gathered from analysis of scienti c codes. For example they can be used to precisely describe which iterations of a statement are data dependent of which other iterations. It is generally not possible to represent these tuple relations by enumerating the related pairs of tuples. For example, it is impossible to enumerate the related pairs of tuples in the relation f i] ! i + 2] j 1 i n 2 g. Even when it is possible to enumerate the related pairs of tuples, such as for the relation f i; j] ! i 0 ; j 0 ] j 1 i; j; i 0 ; j 0 100 g, it is often not practical to do so. We instead use a closed form description by specifying a predicate consisting of a ne constraints on the related pairs of tuples. As we just saw, these a ne constraints can be parameterized, so what we are really describing are in nite families of relations (or graphs). Many of our applications of tuple relations rely heavily on an operation called transitive closure. Computing the transitive closure of these \in nite graphs" is very di erent from the traditional problem of computing the transitive closure of a graph whose edges can be enumerated. For example, the transitive closure of the rst relation above is the relation f i] ! i 0 ] j 9 s:t: i 0 i = 2 ^1 i i 0 n g. As we will prove, this computation is not computable in the general case. We have developed algorithms that produce exact results in most commonly occurring cases and produce upper or lower bounds (as necessary) in the other cases. This paper will describe our algorithms for computing transitive closure and some of its applications such as determining which inter-processor synchronizations are redundant.
Integer tuple relations can concisely summarize many types of information gathered from analysis of scienti c codes. For example they can be used to precisely describe which iterations of a statement are data dependent of which other iterations. It is generally not possible to represent these tuple relations by enumerating the related pairs of tuples. For example, it is impossible to enumerate the related pairs of tuples in the relation f i] ! i + 2] j 1 i n 2 g. Even when it is possible to enumerate the related pairs of tuples, such as for the relation f i; j] ! i 0 ; j 0 ] j 1 i; j; i 0 ; j 0 100 g, it is often not practical to do so. We instead use a closed form description by specifying a predicate consisting of a ne constraints on the related pairs of tuples. As we just saw, these a ne constraints can be parameterized, so what we are really describing are in nite families of relations (or graphs). Many of our applications of tuple relations rely heavily on an operation called transitive closure. Computing the transitive closure of these \in nite graphs" is very di erent from the traditional problem of computing the transitive closure of a graph whose edges can be enumerated. For example, the transitive closure of the rst relation above is the relation f i] ! i 0 ] j 9 s:t: i 0 i = 2 ^1 i i 0 n g. As we will prove, this computation is not computable in the general case. We have developed algorithms that produce exact results in most commonly occurring cases and produce upper or lower bounds (as necessary) in the other cases. This paper will describe our algorithms for computing transitive closure and some of its applications such as determining which inter-processor synchronizations are redundant.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.