cuLite v0.3.1
A lite CUDA C++ Interface
Loading...
Searching...
No Matches
culite::DeviceBufferVoid Class Reference

A RAII wrapper for untyped device memory allocation. More...

Public Member Functions

 DeviceBufferVoid ()
 Default constructor.
 DeviceBufferVoid (std::size_t n)
 Constructs a device buffer with specified capacity.
 ~DeviceBufferVoid ()
 Destructor.
void reserve (std::size_t n)
 Reserves device memory for at least the specified number of bytes.
void clear () noexcept
 Frees the allocated device memory.
void * data () noexcept
 Returns a pointer to the device memory buffer.
const void * data () const noexcept
 Returns a const pointer to the device memory buffer.
std::size_t size () const noexcept
 Returns the number of bytes in the buffer.

Detailed Description

A RAII wrapper for untyped device memory allocation.

This class manages a dynamically allocated buffer of raw bytes on the device. It automatically handles memory allocation and deallocation following RAII principles, ensuring that device memory is properly freed when the buffer goes out of scope. Unlike DeviceBuffer, this class manages untyped memory (void*).

Constructor & Destructor Documentation

◆ DeviceBufferVoid() [1/2]

culite::DeviceBufferVoid::DeviceBufferVoid ( )
inline

Default constructor.

Constructs an empty device buffer with no allocated memory.

◆ DeviceBufferVoid() [2/2]

culite::DeviceBufferVoid::DeviceBufferVoid ( std::size_t n)
inlineexplicit

Constructs a device buffer with specified capacity.

Constructs a device buffer and reserves memory for n bytes on the device.

Parameters
[in]nThe number of bytes to allocate.

◆ ~DeviceBufferVoid()

culite::DeviceBufferVoid::~DeviceBufferVoid ( )
inline

Destructor.

Automatically frees the allocated device memory.

Member Function Documentation

◆ reserve()

void culite::DeviceBufferVoid::reserve ( std::size_t n)
inline

Reserves device memory for at least the specified number of bytes.

If n is greater than the current size, the existing memory is freed and new memory is allocated. If the allocation fails, the buffer is left empty.

Parameters
[in]nThe number of bytes to reserve.

◆ clear()

void culite::DeviceBufferVoid::clear ( )
inlinenoexcept

Frees the allocated device memory.

Releases all device memory and resets the buffer to an empty state.

Note
This function is marked noexcept and is guaranteed not to throw exceptions.

◆ data() [1/2]

void * culite::DeviceBufferVoid::data ( )
inlinenoexcept

Returns a pointer to the device memory buffer.

Provides direct access to the underlying untyped device memory.

Returns
A pointer to the device buffer.

◆ data() [2/2]

const void * culite::DeviceBufferVoid::data ( ) const
inlinenoexcept

Returns a const pointer to the device memory buffer.

Provides direct read-only access to the underlying untyped device memory.

Returns
A const pointer to the device buffer.

◆ size()

std::size_t culite::DeviceBufferVoid::size ( ) const
inlinenoexcept

Returns the number of bytes in the buffer.

Returns the capacity of the buffer (number of bytes allocated).

Returns
The number of bytes the buffer can hold.