pub enum ProfileTarget {
Show 14 variants
Kernel {
name: String,
size: u32,
roofline: bool,
metrics: Option<String>,
},
Cublas {
op: String,
size: u32,
},
Wgpu {
shader: String,
dispatch: Option<String>,
target: Option<String>,
},
Metal {
shader: String,
dispatch: Option<u32>,
},
Simd {
function: String,
size: u32,
arch: String,
},
Wasm {
function: String,
size: u32,
},
Quant {
kernel: Option<String>,
size: Option<String>,
all: bool,
},
Scalar {
function: String,
size: u32,
},
Parallel {
function: String,
size: u32,
threads: Option<String>,
},
Compare {
kernel: String,
size: u32,
backends: Vec<String>,
},
Scaling {
size: u32,
max_threads: Option<usize>,
runs: usize,
},
Binary {
path: String,
kernel_filter: Option<String>,
trace: bool,
duration: Option<String>,
},
Python {
args: Vec<String>,
},
Library {
so: String,
symbol: String,
args: Option<String>,
},
}Expand description
Targets accepted by cgp profile.
Variants§
Kernel
Profile a CUDA PTX kernel via ncu + CUPTI
Fields
Cublas
Profile cuBLAS/cuBLASLt operations
Wgpu
Profile wgpu compute shaders
Fields
Metal
Profile Apple Metal compute kernels
Simd
Profile CPU SIMD functions
Fields
Wasm
Profile WASM SIMD128 via wasmtime
Quant
Profile quantized CPU kernels (Q4K/Q6K)
Fields
Scalar
Profile scalar baseline
Parallel
Profile Rayon parallel workloads
Fields
Compare
Cross-backend comparison
Fields
backends: Vec<String>Backends to compare (comma-separated)
#2583: this was a free-form String, split on , and matched in
analysis::compare::measure_backend, whose other => arm warns to
stderr and continues. So --backends avx2,cudaa exited 0 and
printed a comparison table silently missing the CUDA row — and under
--json the omitted row is the only signal. Rejecting the typo at
parse time is the same fix apr serve run --backend got.
Scaling
Parallel scaling sweep (thread count vs throughput)
Fields
Binary
Profile an arbitrary binary
Fields
Python
Profile a Python script
Library
Profile a shared library function
Trait Implementations§
Source§impl Clone for ProfileTarget
impl Clone for ProfileTarget
Source§fn clone(&self) -> ProfileTarget
fn clone(&self) -> ProfileTarget
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProfileTarget
impl Debug for ProfileTarget
Source§impl FromArgMatches for ProfileTarget
impl FromArgMatches for ProfileTarget
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>
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>
ArgMatches to self.Source§impl Subcommand for ProfileTarget
impl Subcommand for ProfileTarget
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
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
Self can parse a specific subcommandAuto Trait Implementations§
impl Freeze for ProfileTarget
impl RefUnwindSafe for ProfileTarget
impl Send for ProfileTarget
impl Sync for ProfileTarget
impl Unpin for ProfileTarget
impl UnsafeUnpin for ProfileTarget
impl UnwindSafe for ProfileTarget
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> ⓘ
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> ⓘ
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