Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Matsumura, Kazuaki, De Gonzalo, Simon Garcia, Peña, Antonio J.
Format: Preprint
Veröffentlicht: 2023
Schlagworte:
Online-Zugang:https://arxiv.org/abs/2306.13002
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
_version_ 1866916396832653312
author Matsumura, Kazuaki
De Gonzalo, Simon Garcia
Peña, Antonio J.
author_facet Matsumura, Kazuaki
De Gonzalo, Simon Garcia
Peña, Antonio J.
contents Automatic code optimization is a complex process that typically involves the application of multiple discrete algorithms that modify the program structure irreversibly. However, the design of these algorithms is often monolithic, and they require repetitive implementation to perform similar analyses due to the lack of cooperation. To address this issue, modern optimization techniques, such as equality saturation, allow for exhaustive term rewriting at various levels of inputs, thereby simplifying compiler design. In this paper, we propose equality saturation to optimize sequential codes utilized in directive-based programming for GPUs. Our approach realizes less computation, less memory access, and high memory throughput simultaneously. Our fully-automated framework constructs single-assignment forms from inputs to be entirely rewritten while keeping dependencies and extracts optimal cases. Through practical benchmarks, we demonstrate a significant performance improvement on several compilers. Furthermore, we highlight the advantages of computational reordering and emphasize the significance of memory-access order for modern GPUs.
format Preprint
id arxiv_https___arxiv_org_abs_2306_13002
institution arXiv
publishDate 2023
record_format arxiv
spellingShingle ACC Saturator: Automatic Kernel Optimization for Directive-Based GPU Code
Matsumura, Kazuaki
De Gonzalo, Simon Garcia
Peña, Antonio J.
Distributed, Parallel, and Cluster Computing
Automatic code optimization is a complex process that typically involves the application of multiple discrete algorithms that modify the program structure irreversibly. However, the design of these algorithms is often monolithic, and they require repetitive implementation to perform similar analyses due to the lack of cooperation. To address this issue, modern optimization techniques, such as equality saturation, allow for exhaustive term rewriting at various levels of inputs, thereby simplifying compiler design. In this paper, we propose equality saturation to optimize sequential codes utilized in directive-based programming for GPUs. Our approach realizes less computation, less memory access, and high memory throughput simultaneously. Our fully-automated framework constructs single-assignment forms from inputs to be entirely rewritten while keeping dependencies and extracts optimal cases. Through practical benchmarks, we demonstrate a significant performance improvement on several compilers. Furthermore, we highlight the advantages of computational reordering and emphasize the significance of memory-access order for modern GPUs.
title ACC Saturator: Automatic Kernel Optimization for Directive-Based GPU Code
topic Distributed, Parallel, and Cluster Computing
url https://arxiv.org/abs/2306.13002