pub struct PhysicalMap {
pub image: Image,
pub tensors_end: u64,
pub lines: u64,
pub granule: u64,
pub base: u64,
pub channel_lines: Vec<u64>,
}Expand description
A machine layout on the card’s channels.
Fields§
§image: Image§tensors_end: u64The layout’s first byte past its tensors: where the space after the weights starts.
lines: u64Logical lines of the space after the weights.
granule: u64§base: u64The first channel line past the weight image, the same on every channel.
channel_lines: Vec<u64>Channel lines each channel holds in all.
Implementations§
Source§impl PhysicalMap
impl PhysicalMap
Sourcepub fn d5005(
machine: &MachineLayout,
beat: Beat,
) -> Result<PhysicalMap, ImageError>
pub fn d5005( machine: &MachineLayout, beat: Beat, ) -> Result<PhysicalMap, ImageError>
machine on the D5005’s channels at beat, its granule the standard engine plan’s state chunk.
Sourcepub fn of(
machine: &MachineLayout,
layout: &ImageLayout,
granule: u64,
) -> Result<PhysicalMap, ImageError>
pub fn of( machine: &MachineLayout, layout: &ImageLayout, granule: u64, ) -> Result<PhysicalMap, ImageError>
machine on the channels of layout, the space after the weights dealt in granules of granule lines.
Sourcepub fn flat(
machine: &MachineLayout,
layout: &ImageLayout,
granule: u64,
) -> Result<PhysicalMap, ImageError>
pub fn flat( machine: &MachineLayout, layout: &ImageLayout, granule: u64, ) -> Result<PhysicalMap, ImageError>
machine on the channels of layout with no weight image: every byte, the tensors’ with the rest, dealt in
granules of granule lines from the channels’ first line — the memory as an engine that reads its weights a
line at a time by address finds it (card_port_verilog).
Sourcepub fn hybrid(
machine: &MachineLayout,
layout: &ImageLayout,
granule: u64,
) -> Result<(PhysicalMap, Vec<usize>, Compaction), ImageError>
pub fn hybrid( machine: &MachineLayout, layout: &ImageLayout, granule: u64, ) -> Result<(PhysicalMap, Vec<usize>, Compaction), ImageError>
The hybrid engine’s memory: the matrices machine‘s matvec jobs stream in their image under layout (in stripes
when it has one), and the rest of the memory compacted (Compaction) with the streamed tensors’ stream entries
after it, as one logical space from logical byte 0 dealt in granules of granule lines past the image, the space
the reference engine’s card port reads; with the image’s tensors’ indices in the machine’s and the compaction.
Sourcepub fn locate(&self, at: u64) -> (u32, u64)
pub fn locate(&self, at: u64) -> (u32, u64)
The channel and the channel byte logical byte at of the space after the weights lives at.
Sourcepub fn runs(&self, at: u64, bytes: u64) -> Vec<Run>
pub fn runs(&self, at: u64, bytes: u64) -> Vec<Run>
The channel runs that hold logical bytes [at, at + bytes) of the space after the weights, one on each channel
the bytes touch, in channel order.
Sourcepub fn ring_row(
&self,
machine: &MachineLayout,
s: usize,
layer: usize,
p: usize,
) -> Vec<Run>
pub fn ring_row( &self, machine: &MachineLayout, s: usize, layer: usize, p: usize, ) -> Vec<Run>
Sequence s’s conv-ring row for position p in Gated-DeltaNet layer layer.
Sourcepub fn memory(
&self,
machine: &MachineLayout,
s: usize,
layer: usize,
head: usize,
) -> Vec<Run>
pub fn memory( &self, machine: &MachineLayout, s: usize, layer: usize, head: usize, ) -> Vec<Run>
Value head head’s memory of sequence s in Gated-DeltaNet layer layer.
Sourcepub fn log(
&self,
machine: &MachineLayout,
s: usize,
layer: usize,
entries: Range<usize>,
) -> Vec<Run>
pub fn log( &self, machine: &MachineLayout, s: usize, layer: usize, entries: Range<usize>, ) -> Vec<Run>
Sequence s’s log in Gated-DeltaNet layer layer: its count line and entries entries.
Sourcepub fn cache(
&self,
machine: &MachineLayout,
s: usize,
layer: usize,
p: usize,
) -> Vec<Run>
pub fn cache( &self, machine: &MachineLayout, s: usize, layer: usize, p: usize, ) -> Vec<Run>
Sequence s’s cache rows of positions 0..=p in attention layer layer: every cached head’s key rows, value
rows and, for an int8 cache, their scales.
Sourcepub fn channel_bytes(&self, memory: &[u8], weights: &[Vec<u8>]) -> Vec<Vec<u8>>
pub fn channel_bytes(&self, memory: &[u8], weights: &[Vec<u8>]) -> Vec<Vec<u8>>
The channels’ bytes of memory, the machine’s whole memory: the weight image’s from weights (its channels’
bytes, Image::fill) and every byte after the weights where PhysicalMap::locate puts it.
Trait Implementations§
Source§impl Clone for PhysicalMap
impl Clone for PhysicalMap
Source§fn clone(&self) -> PhysicalMap
fn clone(&self) -> PhysicalMap
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for PhysicalMap
impl Debug for PhysicalMap
Source§impl PartialEq for PhysicalMap
impl PartialEq for PhysicalMap
impl Eq for PhysicalMap
impl StructuralPartialEq for PhysicalMap
Auto Trait Implementations§
impl Freeze for PhysicalMap
impl RefUnwindSafe for PhysicalMap
impl Send for PhysicalMap
impl Sync for PhysicalMap
impl Unpin for PhysicalMap
impl UnsafeUnpin for PhysicalMap
impl UnwindSafe for PhysicalMap
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.