Skip to content
/ nvtx Public

A safe Rust FFI binding for the NVIDIA® Tools Extension SDK (NVTX).

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

simbleau/nvtx

Repository files navigation

NVIDIA Logo

NVTX

Crates.io Documentation Build Status dependency status

A safe and ergonomic #![no_std] crate to bind the NVIDIA® Tools Extension SDK (NVTX) with zero-cost abstraction.

NVIDIA® Tools Extension SDK (NVTX) is a C-based Application Programming Interface (API) for annotating events, code ranges, and resources in your applications. Official documentation for NVIDIA®'s NVTX can be found here.

This library is a wrapper over that SDK, safely, and with zero-cost abstractions. This library facilitates integration into the rich CPU and GPU profiling tools provided by NVIDIA®, such as NSight Systems. The primary motivation for this library is to assist research GPU analysts and bring NVIDIA® tools to Rust. This crate is #![no_std].

➡️ Quickstart

The crate is published on crates.io and the easiest way to use nvtx is by adding the dependency to your Cargo.toml file:

nvtx = "1.1.1"

Example

There are several examples in the examples folder which can be executed through tools such as NSight Systems. Each example has a README document with easy to read steps, screenshots, and documentation. Check out the first example, 'Hello, World!'

🙋 If you need support, please file an issue or start a discussion.


🤝 Contributing

If you support the project, consider sponsoring or buying a coffee. Otherwise, any help is welcome, including pull requests. Please check the active issues if you'd like to help.

The Rust code of conduct applies.


📜 Changelog

See the changelog.


🔏 License

This project is dual-licensed under both Apache 2.0 and MIT licenses.