NVIDIA/cuda-python
CUDA Python: Performance meets Productivity
解決する課題
PythonからNVIDIAのCUDAプラットフォームにアクセスする統一された方法を提供し、開発者がGPUリソースの管理や並列アルゴリズムの実行のために低レベルなCコードを書く必要性を排除します。CUDA開発の学習曲線を平坦化し、Python内だけでエンドツーエンドのGPUプログラミングを可能にすることで、開発者の生産性を向上させることを目指しています。
仕組み
このプロジェクトは、いくつかの特化したサブパッケージを含むメタパッケージとして構成されています:
- cuda.core: CUDA Driver、Runtime、およびJITコンパイラツールチェーンへの、慣習的でPythonicなアクセスを提供します。
- cuda.bindings: CUDA C API(Driver、Runtime、NVRTC、NVMLを含む)への低レベルなPythonバインディングを提供します。
- cuda.compute: ホストから呼び出し可能なsort、scan、reduceなどの並列アルゴリズムへのアクセスを提供します。
- cuda.tile: CUDAカーネル内で直接NumPyのようなコードを記述するためのドメイン特化言語(DSL)です。
- numba-cuda-mlir および numba.cuda: PythonでJITコンパイルやSIMTカーネルを開発するためのツールです。
- nvmath-python: NVIDIAのCPUおよびGPU数学ライブラリへのアクセスを提供します。
- nvshmem4py: 高性能な分割グローバルアドレス空間(PGAS)プログラミングのためのインターフェースです。
- プロファイリングツール: パフォーマンス分析とカーネルプロファイリングのためのNsight PythonおよびCUPTI Pythonが含まれています。
対象者
高レベルな慣習的抽象化を必要とする開発者から、CUDA C APIの低レベルな制御を必要とする開発者まで、Pythonを使用して加速コンピューティングのためにNVIDIA GPUを活用したい開発者。
ハイライト
- 包括的なエコシステム: 低レベルのバインディングから、カーネル記述用の高レベルなDSLまで、あらゆるものをカバーしています。
- Pythonicなインターフェース: カスタムCUDA抽象化の維持負担を軽減します。
- 完全なAPIカバレッジ:
cuda.bindingsを介してCUDAホストAPIへの完全なアクセスを提供します。 - 統合されたプロファイリング: NsightおよびCUPTIを介したパフォーマンス分析のための組み込みインターフェースが含まれています。
関連
- プロジェクト
- Dispatch
- プロジェクト
- プロジェクト
- プロジェクト