ITADN
NVIDIA/cuda-python
NVIDIA/cuda-python · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

cuda-python

CUDA Python 是从 Python 访问 NVIDIA CUDA 平台的入口。它由多个组件组成:

  • cuda.core: 以 Pythonic 方式访问 CUDA Runtime 及其他核心功能

  • cuda.bindings: 针对 CUDA C API 的低层 Python 绑定

  • cuda.pathfinder: 用于定位用户 Python 环境中已安装的 CUDA 组件的工具

  • cuda.compute: 一个 Python 模块,便于访问 CCCL 高效且可定制的并行算法,例如可在 host 上调用的 sortscanreducetransform

  • numba-cuda-mlir: Numba CUDA 的演进版本,通过改进其技术基础和性能,提供 CUDA Python JIT 编译的未来方向。它目前支持在 Python 中开发 CUDA SIMT 内核,为加速设备库提供 Python 绑定,并作为加速库中用户定义函数的编译器。

  • numba.cuda: 一种 Python DSL,暴露 CUDA SIMT 编程模型,并将受限的 Python 代码子集编译为 CUDA 内核和设备函数

  • cuda.tile: 一种新的 Python DSL,暴露 CUDA Tile 编程模型,允许用户在 CUDA 内核中编写类似 NumPy 的代码

  • nvmath-python: 以 Pythonic 方式访问 NVIDIA CPU 和 GPU 数学库,提供 hostdevicedistributed API。它还提供了针对 host C API 的低层 Python 绑定(nvmath.bindings)。

  • nvshmem4py: NVSHMEM 库的 Pythonic 接口,使 Python 应用程序能够利用 NVSHMEM 的高性能 PGAS(Partitioned Global Address Space)编程模型进行 GPU 加速计算

  • Nsight Python: Python 内核性能分析接口,使用 NVIDIA Nsight Tools 自动化多个内核配置的性能分析

  • CUPTI Python: 用于创建针对 CUDA Python 应用程序的性能分析工具的 Python API,通过 CUDA Profiling Tools Interface (CUPTI) 实现

  • Accelerated Computing Hub: 与 GPU 计算相关的开源学习材料。您可以免费找到用户指南、教程以及其他作品,供所有对 GPU 计算感兴趣的学习者使用。

CUDA Python 目前正在进行全面改造,以改进现有组件并引入新组件。此前 cuda-python 包中可用的所有功能将继续保留,请参阅 cuda.bindings 文档以获取安装指南和更多详细信息。

cuda-python 作为元包

cuda-python 正在重构为一个包含一系列子包的元包。每个子包独立进行版本管理,允许按需安装各个组件。

子包:cuda.core

cuda.core 包提供了符合 Python 习惯的、地道的 Python 风格访问 CUDA Runtime 及其他功能的方式。

其目标包括:

  1. 为 CUDA Driver、Runtime 和 JIT 编译器工具链提供**地道的(“Pythonic”)**访问方式
  2. 通过确保端到端的 CUDA 开发能够快速且完全在 Python 中完成,专注于提升开发者生产力
  3. 对于从零开始的新 Python GPU 库,避免自研针对 CUDA 的 Python 抽象层
  4. 减轻开发者维护和跟进最新 CUDA 功能的负担
  5. 为当前及未来的 CUDA 开发者降低学习曲线

子包:cuda.bindings

cuda.bindings 包是一套标准的低级接口,提供对 CUDA 主机 API 的全面覆盖和从 Python 进行的访问。

可用接口列表如下:

  • CUDA Driver
  • CUDA Runtime
  • NVRTC
  • nvJitLink
  • NVVM
  • nvFatbin
  • cuFile
  • NVML

许可证

CUDA Python 采用 Apache License 2.0 授权。cuda.core 的第三方归属信息列于 cuda_core/NOTICE