eyalroz/cuda-api-wrappers
Thin, unified, C++-flavored wrappers for the CUDA APIs
何を解決するか
このライブラリは、NVIDIAのCスタイルのCUDA API(Runtime APIおよびDriver API)の欠陥に対処します。これらのAPIは、手動でのリソース管理、冗長なエラーチェック、複雑なポインタへのポインタのパターンをしばしば必要とします。このライブラリはCUDAエコシステムとのやり取りを簡素化し、現代的なC++プログラミングの実践に合わせて、より直感的で一貫性のあるシステムを提供します。
動作方法
Driver API、Runtime API、NVRTC(動的コンパイル)、NVTX(プロファイラーAPI)、およびPTXコンパイラライブラリを含む、主要なCUDA APIの軽量なラッパーを提供するヘッダーのみのC++ライブラリです。新しい抽象化を導入したり、特定の規則を強制したりはしませんが、NVIDIAのAPIを現代的なC++の美学に再構成します。
対象ユーザー
直接CUDA APIを使用する開発者で、下位のAPIが提供する表現力の範囲を損なうことなく、より使いやすく、安全で、より組み合わせ可能な方法でNVIDIA GPUとやり取りしたい方。
主な特徴
- RAIIリソース管理: デバイス、ストリーム、イベント、カーネルのプロキシオブジェクトを使用して、リソースの解放を自動化します。
- 例外ベースのエラー処理: 戻り値のチェックを、ステータス情報を保持する例外に置き換えます。
- 改善された組み合わせ性: 関数は生成するオブジェクトを返すため、事前に割り当てられた出力パラメータを必要としません。
- 統合されたAPIアクセス: Driver API、Runtime API、NVRTC APIの間でシームレスな統合を提供します。
- ゼロオーバーヘッド設計: 高コストな継承や仮想メソッドを一切使用せず、軽量でヘッダーのみの実装であり、ほとんどのラッパーはコンパイル時に消え去ります。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト