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
  • プロジェクト
  • プロジェクト
  • プロジェクト