🤖 AI Summary
SYCL’s cross-platform ecosystem lacks device-side dynamic memory management, hindering efficient heap allocation and garbage collection on heterogeneous accelerators. Method: This paper presents the first port of the CUDA-optimized memory manager Ouroboros to SYCL 2020, enabling device-side `malloc`/`free` and garbage collection across multiple backends—specifically CUDA and Intel DPC++. By abstracting hardware-specific details, reusing core memory management algorithms, and refactoring runtime semantics to be platform-agnostic, the framework supports compile-time backend selection and a unified memory interface. Contribution/Results: On NVIDIA GPUs, the implementation achieves near-native CUDA performance (<5% overhead); on Intel Arc GPUs, it demonstrates, for the first time in SYCL, functional device-side dynamic heap allocation with a measured throughput of 1.2 GB/s. This work fills a critical gap in SYCL’s real-time GPU memory management capabilities.
📝 Abstract
Dynamic memory allocation is not traditionally available in kernels running on GPUs. This work aims to build on Ouroboros, an efficient dynamic memory management library for CUDA applications, by porting the code to SYCL, a cross-platform accelerator API. Since SYCL can be compiled to a CUDA backend, it is possible to compare the performance of the SYCL implementation with that of the original CUDA implementation, as well as test it on non-CUDA platforms such as Intel's Xe graphics.