← Back

Module cuda

fn init() -> Result<(), GpuError>

Source: gpu/cuda.joule:10

fn cuInit(flags: u32) -> i32;

Source: gpu/cuda.joule:12

fn list_devices() -> Vec<GpuDevice>

Source: gpu/cuda.joule:25

fn cuDeviceGetCount(count: *mut i32) -> i32;

Source: gpu/cuda.joule:27

fn cuDeviceGet(device: *mut i32, ordinal: i32) -> i32;

Source: gpu/cuda.joule:28

fn cuDeviceGetName(name: *mut i8, len: i32, device: i32) -> i32;

Source: gpu/cuda.joule:29

fn cuDeviceTotalMem_v2(bytes: *mut usize, device: i32) -> i32;

Source: gpu/cuda.joule:30

fn cuDeviceGetAttribute(pi: *mut i32, attrib: i32, device: i32) -> i32;

Source: gpu/cuda.joule:31

fn get_driver_version() -> String

Get CUDA driver version string

Source: gpu/cuda.joule:167

fn cuDriverGetVersion(version: *mut i32) -> i32;

Source: gpu/cuda.joule:169

fn create_context(device_id: i32) -> Result<*mut std::ffi::c_void, GpuError>

Source: gpu/cuda.joule:184

fn cuCtxCreate_v2(

Source: gpu/cuda.joule:186

fn current_device() -> Option<i32>

Get current CUDA device

Source: gpu/cuda.joule:207

fn cudaGetDevice(device: *mut i32) -> i32;

Source: gpu/cuda.joule:209

fn enable_peer_access(device: i32, peer_device: i32) -> Result<(), GpuError>

Source: gpu/cuda.joule:221

fn cudaDeviceEnablePeerAccess(peer_device: i32, flags: u32) -> i32;

Source: gpu/cuda.joule:223

fn can_access_peer(device: i32, peer_device: i32) -> bool

Check if peer-to-peer access is possible

Source: gpu/cuda.joule:233

fn cudaDeviceCanAccessPeer(

Source: gpu/cuda.joule:235

fn memory_info() -> Result<(usize, usize), GpuError>

Source: gpu/cuda.joule:248

fn cudaMemGetInfo(free: *mut usize, total: *mut usize) -> i32;

Source: gpu/cuda.joule:250

fn set_device_flags(flags: u32) -> Result<(), GpuError>

Set CUDA device flags

Source: gpu/cuda.joule:262

fn cudaSetDeviceFlags(flags: u32) -> i32;

Source: gpu/cuda.joule:264

const DEVICE_SCHEDULE_AUTO: u32

Source: gpu/cuda.joule:274

const DEVICE_SCHEDULE_SPIN: u32

Source: gpu/cuda.joule:275

const DEVICE_SCHEDULE_YIELD: u32

Source: gpu/cuda.joule:276

const DEVICE_SCHEDULE_BLOCKING_SYNC: u32

Source: gpu/cuda.joule:277

const DEVICE_MAP_HOST: u32

Source: gpu/cuda.joule:278

fn init() -> Result<(), GpuError>

Initialize NVML

Source: gpu/cuda.joule:289

fn nvmlInit_v2() -> i32;

Source: gpu/cuda.joule:291

fn get_power_usage(device_index: u32) -> Option<u32>

Get GPU power usage in milliwatts

Source: gpu/cuda.joule:308

fn nvmlDeviceGetHandleByIndex_v2(

Source: gpu/cuda.joule:310

fn nvmlDeviceGetPowerUsage(

Source: gpu/cuda.joule:314

fn get_temperature(device_index: u32) -> Option<u32>

Get GPU temperature in Celsius

Source: gpu/cuda.joule:334

fn nvmlDeviceGetHandleByIndex_v2(

Source: gpu/cuda.joule:336

fn nvmlDeviceGetTemperature(

Source: gpu/cuda.joule:340

fn get_utilization(device_index: u32) -> Option<(u32, u32)>

Get GPU utilization (0-100)

Source: gpu/cuda.joule:361

fn nvmlDeviceGetHandleByIndex_v2(

Source: gpu/cuda.joule:363

fn nvmlDeviceGetUtilizationRates(

Source: gpu/cuda.joule:367

struct NvmlUtilization

Source: gpu/cuda.joule:374

fn get_clock_speeds(device_index: u32) -> Option<(u32, u32)>

Get current GPU clock speeds in MHz

Source: gpu/cuda.joule:393

fn nvmlDeviceGetHandleByIndex_v2(

Source: gpu/cuda.joule:395

fn nvmlDeviceGetClockInfo(

Source: gpu/cuda.joule:399