pub struct StreamEntry {
pub fmt: u32,
pub blocks: u32,
pub rows: u32,
pub stripes: u32,
pub turns: u32,
pub tensor: u32,
pub greedy: bool,
pub fold: Fold,
pub runs: [TileRun; 4],
}Expand description
What a hybrid engine’s streaming unit takes of one streamed tensor beside its job, as the engine reads it from three
lines of the card’s memory at the tensor’s address: line 0 the tensor’s format’s place in the unit’s set, its blocks
a row, its rows, its stripes, each channel’s turn (two bits a channel from the lowest), its tag in the image and
whether a job of it is greedy, a 32-bit word each from the lowest; lines 1 and 2 the four channels’ tile runs,
channel c‘s from bit 256 c of the two lines’ 1024, eight words: its count, line, lines, bytes, last tile’s lines
and bytes, first row and row step. A greedy job writes each token-row’s arg-max of the matrix’s rows and that row’s
value, a beat a token-row, in place of the rows: a head’s. The greedy flag is bit 0 of line 0’s seventh word, and from
bit 1 its two bits are how the job of the tensor folds each sum into its output slot (Fold::code): a step uses
each matrix in one job.
Fields§
§fmt: u32§blocks: u32§rows: u32§stripes: u32§turns: u32§tensor: u32§greedy: bool§fold: Fold§runs: [TileRun; 4]Implementations§
Source§impl StreamEntry
impl StreamEntry
Sourcepub fn of(
image: &Image,
k: usize,
set: &ColumnSet,
) -> Result<StreamEntry, String>
pub fn of( image: &Image, k: usize, set: &ColumnSet, ) -> Result<StreamEntry, String>
Image tensor k’s entry for a unit built for set over image, laid in stripes on four channels: an error
naming what the unit cannot take — a format outside its set, a matrix not laid in stripes, a field past its
port.
Trait Implementations§
Source§impl Clone for StreamEntry
impl Clone for StreamEntry
Source§fn clone(&self) -> StreamEntry
fn clone(&self) -> StreamEntry
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for StreamEntry
impl Debug for StreamEntry
Source§impl PartialEq for StreamEntry
impl PartialEq for StreamEntry
impl Copy for StreamEntry
impl Eq for StreamEntry
impl StructuralPartialEq for StreamEntry
Auto Trait Implementations§
impl Freeze for StreamEntry
impl RefUnwindSafe for StreamEntry
impl Send for StreamEntry
impl Sync for StreamEntry
impl Unpin for StreamEntry
impl UnsafeUnpin for StreamEntry
impl UnwindSafe for StreamEntry
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.