On Memory Codelets: Prefetching, Recoding, Moving and Streaming Data

01/31/2023
by   Dawson Fox, et al.
0

For decades, memory capabilities have scaled up much slower than compute capabilities, leaving memory utilization as a major bottleneck. Prefetching and cache hierarchies mitigate this in applications with easily predictable memory accesses or those with high locality. In other applications like sparse linear algebra or graph-based applications, these strategies do not achieve effective utilization of memory. This is the case for the von Neumann model of computation, but other program execution models (PXM) provide different opportunities. Furthermore, the problem is complicated by increasing levels of heterogeneity and devices' varying memory subsystems. The Codelet PXM presented in this paper provides a program structure that allows for well-defined prefetching, streaming, and recoding operations to improve memory utilization and efficiently coordinate data movement with respect to computation. We propose the Memory Codelet, an extension to the original Codelet Model, to provide users these functionalities in a well-defined manner within the Codelet PXM.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset