Skip to main content

GpuState

Trait GpuState 

pub trait GpuState:
    Send
    + Sync
    + 'static {
    // Required methods
    fn to_control_block_bytes(&self) -> Vec<u8> ⓘ;
    fn from_control_block_bytes(bytes: &[u8]) -> Result<Self, RingKernelError>
       where Self: Sized;

    // Provided methods
    fn state_version() -> u32 { ... }
    fn prefer_embedded() -> bool
       where Self: Sized { ... }
}
Expand description

Trait for GPU-compatible state types that may be stored externally.

Unlike EmbeddedState, types implementing GpuState can be larger than 24 bytes and are stored in separate GPU memory.

Required Methods§

fn to_control_block_bytes(&self) -> Vec<u8> ⓘ

Serialize state to bytes for GPU transfer.

fn from_control_block_bytes(bytes: &[u8]) -> Result<Self, RingKernelError>
where Self: Sized,

Deserialize state from bytes read from GPU.

Provided Methods§

fn state_version() -> u32

State version for compatibility checking.

fn prefer_embedded() -> bool
where Self: Sized,

Whether this state should be embedded (if small enough).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

§

impl<T> GpuState for T
where T: EmbeddedState,