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-mlirnumba.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
  • 專案
  • 專案
  • 專案