nvtx
Python NVTX - Python code annotation library
Decision gist · record as of 2026-08-14
Yes, if you profile GPU-accelerated Python workloads with NVIDIA Nsight Systems. The package is actively maintained, has no runtime dependencies, supports current Python versions, and zero known vulnerabilities. The license treatment is unclear—verify the Apache-2.0 WITH LLVM-exception clause if you have strict licensing requirements. Install friction is medium due to platform-specific wheels, but prebuilt binaries are available.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires NVIDIA Nsight Systems to collect and visualize profiling data; annotations alone do nothing without an external profiler.
- Medium install friction due to platform-specific wheels (manylinux, Windows, ARM64 variants across Python 3.10–3.14), but prebuilt binaries are available for all major platforms.
- Actively maintained with a release 2 days old.
License · maintenance · safety
Apache-2.0 WITH LLVM-exception (unclear) — Licensed under Apache-2.0 WITH LLVM-exception; license treatment is marked unclear, so verify the exception clause's implications for your use case before relying on this in proprietary or restricted-license contexts.
last release 2026-08-12 (2 days) · last repo commit 2026-08-10 · 551 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 2,057,516 downloads/mo, #3,335 on PyPI
Alternatives
Verify before relying
import nvtx
import time
@nvtx.annotate(color="blue")
def my_function():
with nvtx.annotate("my_loop", color="red"):
time.sleep(1)
my_function()- Whether the LLVM-exception clause in the Apache-2.0 license affects commercial or closed-source use.
- Performance overhead of annotation decorators in production code paths.
What it is and what it does
nvtx is a Python wrapper around NVIDIA's NVTX (NVIDIA Tools Extension) library, allowing you to mark regions of Python code with named annotations and colors. When you run your code under NVIDIA Nsight Systems with the nvtx trace enabled, these annotations appear as labeled intervals in the profiler's timeline, making it easier to identify which functions and loops consume time during execution.
The package provides decorators and context managers to annotate functions and code blocks, plus support for counter annotations and event payloads. It has no runtime dependencies and works on Linux (x86_64 and aarch64), Windows (x86_64 and ARM64), and supports Python 3.9 through 3.14. Annotations can be disabled via the NVTX_DISABLE environment variable for zero-overhead in production when profiling is not active.
Use it for
- Profile GPU-accelerated Python applications to identify bottlenecks in compute kernels and data transfer.
- Annotate machine learning training loops to visualize which stages (data loading, forward pass, backward pass) consume the most time.
- Mark critical sections in multi-threaded or async code to correlate Python execution with GPU activity in Nsight Systems.
- Add custom counter annotations to track metrics like batch size or loss during profiling sessions.
- Instrument data processing pipelines to see where time is spent across preprocessing, model inference, and postprocessing stages.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you profile GPU-accelerated Python workloads with NVIDIA Nsight Systems.
The package is actively maintained, has no runtime dependencies, supports current Python versions, and zero known vulnerabilities. The license treatment is unclear—verify the Apache-2.0 WITH LLVM-exception clause if you have strict licensing requirements. Install friction is medium due to platform-specific wheels, but prebuilt binaries are available.
Install
nvtx on PyPI
Before you install
Medium install friction due to platform-specific wheels (manylinux, Windows, ARM64 variants across Python 3.10–3.14), but prebuilt binaries are available for all major platforms. Actively maintained with a release 2 days old.
Requires NVIDIA Nsight Systems to collect and visualize profiling data; annotations alone do nothing without an external profiler.
License in practice
Licensed under Apache-2.0 WITH LLVM-exception; license treatment is marked unclear, so verify the exception clause's implications for your use case before relying on this in proprietary or restricted-license contexts.
Quickstart
import nvtx
import time
@nvtx.annotate(color="blue")
def my_function():
with nvtx.annotate("my_loop", color="red"):
time.sleep(1)
my_function()
Verify before relying
- Whether the LLVM-exception clause in the Apache-2.0 license affects commercial or closed-source use.
- Performance overhead of annotation decorators in production code paths.
Package facts
| License | Apache-2.0 WITH LLVM-exception unclear |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Medium. Platform-specific wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,057,516 / month, #3,335 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: DevelopersProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.9Topic :: DatabaseTopic :: Scientific/Engineering |
Evidence: nvtx-0.2.16-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; nvtx-0.2.16-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; nvtx-0.2.16-cp310-cp310-win_amd64.whl; nvtx-0.2.16-cp310-cp310-win_arm64.whl; nvtx-0.2.16-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; nvtx-0.2.16-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; nvtx-0.2.16-cp311-cp311-win_amd64.whl; nvtx-0.2.16-cp311-cp311-win_arm64.whl; nvtx-0.2.16-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; nvtx-0.2.16-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; nvtx-0.2.16-cp312-cp312-win_amd64.whl; nvtx-0.2.16-cp312-cp312-win_arm64.whl; nvtx-0.2.16-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; nvtx-0.2.16-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; nvtx-0.2.16-cp313-cp313-win_amd64.whl; nvtx-0.2.16-cp313-cp313-win_arm64.whl; nvtx-0.2.16-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; nvtx-0.2.16-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; nvtx-0.2.16-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl; nvtx-0.2.16-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python profiling annotations”
- nvtxnvtx annotates Python code regions with named markers and colors for…
- nvidia-nvtxProvides a Python API for annotating events and code ranges in…
- nvidia-nvtx-cu11Provides a C-based API for annotating events, code ranges, and…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also nvidia-nvtx-cu11 · nvidia-nvtx · nvidia-nvtx-cu12 · cupti-python · line-profiler · torch-tb-profiler · nvidia-cuda-cupti · scalene · cuda-python · nvidia-cuda-cupti-cu12