Compiler Support for Speculation in Decoupled Access/Execute Architectures

Fuente: arXiv
Guardado en:
Detalles Bibliográficos
Autores principales: Szafarczyk, Robert, Nabi, Syed Waqar, Vanderbauwhede, Wim
Formato: Preprint
Publicado: 2025
Materias:
Acceso en línea:
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
_version_ 1866916579533389824
author Szafarczyk, Robert
Nabi, Syed Waqar
Vanderbauwhede, Wim
author_facet Szafarczyk, Robert
Nabi, Syed Waqar
Vanderbauwhede, Wim
contents Irregular codes are bottlenecked by memory and communication latency. Decoupled access/execute (DAE) is a common technique to tackle this problem. It relies on the compiler to separate memory address generation from the rest of the program, however, such a separation is not always possible due to control and data dependencies between the access and execute slices, resulting in a loss of decoupling. In this paper, we present compiler support for speculation in DAE architectures that preserves decoupling in the face of control dependencies. We speculate memory requests in the access slice and poison mis-speculations in the execute slice without the need for replays or synchronization. Our transformation works on arbitrary, reducible control flow and is proven to preserve sequential consistency. We show that our approach applies to a wide range of architectural work on CPU/GPU prefetchers, CGRAs, and accelerators, enabling DAE on a wider range of codes than before.
format Preprint
id arxiv_https___arxiv_org_abs_2501_13553
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Compiler Support for Speculation in Decoupled Access/Execute Architectures
Szafarczyk, Robert
Nabi, Syed Waqar
Vanderbauwhede, Wim
Performance
Hardware Architecture
Distributed, Parallel, and Cluster Computing
Irregular codes are bottlenecked by memory and communication latency. Decoupled access/execute (DAE) is a common technique to tackle this problem. It relies on the compiler to separate memory address generation from the rest of the program, however, such a separation is not always possible due to control and data dependencies between the access and execute slices, resulting in a loss of decoupling. In this paper, we present compiler support for speculation in DAE architectures that preserves decoupling in the face of control dependencies. We speculate memory requests in the access slice and poison mis-speculations in the execute slice without the need for replays or synchronization. Our transformation works on arbitrary, reducible control flow and is proven to preserve sequential consistency. We show that our approach applies to a wide range of architectural work on CPU/GPU prefetchers, CGRAs, and accelerators, enabling DAE on a wider range of codes than before.
title Compiler Support for Speculation in Decoupled Access/Execute Architectures
topic Performance
Hardware Architecture
Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2501.13553