Building blocks for advanced memory management

Area: Development tools

CASS member: RAPIDS

Description

AML is a memory management library designed to ease the use of complex memory topologies and complex data layout optimizations for high-performance computing applications. It provides locality-preserving abstractions to application developers. In particular, AML aims to expose flexible interfaces to describe and reason about how applications deal with data layout, tiling of data placement of data across hardware topologies, and affinity between work and data.

AML is organized as a collection of abstractions, presented as building blocks, used to develop explicit memory and data management policies. The goals of AML are composability – application developers and performance experts should be able to pick and choose the building blocks to use depending on their specific needs and flexibility – users should be able to customize, replace, or change the configuration of each building block as much as possible.

Target audience

AML is intended mainly for application developers and programming models and runtime system developers looking to accelerate the design of new portable optimization methods.

License: BSD-3-Clause

Additional resources