stotko/stdgpu
stdgpu: Efficient STL-like Data Structures on the GPU
What it solves
Most GPU libraries focus on implementing fast algorithms that operate on contiguous data. stdgpu solves the lack of flexible, general-purpose data management on the GPU by providing a set of STL-like containers that allow developers to build more complex and flexible GPU algorithms similar to how they would on a CPU.
How it works
It is a lightweight C++17 library that implements generic GPU data structures across multiple backends, including CUDA, OpenMP, and HIP (experimental). It provides two levels of interaction:
- Agnostic functions: High-level functions (like
insert) that allow for shared C++ code. - Native functions: Low-level functions (like
find) designed for use within custom CUDA kernels.
Who it’s for
Developers writing high-performance GPU code who need reliable data structures beyond simple arrays, specifically those building custom kernels or using frameworks like Thrust.
Highlights
- STL-like Containers: Includes
vector,unordered_map,unordered_set,deque,queue,stack, andbitset. - Multi-Backend Support: Compatible with CUDA, OpenMP, and HIP.
- Interoperability: Works with Thrust GPU algorithms.
- Minimal Dependencies: Designed as a lightweight library with minimal overhead.
Related
- Project
- Project
- Project
- Project