@@ -44,6 +44,15 @@ The following are features **suppported by AccelForge, not Timeloop**:
4444 <https://github.com/Accelergy-Project/accelergy> `_. Hwcomponents is a successor to
4545 Accelergy, and makes it significantly easier to write custom component models.
4646- **Easy Installation **: AccelForge and dependencies are pip installable.
47+ - **Mapper for imperfectly-factorized loop levels **: The mapper can explore imperfect
48+ mappings for all loop levels. We note two differences between our implementations and
49+ Timeloop's. **(1) ** We permit the outermost loop for each rank variable to have a
50+ residual, while Timeloop permits a residual on every loop. **(2) ** We only run
51+ imperfect mapping for simple rank variables which do not participate in indexing
52+ expressions, while Timeloop allows every rank variable to be imperfect. Our
53+ constraints allow us to find good mappings while keeping the search space tractable,
54+ while Timeloop may only search the imperfect space with additional user-written
55+ constraints.
4756
4857The following are features **supported by Timeloop, work-in-progress in AccelForge **:
4958
@@ -53,10 +62,6 @@ The following are features **supported by Timeloop, work-in-progress in AccelFor
5362- **Layout Support **: Support for the costs of how data is laid out in memory.
5463- **Skew in Model **: User-defined spatial skews that can split data between multiple
5564 multiple spatial instances.
56- - **Mapper for $\s im 1-2$ imperfectly-factorized loop levels **: The mapper can explore
57- imperfect mappings for a handful of loop levels, but becomes intractible for more loop
58- levels. This, as well as full imperfect mapping, is present in AccelForge, but the API
59- is not yet implemented.
6065- **ISL-Based Model **: Timeloop supports high-fidelity modeling with ISL to generate the
6166 accesses for every spatial instance, while AccelForge uses a simpler and faster
6267 analytical model.
@@ -66,8 +71,6 @@ Timeloop**:
6671
6772- **Skew in Mapping **: Automatically deriving the best skew for a given workload and
6873 architecture.
69- - **Mapper for all imperfectly-factorized loop levels **: The mapper can explore
70- imperfect mappings for all loop levels.
7174- **Einsum-Level Spatial Parallelism **: The mapper can parallelize Einsums across
7275 spatial instances, rather than executing them sequentially.
7376
0 commit comments