pub struct EngineProgram {Show 21 fields
pub knobs: u8,
pub space: u64,
pub base: u64,
pub granule_log2: u32,
pub job_words: usize,
pub residual: (u32, u32),
pub logits: (u32, u32),
pub greedy: bool,
pub store_beats: u32,
pub tokens: usize,
pub hidden: usize,
pub vocab: usize,
pub ring_rows: usize,
pub regions: u64,
pub region: u64,
pub sequences: usize,
pub ctx: usize,
pub channel_lines: Vec<u64>,
pub streaming: String,
pub contexts: usize,
pub fp_unit: FpUnit,
}Expand description
What a host program runs a model on the engine build with, one token-row a step: written by
write_engine_program as engine.txt, beside the engine’s tables, the memory image and the embedding table.
Fields§
§knobs: u8ENGINE_CONFIG’s knobs, {per_block, two_words, cache_int8, state_f16}.
space: u64The card port’s map: the space’s first logical line, the channel line it starts at, log2 of a granule’s lines.
base: u64§granule_log2: u32§job_words: usizeWords of the step’s jobs after the host’s embedding, table 0’s entries.
residual: (u32, u32)The store’s first beat and beats a row of a row’s embedding and of its logits.
logits: (u32, u32)§greedy: boolWhether a row’s logits slot holds their arg-max and that logit (super::machine::StoreLayout::greedy) in place
of the logits.
store_beats: u32The store’s beats over the program’s rows: a build whose store is smaller cannot run it.
tokens: usizeTokens the embedding table holds, its row’s elements, and the logits a step reads back.
vocab: usize§ring_rows: usizeA row’s ring index is its position modulo this.
regions: u64The first logical line of sequence 0’s region, a region’s lines, the regions, the positions a sequence reaches.
region: u64§sequences: usize§ctx: usize§channel_lines: Vec<u64>Lines of each channel’s image.
streaming: StringThe streaming unit the program’s stream entries are written for, as its build names it
(LOGOS_D5005_STREAMING): empty for the reference engine.
contexts: usizeThe engine’s sequencer contexts the program is written for: sequence s runs in context s mod the contexts, as its row s / the contexts, the store laid for a context’s rows.
fp_unit: FpUnitThe multiplier the program’s numerics take (super::numerics::FpUnit): its build’s products must be the same
(LOGOS_D5005_FP_HARD).
Trait Implementations§
Source§impl Clone for EngineProgram
impl Clone for EngineProgram
Source§fn clone(&self) -> EngineProgram
fn clone(&self) -> EngineProgram
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for EngineProgram
impl Debug for EngineProgram
Source§impl PartialEq for EngineProgram
impl PartialEq for EngineProgram
impl Eq for EngineProgram
impl StructuralPartialEq for EngineProgram
Auto Trait Implementations§
impl Freeze for EngineProgram
impl RefUnwindSafe for EngineProgram
impl Send for EngineProgram
impl Sync for EngineProgram
impl Unpin for EngineProgram
impl UnsafeUnpin for EngineProgram
impl UnwindSafe for EngineProgram
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,
§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>
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>
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)
&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)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§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
§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
key and return true if they are equal.