ViennaCL - The Vienna Computing Library  1.5.0
Namespaces | Typedefs | Functions
viennacl::backend::cpu_ram Namespace Reference

Provides implementations for handling memory buffers in CPU RAM. More...

Namespaces

namespace  detail
 

Holds implementation details for handling memory buffers in CPU RAM. Not intended for direct use by library users.


Typedefs

typedef
viennacl::tools::shared_ptr
< char > 
handle_type

Functions

handle_type memory_create (vcl_size_t size_in_bytes, const void *host_ptr=NULL)
 Creates an array of the specified size in main RAM. If the second argument is provided, the buffer is initialized with data from that pointer.
void memory_copy (handle_type const &src_buffer, handle_type &dst_buffer, vcl_size_t src_offset, vcl_size_t dst_offset, vcl_size_t bytes_to_copy)
 Copies 'bytes_to_copy' bytes from address 'src_buffer + src_offset' to memory starting at address 'dst_buffer + dst_offset'.
void memory_write (handle_type &dst_buffer, vcl_size_t dst_offset, vcl_size_t bytes_to_copy, const void *ptr, bool)
 Writes data from main RAM identified by 'ptr' to the buffer identified by 'dst_buffer'.
void memory_read (handle_type const &src_buffer, vcl_size_t src_offset, vcl_size_t bytes_to_copy, void *ptr, bool)
 Reads data from a buffer back to main RAM.

Detailed Description

Provides implementations for handling memory buffers in CPU RAM.


Typedef Documentation


Function Documentation

void viennacl::backend::cpu_ram::memory_copy ( handle_type const &  src_buffer,
handle_type &  dst_buffer,
vcl_size_t  src_offset,
vcl_size_t  dst_offset,
vcl_size_t  bytes_to_copy 
) [inline]

Copies 'bytes_to_copy' bytes from address 'src_buffer + src_offset' to memory starting at address 'dst_buffer + dst_offset'.

Parameters:
src_bufferA smart pointer to the begin of an allocated buffer
dst_bufferA smart pointer to the end of an allocated buffer
src_offsetOffset of the first byte to be written from the address given by 'src_buffer' (in bytes)
dst_offsetOffset of the first byte to be written to the address given by 'dst_buffer' (in bytes)
bytes_to_copyNumber of bytes to be copied
handle_type viennacl::backend::cpu_ram::memory_create ( vcl_size_t  size_in_bytes,
const void *  host_ptr = NULL 
) [inline]

Creates an array of the specified size in main RAM. If the second argument is provided, the buffer is initialized with data from that pointer.

Parameters:
size_in_bytesNumber of bytes to allocate
host_ptrPointer to data which will be copied to the new array. Must point to at least 'size_in_bytes' bytes of data.
void viennacl::backend::cpu_ram::memory_read ( handle_type const &  src_buffer,
vcl_size_t  src_offset,
vcl_size_t  bytes_to_copy,
void *  ptr,
bool   
) [inline]

Reads data from a buffer back to main RAM.

Parameters:
src_bufferA smart pointer to the beginning of an allocated source buffer
src_offsetOffset of the first byte to be read from the beginning of src_buffer (in bytes_
bytes_to_copyNumber of bytes to be read
ptrLocation in main RAM where to read data should be written to
void viennacl::backend::cpu_ram::memory_write ( handle_type &  dst_buffer,
vcl_size_t  dst_offset,
vcl_size_t  bytes_to_copy,
const void *  ptr,
bool   
) [inline]

Writes data from main RAM identified by 'ptr' to the buffer identified by 'dst_buffer'.

Parameters:
dst_bufferA smart pointer to the beginning of an allocated buffer
dst_offsetOffset of the first written byte from the beginning of 'dst_buffer' (in bytes)
bytes_to_copyNumber of bytes to be copied
ptrPointer to the first byte to be written