- Notifications
You must be signed in to change notification settings - Fork233
CUDA Python: Performance meets Productivity
License
NVIDIA/cuda-python
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
CUDA Python is the home for accessing NVIDIA’s CUDA platform from Python. It consists of multiple components:
- cuda.core: Pythonic access to CUDA Runtime and other core functionality
- cuda.bindings: Low-level Python bindings to CUDA C APIs
- cuda.pathfinder: Utilities for locating CUDA components installed in the user's Python environment
- cuda.coop: A Python module providing CCCL's reusable block-wide and warp-widedevice primitives for use within Numba CUDA kernels
- cuda.compute: A Python module for easy access to CCCL's highly efficient and customizable parallel algorithms, like
sort,scan,reduce,transform, etc. that are callable on thehost - numba.cuda: A Python DSL that exposes CUDASIMT programming model and compiles a restricted subset of Python code into CUDA kernels and device functions
- cuda.tile: A new Python DSL that exposes CUDATile programming model and allows users to write NumPy-like code in CUDA kernels
- nvmath-python: Pythonic access to NVIDIA CPU & GPU Math Libraries, withhost,device, anddistributed APIs. It also provides low-level Python bindings to host C APIs (nvmath.bindings).
- nvshmem4py: Pythonic interface to the NVSHMEM library, enabling Python applications to leverage NVSHMEM's high-performance PGAS (Partitioned Global Address Space) programming model for GPU-accelerated computing
- Nsight Python: Python kernel profiling interface that automates performance analysis across multiple kernel configurations using NVIDIA Nsight Tools
- CUPTI Python: Python APIs for creation of profiling tools that target CUDA Python applications via the CUDA Profiling Tools Interface (CUPTI)
CUDA Python is currently undergoing an overhaul to improve existing and introduce new components. All of the previously available functionality from thecuda-python package will continue to be available, please refer to thecuda.bindings documentation for installation guide and further detail.
cuda-python is being restructured to become a metapackage that contains a collection of subpackages. Each subpackage is versioned independently, allowing installation of each component as needed.
Thecuda.core package offers idiomatic, Pythonic access to CUDA Runtime and other functionalities.
The goals are to
- Provideidiomatic ("Pythonic") access to CUDA Driver, Runtime, and JIT compiler toolchain
- Focus ondeveloper productivity by ensuring end-to-end CUDA development can be performed quickly and entirely in Python
- Avoid homegrown Python abstractions for CUDA for new Python GPU libraries starting from scratch
- Ease developerburden of maintaining and catching up with latest CUDA features
- Flatten the learning curve for current and future generations of CUDA developers
Thecuda.bindings package is a standard set of low-level interfaces, providing full coverage of and access to the CUDA host APIs from Python.
The list of available interfaces is:
- CUDA Driver
- CUDA Runtime
- NVRTC
- nvJitLink
- NVVM
- cuFile
About
CUDA Python: Performance meets Productivity
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.