enum DeviceType
Source: device.joule:19
enum DeviceTypeSource: device.joule:19
struct DeviceIdSource: device.joule:32
fn cpu() -> SelfSource: device.joule:38
fn cuda(index: u32) -> SelfSource: device.joule:42
fn metal() -> SelfSource: device.joule:46
fn coreml() -> SelfSource: device.joule:50
struct DevicePropertiesSource: device.joule:61
struct DeviceFeaturesSource: device.joule:99
fn theoretical_efficiency(&self) -> f64Compute theoretical efficiency (FLOP/J)
Source: device.joule:115
fn ridge_point(&self) -> f64Compute arithmetic intensity for roofline (FLOP/byte)
Source: device.joule:120
struct DeviceStateSource: device.joule:131
enum ThrottleReasonSource: device.joule:163
fn now() -> SelfCreate new state with current values
Source: device.joule:174
struct DeviceHandle to a compute device with monitoring capabilities
Source: device.joule:197
fn new(id: DeviceId) -> Result<Arc<Self>, DeviceError>Create device handle
Source: device.joule:232
fn id(&self) -> &DeviceIdGet device identifier
Source: device.joule:261
fn properties(&self) -> &DevicePropertiesGet device properties
Source: device.joule:266
fn state(&self) -> DeviceStateGet current state
Source: device.joule:271
fn energy_tracker(&self) -> Arc<EnergyTracker>Get energy tracker
Source: device.joule:276
fn update_state(&self)Update device state (called by monitor)
Source: device.joule:281
fn current_power(&self) -> WattsGet current power draw
Source: device.joule:310
fn current_temperature(&self) -> f32Get current temperature
Source: device.joule:315
fn memory_info(&self) -> (u64, u64)Get memory info
Source: device.joule:320
fn is_throttled(&self) -> boolCheck if device is throttled
Source: device.joule:326
fn set_power_limit(&self, limit: Watts) -> Result<(), DeviceError>Set power limit
Source: device.joule:331
fn power_limit(&self) -> Option<Watts>Get power limit
Source: device.joule:354
fn set_temp_limit(&self, limit: f32)Set temperature limit for throttling
Source: device.joule:359
fn energy_since(&self, start: Instant) -> JoulesCalculate energy consumed over time period
Source: device.joule:364
fn avg_power_since(&self, start: Instant) -> WattsGet average power over time period
Source: device.joule:380
fn peak_power_since(&self, start: Instant) -> WattsGet peak power over time period
Source: device.joule:396
fn efficiency(&self) -> DeviceEfficiencyGet efficiency metrics
Source: device.joule:407
fn synchronize(&self) -> Result<(), DeviceError>Synchronize device (wait for all operations)
Source: device.joule:428
fn reset(&self) -> Result<(), DeviceError>Reset device
Source: device.joule:439
fn drop(&mut self)Source: device.joule:450
struct DeviceEfficiencySource: device.joule:459
struct DeviceManagerGlobal device manager
Source: device.joule:475
fn new() -> SelfCreate new device manager
Source: device.joule:494
fn init(&self) -> Result<(), DeviceError>Initialize and enumerate all devices
Source: device.joule:511
fn start_monitoring(&self, interval: Duration)Start background monitoring
Source: device.joule:557
fn stop_monitoring(&self)Stop monitoring
Source: device.joule:575
fn get(&self, id: &DeviceId) -> Option<Arc<Device>>Get device by ID
Source: device.joule:583
fn default(&self) -> Arc<Device>Get default device
Source: device.joule:588
fn set_default(&self, id: DeviceId) -> Result<(), DeviceError>Set default device
Source: device.joule:594
fn all(&self) -> Vec<Arc<Device>>Get all devices
Source: device.joule:604
fn of_type(&self, device_type: DeviceType) -> Vec<Arc<Device>>Get devices of specific type
Source: device.joule:609
fn select_for_workload(&self, workload: &WorkloadProfile) -> Arc<Device>Select best device for workload
Source: device.joule:618
fn score_device_for_workload(&self, device: &Device, workload: &WorkloadProfile) -> f64Source: device.joule:636
fn total_power(&self) -> WattsGet total power consumption across all devices
Source: device.joule:671
fn total_energy(&self) -> JoulesGet total energy consumed since start
Source: device.joule:681
fn default() -> SelfSource: device.joule:692
struct WorkloadProfileSource: device.joule:699
fn from_model_params(Estimate from model parameters
Source: device.joule:714
fn device_manager() -> &'static DeviceManagerGet global device manager
Source: device.joule:746
fn default_device() -> Arc<Device>Get default device
Source: device.joule:751
fn get_device(id: &DeviceId) -> Option<Arc<Device>>Get device by ID
Source: device.joule:756
fn query_device_properties(id: &DeviceId) -> Result<DeviceProperties, DeviceError>Source: device.joule:764
fn query_device_state(id: &DeviceId) -> Result<DeviceState, DeviceError>Source: device.joule:774
fn init_device_backend(id: &DeviceId) -> Result<*mut std::ffi::c_void, DeviceError>Source: device.joule:783
fn cleanup_device_backend(id: &DeviceId, handle: *mut std::ffi::c_void)Source: device.joule:791
fn cpu_properties() -> DevicePropertiesSource: device.joule:800
fn cpu_state() -> DeviceStateSource: device.joule:831
fn cuda_properties(index: u32) -> Result<DeviceProperties, DeviceError>Source: device.joule:849
fn cuda_state(index: u32) -> Result<DeviceState, DeviceError>Source: device.joule:887
fn cuda_init(_index: u32) -> Result<*mut std::ffi::c_void, DeviceError>Source: device.joule:898
fn cuda_cleanup(_handle: *mut std::ffi::c_void)Source: device.joule:909
fn cuda_synchronize(_index: u32) -> Result<(), DeviceError>Source: device.joule:916
fn cuda_reset(_index: u32) -> Result<(), DeviceError>Source: device.joule:927
fn set_nvidia_power_limit(_index: u32, _limit: Watts) -> Result<(), DeviceError>Source: device.joule:938
fn metal_properties() -> Result<DeviceProperties, DeviceError>Source: device.joule:950
fn metal_state() -> Result<DeviceState, DeviceError>Source: device.joule:987
fn metal_init() -> Result<*mut std::ffi::c_void, DeviceError>Source: device.joule:997
fn metal_cleanup(_handle: *mut std::ffi::c_void)Source: device.joule:1007
fn metal_synchronize() -> Result<(), DeviceError>Source: device.joule:1009
fn coreml_properties() -> Result<DeviceProperties, DeviceError>Source: device.joule:1020
fn set_amd_power_limit(_index: u32, _limit: Watts) -> Result<(), DeviceError>Source: device.joule:1058
fn rocm_synchronize(_index: u32) -> Result<(), DeviceError>Source: device.joule:1062
fn rocm_reset(_index: u32) -> Result<(), DeviceError>Source: device.joule:1066
fn get_cuda_device_count() -> Result<u32, DeviceError>Source: device.joule:1071
enum DeviceErrorSource: device.joule:1081
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::ResultSource: device.joule:1091
fn from(w: f64) -> SelfSource: device.joule:1107