pub enum LaunchBudgetViolation {
BlockExceedsKernelMax {
requested: u32,
kernel_max: u32,
},
BlockExceedsDeviceMax {
requested: u32,
device_max: u32,
},
SharedMemoryExceeded {
static_bytes: u32,
dynamic_bytes: u32,
total: u32,
device_max: u32,
},
RegisterBudgetExceeded {
num_regs: u32,
block_size: u32,
total: u32,
device_max: u32,
},
ZeroBlockSize,
}Expand description
A way a launch violates the kernel’s or the device’s budget.
Every variant names both sides of the comparison: a violation you cannot act on is a log line, not a gate.
Variants§
BlockExceedsKernelMax
Block size exceeds what the compiled kernel supports (usually register pressure).
Fields
BlockExceedsDeviceMax
Block size exceeds the device maximum.
Fields
Static + dynamic shared memory exceeds the per-block limit.
RegisterBudgetExceeded
Registers for the whole block exceed the per-block register file.
Fields
ZeroBlockSize
A zero-sized launch. Always a bug at the call site, never a legal request.
Trait Implementations§
Source§impl Clone for LaunchBudgetViolation
impl Clone for LaunchBudgetViolation
Source§fn clone(&self) -> LaunchBudgetViolation
fn clone(&self) -> LaunchBudgetViolation
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreimpl Copy for LaunchBudgetViolation
Source§impl Debug for LaunchBudgetViolation
impl Debug for LaunchBudgetViolation
Source§impl Display for LaunchBudgetViolation
impl Display for LaunchBudgetViolation
impl Eq for LaunchBudgetViolation
Source§impl Error for LaunchBudgetViolation
impl Error for LaunchBudgetViolation
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for LaunchBudgetViolation
impl PartialEq for LaunchBudgetViolation
impl StructuralPartialEq for LaunchBudgetViolation
Auto Trait Implementations§
impl Freeze for LaunchBudgetViolation
impl RefUnwindSafe for LaunchBudgetViolation
impl Send for LaunchBudgetViolation
impl Sync for LaunchBudgetViolation
impl Unpin for LaunchBudgetViolation
impl UnsafeUnpin for LaunchBudgetViolation
impl UnwindSafe for LaunchBudgetViolation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more