pub enum ShaderAction {
ListKernels,
Doctor,
Roofline {
kernel: String,
n: u64,
json: bool,
},
ProfileHardware {
export: Option<PathBuf>,
json: bool,
},
Generate {
kernel: String,
target: String,
schedule: ScheduleArgs,
out: Option<PathBuf>,
json: bool,
},
Validate {
input: Option<PathBuf>,
kernel: String,
target: String,
schedule: ScheduleArgs,
manifest: Option<PathBuf>,
json: bool,
},
Certify {
kernel: String,
schedule: ScheduleArgs,
length: usize,
warmups: usize,
samples: usize,
manifest: Option<PathBuf>,
cache_dir: Option<PathBuf>,
dry_run: bool,
},
Tune {
kernel: String,
length: usize,
warmups: usize,
initial_samples: usize,
finalist_samples: usize,
finalists: usize,
max_candidates: usize,
manifest: Option<PathBuf>,
cache_dir: Option<PathBuf>,
dry_run: bool,
},
AutoTuneAll {
length: usize,
warmups: usize,
max_candidates: usize,
cache_dir: Option<PathBuf>,
update_local_manifest: bool,
dry_run: bool,
budget_ms: Option<u64>,
thermal_limit: Option<f32>,
},
}Variants§
ListKernels
List deterministic kernels currently known to WGSL Forge.
Doctor
Check that the native backend toolchains (wgpu adapter, DXC, CUDA) are present and report how the Forge will degrade if any are missing.
Roofline
Print the roofline estimate (FLOP/byte, memory- vs compute-bound) for a kernel.
ProfileHardware
Probe the local adapter and print a rich hardware/topology profile.
Fields
Generate
Generate one deterministic WGSL module.
Fields
§
schedule: ScheduleArgsValidate
Run Naga parsing and semantic validation.
Fields
§
schedule: ScheduleArgsCertify
Create a real pipeline, compare GPU output with the CPU oracle, and profile it.
Fields
§
schedule: ScheduleArgsTune
Search the bounded schedule space and certify the fastest correct variant.
Fields
AutoTuneAll
Tune every GPU-certifiable kernel, reusing the topology-keyed cache.
Fields
§
cache_dir: Option<PathBuf>Cache directory to read existing manifests from and (with –update-local-manifest) write new ones to.
Trait Implementations§
Source§impl Debug for ShaderAction
impl Debug for ShaderAction
Source§impl FromArgMatches for ShaderAction
impl FromArgMatches for ShaderAction
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches to self.Source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
Assign values from
ArgMatches to self.Source§impl Subcommand for ShaderAction
impl Subcommand for ShaderAction
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Append to [
Command] so it can instantiate self via
[FromArgMatches::update_from_arg_matches_mut] Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Test whether
Self can parse a specific subcommandAuto Trait Implementations§
impl Freeze for ShaderAction
impl RefUnwindSafe for ShaderAction
impl Send for ShaderAction
impl Sync for ShaderAction
impl Unpin for ShaderAction
impl UnsafeUnpin for ShaderAction
impl UnwindSafe for ShaderAction
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.
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
§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