stotko/stdgpu

stdgpu: Efficient STL-like Data Structures on the GPU

何を解決するか

ほとんどのGPUライブラリは連続したデータ上で動作する高速なアルゴリズムの実装に焦点を当てています。stdgpuは、GPU上で柔軟で汎用的なデータ管理が不足している問題を解決し、CPU上で行うのと同様に、より複雑で柔軟なGPUアルゴリズムを構築できるSTL風のコンテナ群を提供します。

動作方法

これは軽量なC++17ライブラリで、CUDA、OpenMP、およびHIP(実験的)など複数のバックエンド上で汎用GPUデータ構造を実装しています。2つのレベルのインタラクションを提供します:

  • バックエンド非依存関数insert のような高レベル関数で、共有可能なC++コードを可能にします。
  • ネイティブ関数find のような低レベル関数で、カスタムCUDAカーネル内で使用することを目的としています。

対象ユーザー

シンプルな配列を超えた信頼性の高いデータ構造が必要な、高性能GPUコードを書く開発者。特にカスタムカーネルを構築している人や、Thrustのようなフレームワークを使用している人。

特徴

  • STL風コンテナvectorunordered_mapunordered_setdequequeuestackbitset を含む。
  • マルチバックエンド対応:CUDA、OpenMP、HIPと互換性があります。
  • 相互運用性:Thrust GPUアルゴリズムと連携可能。
  • 最小限の依存:軽量なライブラリとして設計され、最小限のオーバーヘッドです。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト