stotko/stdgpu
stdgpu: Efficient STL-like Data Structures on the GPU
解决的问题
大多数GPU库专注于实现操作连续数据的快速算法。stdgpu通过提供一组STL风格的容器,解决了GPU上缺乏灵活、通用的数据管理问题,使开发者能够像在CPU上一样,构建更复杂和灵活的GPU算法。
工作原理
这是一个轻量级的C++17库,支持在多个后端(包括CUDA、OpenMP和HIP,实验性)上实现通用GPU数据结构。它提供两个层次的交互方式:
- 无后端依赖函数:高阶函数(如
insert),支持共享C++代码。 - 原生函数:低阶函数(如
find),专为在自定义CUDA内核中使用而设计。
适用人群
需要超越简单数组的可靠数据结构的高性能GPU代码开发者,特别是构建自定义内核或使用Thrust等框架的开发者。
主要亮点
- STL风格容器:包含
vector、unordered_map、unordered_set、deque、queue、stack和bitset。 - 多后端支持:兼容CUDA、OpenMP和HIP。
- 互操作性:可与Thrust GPU算法协同工作。
- 最小依赖:设计为轻量级库,开销极小。
相关
- 项目
- 项目
- 项目
- 项目