Skip to main content

singe_cupti/
lib.rs

1//! Safe Rust wrappers for NVIDIA CUPTI profiling, activity tracing, callbacks,
2//! events, and metrics.
3//!
4//! This crate wraps the raw `singe-cupti-sys` bindings with owned handles,
5//! typed IDs, typed attribute values, closure-based callbacks, and narrow FFI
6//! boundaries.
7
8mod activity;
9mod callback;
10pub mod attributes {
11    pub use crate::activity::{
12        attribute_value, attribute_value_v2, set_attribute_value, set_attribute_value_v2,
13    };
14    pub use crate::types::{ActivityAttribute, ActivityAttributeSetting, ActivityAttributeValue};
15}
16
17pub mod callbacks {
18    pub use crate::callback::*;
19}
20
21pub mod collector {
22    pub use crate::activity::{
23        ActivityBufferCallbackConfig, ActivityCallbackRegistration, ActivityCollector,
24        ActivityFlushTarget, TimestampCallbackRegistration, disable, disable_context, disable_v2,
25        enable, enable_all_sync_records, enable_allocation_source, enable_and_dump,
26        enable_and_dump_v2, enable_context, enable_cuda_event_device_timestamps,
27        enable_device_graph, enable_driver_api, enable_hw_trace, enable_latency_timestamps,
28        enable_launch_attributes, enable_runtime_api, enable_v2, enabled_kinds, flush, flush_all,
29        flush_period, is_tracing_session_running, num_dropped_records, pop_external_correlation_id,
30        push_external_correlation_id, register_callbacks, register_callbacks_v2,
31        register_timestamp_callback,
32    };
33}
34
35pub mod decode {
36    pub use crate::{
37        activity::{ActivityRecord, ActivityRecordData, ActivityRecords},
38        callbacks::{
39            ApiCallbackData, CallbackData, CallbackDataPointer, NvtxData, ResourceData, StateData,
40            SynchronizeData,
41        },
42    };
43}
44
45pub mod records {
46    pub use crate::activity::*;
47}
48
49pub mod context;
50pub mod device;
51pub mod error;
52pub mod event;
53pub mod stream;
54pub mod types;
55
56#[cfg(feature = "testing")]
57pub mod testing;
58
59pub(crate) mod utility;
60
61use singe_cupti_sys as sys;
62
63use singe_core::LibraryVersion;
64
65pub const API_VERSION: LibraryVersion = LibraryVersion::from_raw(130200);
66
67pub fn linked_version() -> LibraryVersion {
68    API_VERSION
69}