cupti-python
NVIDIA CUPTI Python Library
What it is and what it does
CUPTI Python is NVIDIA's official Python interface to CUPTI (CUDA Profiling Tools Interface), enabling developers to build custom profiling and tracing tools for CUDA Python applications. It exposes a subset of CUPTI's C Activity and Callback APIs, allowing you to instrument GPU kernels, memory operations, and other CUDA events at runtime.
The package is tightly coupled to NVIDIA's CUDA ecosystem: it requires the nvidia-cuda-cupti system library, cuda-bindings for low-level GPU interaction, cuda-pathfinder for locating CUDA installations, numpy for array handling, and pyelftools for binary introspection. It ships as precompiled wheels for Linux x86_64 and aarch64 on Python 3.10 through 3.14, making installation straightforward on supported platforms but impossible elsewhere.
Use it for:
- Profile CUDA Python workloads to identify kernel bottlenecks and memory transfer overhead.
- Trace GPU activity in real time to correlate host and device execution for debugging.
- Build custom performance monitoring dashboards for long-running CUDA applications.
- Analyze callback events to understand GPU scheduling and resource contention patterns.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides Python bindings to NVIDIA's CUPTI profiling and tracing APIs for instrumenting CUDA applications with activity and callback-based performance monitoring.
Yes, if you are profiling or tracing CUDA Python applications on Linux and accept NVIDIA's proprietary license terms. The package is actively maintained, has no known vulnerabilities, and fills a gap in GPU observability for Python. No, if you need cross-platform support, open-source licensing, or are developing competing GPU profiling tools—the EULA explicitly forbids the latter.
Install
cupti-python on PyPI
pip
pip install cupti-pythonuv
uv add cupti-pythonpoetry
poetry add cupti-pythonInstalling cupti-python
Before you install
Medium install friction due to compiled wheels for specific Python versions (3.10–3.14) and Linux platforms only. Active maintenance with recent release (17 days old). Depends on nvidia-cuda-cupti, cuda-bindings, cuda-pathfinder, numpy, and pyelftools.
License in practice
Licensed under NVIDIA's proprietary EULA with significant restrictions: use limited to CUDA Python applications on NVIDIA GPUs, reverse engineering prohibited, distribution requires NVIDIA notice, and competing product development forbidden. Not open source.
Quickstart
pip install cupti-python
import cupti_python
# Use CUPTI APIs to set up profiling/tracing for CUDA applications
Requires Linux (manylinux_2_24+), Python 3.10–3.14, NVIDIA CUDA toolkit, and an NVIDIA GPU.
Verify before relying
- Specific CUPTI C Activity and Callback API subset supported—which APIs are included or excluded
- Performance overhead of profiling/tracing relative to native CUPTI C
- Compatibility with different CUDA compute capabilities or driver versions
Package facts
| License | NVIDIA SOFTWARE LICENSE AGREEMENT IMPORTANT NOTICE - PLEASE READ AND AGREE BEFORE USING THE SOFTWARE This software license agreement ("Agreement") is a legal agreement between you, whether an… (full text in the JSON record) (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 5 — nvidia-cuda-cupti, cuda-bindings, cuda-pathfinder, numpy, pyelftools |
| Maintenance | actively maintained — 17 days since the last release |
| First released | |
| Downloads | 599,662/month — #5,825 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cupti_python-13.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cupti_python-13.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cupti_python-13.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cupti_python-13.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cupti_python-13.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cupti_python-13.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cupti_python-13.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cupti_python-13.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; cupti_python-13.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; cupti_python-13.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
nvidia-cuda-cupti-cu11Provides NVIDIA CUDA profiling runtime…
unclear · top 5,000 on PyPI
nvidia-cuda-cupti-cu12Provides GPU profiling runtime libraries for…
unclear · top 1,000 on PyPI
nvidia-cuda-cuptiProvides CUDA profiling runtime libraries that…
unclear · top 1,000 on PyPI
nvidia-nvtx-cu12Provides a C-based API for annotating events,…
permissive · top 1,000 on PyPI
nvidia-nvtxProvides a Python API for annotating events and…
unclear · top 1,000 on PyPI
nvidia-nvtx-cu11Provides a C-based API for annotating events,…
unclear · top 5,000 on PyPI
cuda-pythoncuda-python is a metapackage providing Pythonic…
unclear · top 5,000 on PyPI
nvtxnvtx annotates Python code regions with named…
unclear · top 5,000 on PyPI
nvidia-cufft-cu12Provides NVIDIA CUFFT native runtime libraries…
unclear · top 1,000 on PyPI
nccl4pynccl4py provides Python bindings to NVIDIA's…
permissive · top 15,000 on PyPI