Skip to main content

NeuralAccelerator

Trait NeuralAccelerator 

Source
pub trait NeuralAccelerator {
    type Error;

    // Required methods
    fn is_available(&self) -> bool;
    fn name(&self) -> &'static str;
    fn upload_neurons(&mut self, neurons: &[u8]) -> Result<(), Self::Error>;
    fn upload_synapses(&mut self, synapses: &[u8]) -> Result<(), Self::Error>;
    fn process_burst(&mut self) -> Result<u32, Self::Error>;
    fn download_neurons(
        &mut self,
        buffer: &mut [u8],
    ) -> Result<usize, Self::Error>;

    // Provided methods
    fn performance_ops_per_sec(&self) -> u64 { ... }
    fn reset(&mut self) -> Result<(), Self::Error> { ... }
}
Expand description

Neural accelerator abstraction for hardware acceleration (Hailo, TPU, etc.)

Required Associated Types§

Source

type Error

Platform-specific error type

Required Methods§

Source

fn is_available(&self) -> bool

Check if accelerator is available and ready

§Returns

True if accelerator is ready to use

Source

fn name(&self) -> &'static str

Get accelerator name/identifier

§Returns

Human-readable accelerator name

Source

fn upload_neurons(&mut self, neurons: &[u8]) -> Result<(), Self::Error>

Upload neuron state to accelerator

§Arguments
  • neurons - Serialized neuron state data
§Returns

Ok(()) or error

Source

fn upload_synapses(&mut self, synapses: &[u8]) -> Result<(), Self::Error>

Upload synapse connectivity to accelerator

§Arguments
  • synapses - Serialized synapse data
§Returns

Ok(()) or error

Source

fn process_burst(&mut self) -> Result<u32, Self::Error>

Process burst on accelerator

§Returns

Number of neurons that fired, or error

Source

fn download_neurons(&mut self, buffer: &mut [u8]) -> Result<usize, Self::Error>

Download updated neuron state from accelerator

§Arguments
  • buffer - Buffer to write neuron state into
§Returns

Number of bytes written or error

Provided Methods§

Source

fn performance_ops_per_sec(&self) -> u64

Get accelerator performance metrics (TOPS, GOPS, etc.)

§Returns

Performance in operations per second

Source

fn reset(&mut self) -> Result<(), Self::Error>

Reset accelerator to initial state

§Returns

Ok(()) or error

Implementors§