Easy Multi-Precision Acceleration via Vectorization
Chansup Byun, Piotr Luszczek, Jeremy Kepner, LaToya Anderson, William Arcand, David Bestor, William Bergeron, Alex Bonn, Daniel Burrill, Vijay Gadepally, Michael Houle, Matthew Hubbell, Hayden Jananthan, Michael Jones, Lauren Milechin, Julie Mullen, Andrew Prout, Albert Reuther, Antonio Rosa, Charles Yee, Peter Michaleas
Abstract
High level programming languages and accelerators are powerful enablers for a wide range of applications. Accelerators offer significant performance via diverse numeric precision and increased memory bandwidth and capacity. These enable new algorithms to be explored. Construction of these algorithms can be enabled by the ready accessibility of these performance features in high-level languages. Achieving scalable vertical (within a compute node), precision (over various numeric precisions), and temporal (over different generations of hardware) performance while retaining productivity requires effective abstractions. Vectorized coding that expresses operations as high-level matrix mathematics has historically been an important method for achieving portable performance. This paper examines the performance availability across a wide range of precisions and hardware using simple vectorized coding techniques applied to several example programs that highlight bandwidth, real and complex matrix multiplication, and 2D convolution. The systems evaluated span nearly a decade of computing hardware, enabling direct comparison of performance gains over this period. This work demonstrates that near hardware peak performance is readily accessible from high-level programming environments. In particular for memory bandwidth, real and complex matrix multiplication in double/single/half precision, and 2D convolutions using the Fast Fourier Transform (FFT). Furthermore, algorithms that trade decreased compute intensity for increased memory intensity have significant potential.
Create a lesson
Related papers
SysPilot: Cross-Library Performance Autotuning via Library Performance Contracts
Yineng Yan, Haowei Chen, Christopher J. Rossbach
Memory-Access Profiling for Early Multicore Interference Awareness in Embedded Systems
Jean-Baptiste Lefoul, Ahmad Shahnejat Bushehri, Alaric Chan Lock et al.
Software Design Patterns for Latency Measurements with eBPF in SDN Environments
Pedro Lucas M. S. Rosa, Bruno L. Dalmazo, Leticia S. Machado et al.
Trustworthiness as a Measurement Structure for Task Conformance in 6G Service Chains
Bin Han, Xintong Ling, Muxia Sun et al.
Warpline: Binary-Level Tracing and Unified Evidence for Agentic GPU Kernel Optimization
Junyu Yin, Vinod Grover, Keren Zhou
The Unreported Variable:Collector Selectivity in Data Placement Evaluation
Nannan Zhao, Jiameng Zhang, Taoyu Zhong et al.