GpuStorage

Struct GpuStorage 

Source
pub struct GpuStorage { /* private fields */ }
Expand description

Buffer storage for AMD GPUs.

This struct manages memory resources for HIP kernels, allowing them to be used as bindings for launching kernels.

Implementations§

Source§

impl GpuStorage

Source

pub fn new(mem_alignment: usize) -> Self

Creates a new GpuStorage instance for the specified HIP stream.

§Arguments
  • mem_alignment - The memory alignment requirement in bytes.
Source

pub fn perform_deallocations(&mut self)

Deallocates buffers marked for deallocation.

This method processes all pending deallocations by freeing the associated GPU memory.

Trait Implementations§

Source§

impl ComputeStorage for GpuStorage

Source§

type Resource = GpuResource

The resource associated type determines the way data is implemented and how it can be accessed by kernels.
Source§

fn alignment(&self) -> usize

The alignment memory is allocated with in this storage.
Source§

fn get(&mut self, handle: &StorageHandle) -> Self::Resource

Returns the underlying resource for a specified storage handle
Source§

fn alloc(&mut self, size: u64) -> Result<StorageHandle, IoError>

Allocates size units of memory and returns a handle to it
Source§

fn dealloc(&mut self, id: StorageId)

Deallocates the memory pointed by the given storage id. Read more
Source§

fn flush(&mut self)

Flush deallocations when required.
Source§

impl Debug for GpuStorage

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Send for GpuStorage

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoComptime for T

Source§

fn comptime(self) -> Self

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V