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风格容器:包含 vectorunordered_mapunordered_setdequequeuestackbitset
  • 多后端支持:兼容CUDA、OpenMP和HIP。
  • 互操作性:可与Thrust GPU算法协同工作。
  • 最小依赖:设计为轻量级库,开销极小。

相关

  • 项目
  • 项目
  • 项目
  • 项目