pub struct ScheduleSpace {
pub workgroup_sizes: Vec<u32>,
pub items_per_invocation: Vec<u32>,
pub vector_widths: Vec<u32>,
}Fields§
§workgroup_sizes: Vec<u32>§items_per_invocation: Vec<u32>§vector_widths: Vec<u32>Implementations§
Source§impl ScheduleSpace
impl ScheduleSpace
Sourcepub fn candidates(
&self,
kernel: &KernelSpec,
constraints: &AdapterConstraints,
) -> Vec<Schedule>
pub fn candidates( &self, kernel: &KernelSpec, constraints: &AdapterConstraints, ) -> Vec<Schedule>
Generate the pruned candidate schedules for kernel on this adapter.
Pruning here is limited to what is portably knowable: adapter workgroup/
invocation limits and Schedule::validate, plus warp-size alignment.
Known limitations (plan §6, honest — not implemented): candidates are NOT
pruned by a device-relative roofline (wgpu exposes no peak FLOPS/bandwidth — see
crate::wgsl_forge::roofline), by compute-unit saturation (no CU/SM count is
exposed by wgpu), or by a cross-vendor thermal/power model (no portable
temperature sensor; thermal pacing is handled NVIDIA-only via nvidia-smi in the
auto-tune-all CLI loop, not here). Any of these would need a calibration
micro-benchmark or a platform-specific probe.
Trait Implementations§
Source§impl Clone for ScheduleSpace
impl Clone for ScheduleSpace
Source§fn clone(&self) -> ScheduleSpace
fn clone(&self) -> ScheduleSpace
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 moreSource§impl Debug for ScheduleSpace
impl Debug for ScheduleSpace
Source§impl Default for ScheduleSpace
impl Default for ScheduleSpace
Source§impl<'de> Deserialize<'de> for ScheduleSpace
impl<'de> Deserialize<'de> for ScheduleSpace
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ScheduleSpace
impl PartialEq for ScheduleSpace
Source§fn eq(&self, other: &ScheduleSpace) -> bool
fn eq(&self, other: &ScheduleSpace) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for ScheduleSpace
impl Serialize for ScheduleSpace
impl Eq for ScheduleSpace
impl StructuralPartialEq for ScheduleSpace
Auto Trait Implementations§
impl Freeze for ScheduleSpace
impl RefUnwindSafe for ScheduleSpace
impl Send for ScheduleSpace
impl Sync for ScheduleSpace
impl Unpin for ScheduleSpace
impl UnsafeUnpin for ScheduleSpace
impl UnwindSafe for ScheduleSpace
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.