pub struct FixedFunction {
pub stage_id: String,
pub input_elems: usize,
pub output_elems: usize,
pub dtype: DType,
}Expand description
A stage baked into hardware that cannot be reprogrammed at run time.
An FPGA bitstream implements exactly one datapath. Synthesis takes minutes,
so the mesh cannot ship it a graph the way it ships one to a CPU/GPU worker
— which is why rlx-fpga is a code generator and deliberately does not
implement the runtime Backend trait. Instead the board joins as a rank
that advertises this descriptor, and the coordinator only ever assigns it
the matching stage.
Fields§
§stage_id: StringIdentifier of the synthesized stage. The coordinator sets the same id on
the StageSpec it ships; a mismatch is refused before any work moves.
input_elems: usizeElement count of the activation this datapath consumes.
output_elems: usizeElement count it produces.
dtype: DTypeElement type the datapath was synthesized for (INT8 datapaths are common on FPGA; the host still exchanges f32 on the wire and the board shim does the conversion).
Implementations§
Trait Implementations§
Source§impl Clone for FixedFunction
impl Clone for FixedFunction
Source§impl Debug for FixedFunction
impl Debug for FixedFunction
Source§impl<'de> Deserialize<'de> for FixedFunction
impl<'de> Deserialize<'de> for FixedFunction
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for FixedFunction
Source§impl PartialEq for FixedFunction
impl PartialEq for FixedFunction
Source§impl Serialize for FixedFunction
impl Serialize for FixedFunction
impl StructuralPartialEq for FixedFunction
Auto Trait Implementations§
impl Freeze for FixedFunction
impl RefUnwindSafe for FixedFunction
impl Send for FixedFunction
impl Sync for FixedFunction
impl Unpin for FixedFunction
impl UnsafeUnpin for FixedFunction
impl UnwindSafe for FixedFunction
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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