use super::super::{result::CuptiError, sys};
use crate::driver;
pub unsafe fn configure_pc_sampling(
ctx: driver::sys::CUcontext,
config: *mut sys::CUpti_ActivityPCSamplingConfig,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityConfigurePCSampling(ctx, config) }.result()
}
pub unsafe fn configure_unified_memory_counter(
config: *mut sys::CUpti_ActivityUnifiedMemoryCounterConfig,
count: u32,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityConfigureUnifiedMemoryCounter(config, count) }.result()
}
pub fn disable(kind: sys::CUpti_ActivityKind) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityDisable(kind) }.result()
}
pub unsafe fn disable_context(
context: driver::sys::CUcontext,
kind: sys::CUpti_ActivityKind,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityDisableContext(context, kind) }.result()
}
pub fn enable(kind: sys::CUpti_ActivityKind) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnable(kind) }.result()
}
#[cfg(any(feature = "cuda-12080", feature = "cuda-12090", feature = "cuda-13000"))]
pub fn enable_all_sync_records(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableAllSyncRecords(enable) }.result()
}
#[cfg(any(
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000"
))]
pub fn enable_allocation_source(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableAllocationSource(enable) }.result()
}
#[cfg(any(
feature = "cuda-11070",
feature = "cuda-11080",
feature = "cuda-12000",
feature = "cuda-12010",
feature = "cuda-12020",
feature = "cuda-12030",
feature = "cuda-12040",
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000"
))]
pub fn enable_and_dump(kind: sys::CUpti_ActivityKind) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableAndDump(kind) }.result()
}
pub unsafe fn enable_context(
context: driver::sys::CUcontext,
kind: sys::CUpti_ActivityKind,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableContext(context, kind) }.result()
}
#[cfg(feature = "cuda-13000")]
pub fn enable_cuda_event_device_timestamps(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableCudaEventDeviceTimestamps(enable) }.result()
}
#[cfg(any(
feature = "cuda-12030",
feature = "cuda-12040",
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000"
))]
pub fn enable_device_graph(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableDeviceGraph(enable) }.result()
}
#[cfg(any(
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000"
))]
pub fn enable_driver_api(cbid: sys::CUpti_CallbackId, enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableDriverApi(cbid, enable) }.result()
}
#[cfg(any(feature = "cuda-12080", feature = "cuda-12090", feature = "cuda-13000"))]
pub fn enable_hw_trace(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableHWTrace(enable) }.result()
}
pub fn enable_latency_timestamps(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableLatencyTimestamps(enable) }.result()
}
pub fn enable_launch_attributes(enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableLaunchAttributes(enable) }.result()
}
#[cfg(any(
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000"
))]
pub fn enable_runtime_api(cbid: sys::CUpti_CallbackId, enable: u8) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityEnableRuntimeApi(cbid, enable) }.result()
}
pub unsafe fn flush(
context: driver::sys::CUcontext,
stream_id: u32,
flag: u32,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityFlush(context, stream_id, flag) }.result()
}
pub fn flush_all(flag: u32) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityFlushAll(flag) }.result()
}
pub fn flush_period(time: u32) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityFlushPeriod(time) }.result()
}
pub unsafe fn get_attribute(
attr: sys::CUpti_ActivityAttribute,
value_size: *mut usize,
value: *mut core::ffi::c_void,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityGetAttribute(attr, value_size, value) }.result()
}
pub unsafe fn get_next_record(
buffer: *mut u8,
valid_buffer_size_bytes: usize,
record: *mut *mut sys::CUpti_Activity,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityGetNextRecord(buffer, valid_buffer_size_bytes, record) }.result()
}
pub unsafe fn get_num_dropped_records(
context: driver::sys::CUcontext,
stream_id: u32,
dropped: *mut usize,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityGetNumDroppedRecords(context, stream_id, dropped) }.result()
}
pub unsafe fn pop_external_correlation_id(
kind: sys::CUpti_ExternalCorrelationKind,
last_id: *mut u64,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityPopExternalCorrelationId(kind, last_id) }.result()
}
pub fn push_external_correlation_id(
kind: sys::CUpti_ExternalCorrelationKind,
id: u64,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityPushExternalCorrelationId(kind, id) }.result()
}
pub fn register_callbacks(
func_buffer_requested: sys::CUpti_BuffersCallbackRequestFunc,
func_buffer_completed: sys::CUpti_BuffersCallbackCompleteFunc,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityRegisterCallbacks(func_buffer_requested, func_buffer_completed) }
.result()
}
#[cfg(any(
feature = "cuda-11070",
feature = "cuda-11080",
feature = "cuda-12000",
feature = "cuda-12010",
feature = "cuda-12020",
feature = "cuda-12030",
feature = "cuda-12040",
feature = "cuda-12050",
feature = "cuda-12060",
feature = "cuda-12080",
feature = "cuda-12090",
feature = "cuda-13000"
))]
pub fn register_timestamp_callback(
func_timestamp: sys::CUpti_TimestampCallbackFunc,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivityRegisterTimestampCallback(func_timestamp) }.result()
}
pub unsafe fn set_attribute(
attr: sys::CUpti_ActivityAttribute,
value_size: *mut usize,
value: *mut core::ffi::c_void,
) -> Result<(), CuptiError> {
unsafe { sys::cuptiActivitySetAttribute(attr, value_size, value) }.result()
}