singe-cupti 0.1.0-alpha.5

Safe Rust wrappers for NVIDIA CUPTI profiling and callback APIs.
Documentation
//! Safe Rust wrappers for NVIDIA CUPTI profiling, activity tracing, callbacks,
//! events, and metrics.
//!
//! This crate wraps the raw `singe-cupti-sys` bindings with owned handles,
//! typed IDs, typed attribute values, closure-based callbacks, and narrow FFI
//! boundaries.

mod activity;
mod callback;
pub mod attributes {
    pub use crate::activity::{
        attribute_value, attribute_value_v2, set_attribute_value, set_attribute_value_v2,
    };
    pub use crate::types::{ActivityAttribute, ActivityAttributeSetting, ActivityAttributeValue};
}

pub mod callbacks {
    pub use crate::callback::*;
}

pub mod collector {
    pub use crate::activity::{
        ActivityBufferCallbackConfig, ActivityCallbackRegistration, ActivityCollector,
        ActivityFlushTarget, TimestampCallbackRegistration, disable, disable_context, disable_v2,
        enable, enable_all_sync_records, enable_allocation_source, enable_and_dump,
        enable_and_dump_v2, enable_context, enable_cuda_event_device_timestamps,
        enable_device_graph, enable_driver_api, enable_hw_trace, enable_latency_timestamps,
        enable_launch_attributes, enable_runtime_api, enable_v2, enabled_kinds, flush, flush_all,
        flush_period, is_tracing_session_running, num_dropped_records, pop_external_correlation_id,
        push_external_correlation_id, register_callbacks, register_callbacks_v2,
        register_timestamp_callback,
    };
}

pub mod decode {
    pub use crate::{
        activity::{ActivityRecord, ActivityRecordData, ActivityRecords},
        callbacks::{
            ApiCallbackData, CallbackData, CallbackDataPointer, NvtxData, ResourceData, StateData,
            SynchronizeData,
        },
    };
}

pub mod records {
    pub use crate::activity::*;
}

pub mod context;
pub mod device;
pub mod error;
pub mod event;
pub mod stream;
pub mod types;

#[cfg(feature = "testing")]
pub mod testing;

pub(crate) mod utility;

use singe_cupti_sys as sys;

use singe_core::LibraryVersion;

pub const API_VERSION: LibraryVersion = LibraryVersion::from_raw(130200);

pub fn linked_version() -> LibraryVersion {
    API_VERSION
}