GPUAPI¶
Overview¶
The GPUAPI module provides Chapel-level GPU API. The use of the API assumes cases where the user would like to 1) write GPU kernels in low-level GPU languages such as CUDA/HIP/OpenCL, or 2) utilize highly-tuned GPU libraries, and would like to stick with Chapel for the other parts (allocation, data transfers). Currently, it provides two tiers of GPU API:
MID-level: Provides Chapel user-friendly GPU API functions.
Example:
var ga = new GPUArray(A);
MID-LOW-level: Provides wrapper functions for raw GPU API functions
Example:
var ga: c_ptr(void) = Malloc(sizeInBytes);
Further Readings¶
Exploring a multi-resolution GPU programming model for Chapel. Akihiro Hayashi, Sri Raj Paul, Vivek Sarkar, 7th Annual Chapel Implementers and Users Workshop (CHIUW), May 2020. (co-located with IPDPS2020).
GPUAPI: Multi-level Chapel Runtime API for GPUs. Akihiro Hayashi, Sri Raj Paul, Vivek Sarkar, The 8th Annual Chapel Implementers and Users Workshop (CHIUW), June 2021.