NVIDIA/cuda-python
CUDA Python: Performance meets Productivity
解決的問題
它提供了一種從 Python 存取 NVIDIA CUDA 平台的統一方式,消除了開發人員編寫低層 C 程式碼來管理 GPU 資源和執行並行演算法的需求。其目標是透過允許完全在 Python 中進行端到端的 GPU 程式設計,降低 CUDA 開發的學習曲線並提高開發人員的生產力。
工作原理
該專案結構為一個包含多個專業子套件的元套件:
- 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。
適用對象
想要使用 Python 利用 NVIDIA GPU 進行加速運算的開發人員,從需要高層慣用抽象的開發人員到需要對 CUDA C API 進行低層控制的開發人員。
亮點
- 全面的生態系統: 涵蓋了從低層綁定到用於編寫核心的高層 DSL 的所有內容。
- Pythonic 介面: 減輕了維護自定義 CUDA 抽象的負擔。
- 全 API 覆蓋: 透過
cuda.bindings提供對 CUDA 主機 API 的完整存取。 - 整合分析: 包括透過 Nsight 和 CUPTI 進行效能分析的內建介面。
相關
- 專案
- Dispatch
- 專案
- 專案
- 專案