pub struct Chip {
pub name: &'static str,
pub tiers: Vec<Tier>,
pub matrix: Vec<(Precision, Fact<f64>)>,
pub stage_overhead: Option<Fact<f64>>,
pub link: Option<Link>,
pub power: Option<Fact<f64>>,
pub sources: &'static [&'static str],
}Expand description
A chip as a decode sees it.
Fields§
§name: &'static str§tiers: Vec<Tier>Fastest first.
matrix: Vec<(Precision, Fact<f64>)>Dense matrix-engine operations per second, by operand precision.
stage_overhead: Option<Fact<f64>>What a dependent stage costs beyond its roofline: a kernel launch, a pipeline sync. None is
undeclared, NOT zero.
link: Option<Link>§power: Option<Fact<f64>>Watts.
sources: &'static [&'static str]Implementations§
Source§impl Chip
impl Chip
Sourcepub fn rtx3060() -> Chip
pub fn rtx3060() -> Chip
The local RTX 3060, the one GPU whose per-stage overhead is measured here.
pub fn a100_sxm4_80gb() -> Chip
pub fn h100_sxm() -> Chip
pub fn h100_nvl() -> Chip
Sourcepub fn groq_lpu_v1() -> Chip
pub fn groq_lpu_v1() -> Chip
The first-generation GroqChip: weights live in its on-die SRAM. Its chip-to-chip links are counted but their rates are not published.
Sourcepub fn cerebras_wse3() -> Chip
pub fn cerebras_wse3() -> Chip
Cerebras WSE-3, one wafer. Its matrix rate is published without a precision, so it is not priced.
pub fn by_name(name: &str) -> Option<Chip>
Trait Implementations§
impl StructuralPartialEq for Chip
Auto Trait Implementations§
impl Freeze for Chip
impl RefUnwindSafe for Chip
impl Send for Chip
impl Sync for Chip
impl Unpin for Chip
impl UnsafeUnpin for Chip
impl UnwindSafe for Chip
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.