AcceleratedKernels.jl Arithmetic and Sorting Benchmarks and HPC Logs

Citation Author(s):
Andrei-Leonard
Nicusan
University of Birmingham
Submitted by:
Andrei-Leonard ...
Last updated:
Sun, 10/13/2024 - 21:25
DOI:
10.21227/94q9-p565
Data Format:
License:
14 Views
Categories:
Keywords:
0
0 ratings - Please login to submit your rating.

Abstract 

Benchmark code, HPC runtime logs, and analysis for the "AcceleratedKernels.jl: Cross-Architecture Parallel Algorithms from a Unified, Transpiled Codebase" Paper.

 

 

AcceleratedKernels.jl is a backend-agnostic library for parallel computing in Julia, natively targeting NVIDIA, AMD, Intel, and Apple accelerators via a unique transpilation architecture. Written in a unified, compact codebase, it enables productive parallel programming with minimised implementation and usage complexities. Benchmarks of arithmetic-heavy kernels show performance on par with C and OpenMP-multithreaded CPU implementations, with Julia sometimes offering more consistent and predictable numerical performance than conventional C compilers. Exceptional composability is highlighted as simultaneous CPU-GPU co-processing is achievable - such as CPU-GPU co-sorting - with transparent use of hardware-specialised MPI implementations. Tests on the Baskerville Tier 2 UK HPC cluster achieved world-class sorting throughputs of 538-855 GB/s using 200 NVIDIA A100 GPUs, comparable to the highest literature-reported figure of 900 GB/s achieved on 262,144 CPU cores. The use of direct NVLink GPU-to-GPU interconnects resulted in a 4.93x speedup on average; normalised by a combined capital, running and environmental cost, communication-heavy HPC tasks only become economically viable on GPUs if GPUDirect interconnects are employed.

Instructions: 

Unzip to see raw HPC logs, disassembled binaries, benchmark code, results, plots, analysis.