GigaAPI for GPU Parallelization
M. Suvarna, O. Tehrani
TL;DR
The paper addresses the complexity of exploiting multi-GPU systems by introducing GigaAPI, a user-space API that treats two GPUs as a single giga-GPU to ease development. It details a modular design with three capability groups—fundamental GPU operations, image/graphics processing, and theoretical complex applications—and implements CUDA kernels and an OO GigaGPU interface to demonstrate parallelism across FFT, matrix multiplication, vector operations, and image processing. Benchmark results show mixed performance: cuFFT and cuBLAS generally outperform GigaAPI on large matrices and vectors, while GigaAPI enables memory-bounded or batch-oriented tasks (notably upsampling) to scale beyond single-GPU limits. The work highlights practical challenges and design limitations, such as fixed two-GPU support, error handling gaps, and no batch processing, and argues for future improvements toward broader GPU counts and more optimized kernels to democratize parallel GPU computing.
Abstract
GigaAPI is a user-space API that simplifies multi-GPU programming, bridging the gap between the capabilities of parallel GPU systems and the ability of developers to harness their full potential. The API offers a comprehensive set of functionalities, including fundamental GPU operations, image processing, and complex GPU tasks, abstracting away the intricacies of low-level CUDA and C++ programming. GigaAPI's modular design aims to inspire future NVIDIA researchers to create a generalized, dynamic, extensible, and cross-GPU architecture-compatible API. Through experiments and simulations, we demonstrate the general efficiency gains achieved by leveraging GigaAPI's simplified multi-GPU programming model and showcase our learning experience through setup and other aspects, as we were interested in learning complex CUDA programming and parallelism. We hope that this contributes to the democratization of parallel GPU computing, enabling researchers and practitioners to unlock new possibilities across diverse domains.
