Toward Portable GPU Performance: Julia Recursive Implementation of TRMM and TRSM
By: Vicki Carrica , Maxwell Onyango , Rabab Alomairy and more
Potential Business Impact:
Makes computers solve math problems faster.
This paper presents a performant and portable recursive implementation of triangular matrix-matrix multiplication (TRMM) and triangular solve (TRSM) in Julia for GPUs, two kernels that underlie many linear-algebra algorithms. We restructure TRMM and TRSM so that most work is executed as general matrix-matrix multiplication (GEMM), improving use of the GPU memory hierarchy and reducing latency. Exploiting Julia's multiple dispatch and metaprogramming together with the GPUArrays and KernelAbstractions frameworks, we expose a single hardware-agnostic API that runs on NVIDIA, AMD, and Apple Silicon GPUs. For large matrices the recursive code reaches throughput comparable to vendor libraries such as cuBLAS and rocBLAS, while providing these routines on Apple Silicon for the first time. The entire implementation is only a few hundred lines of code, showing that unified Julia programs can deliver near-vendor performance across heterogeneous architectures.
Similar Papers
Hierarchical Precision and Recursion for Accelerating Symmetric Linear Solves on MXUs
Distributed, Parallel, and Cluster Computing
Makes computers solve math problems much faster.
Accelerating Sparse Ternary GEMM for Quantized ML on Apple Silicon
Performance
Makes Apple computers do math much faster.
Performant Unified GPU Kernels for Portable Singular Value Computation Across Hardware and Precision
Distributed, Parallel, and Cluster Computing
Makes computers learn faster with better math.