cuLite v0.3.1
A lite CUDA C++ Interface
Loading...
Searching...
No Matches
Transfer/Copy Data Between Memory Spaces

Utility functions for transferring data between host and device memory. More...

Functions

void culite::memCopyX2X (std::size_t count, const void *src, void *dest, cudaMemcpyKind kind)
 Copies memory between different memory spaces.
template<typename T_Scalar>
void culite::memCopyD2D (std::size_t n, const T_Scalar *src, T_Scalar *dest)
 Copies a vector from device memory to device memory.
template<typename T_Scalar>
void culite::memCopyH2D (std::size_t n, const T_Scalar *src, T_Scalar *dest)
 Copies a vector from host memory to device memory.
template<typename T_Scalar>
void culite::memCopyD2H (std::size_t n, const T_Scalar *src, T_Scalar *dest)
 Copies a vector from device memory to host memory.
template<typename T_Scalar>
void culite::memCopyH2H (std::size_t n, const T_Scalar *src, T_Scalar *dest)
 Copies a vector from host memory to host memory.
template<typename T_Scalar>
void culite::memCopyH2D (std::size_t n, const typename TypeTraits< T_Scalar >::cla3p_type *src, T_Scalar *dest)
 Copies a vector from host memory (cla3p type) to device memory.
template<typename T_Scalar>
void culite::memCopyD2H (std::size_t n, const T_Scalar *src, typename TypeTraits< T_Scalar >::cla3p_type *dest)
 Copies a vector from device memory to host memory (cla3p type).
void culite::memCopyX2X (std::size_t elemSize, std::size_t m, std::size_t n, const void *src, std::size_t lds, void *dest, std::size_t ldd, cudaMemcpyKind kind)
 Copies a 2D matrix between different memory spaces.
template<typename T_Scalar>
void culite::memCopyD2D (std::size_t m, std::size_t n, const T_Scalar *src, std::size_t lds, T_Scalar *dest, std::size_t ldd)
 Copies a 2D matrix from device memory to device memory.
template<typename T_Scalar>
void culite::memCopyH2D (std::size_t m, std::size_t n, const T_Scalar *src, std::size_t lds, T_Scalar *dest, std::size_t ldd)
 Copies a 2D matrix from host memory to device memory.
template<typename T_Scalar>
void culite::memCopyD2H (std::size_t m, std::size_t n, const T_Scalar *src, std::size_t lds, T_Scalar *dest, std::size_t ldd)
 Copies a 2D matrix from device memory to host memory.
template<typename T_Scalar>
void culite::memCopyH2H (std::size_t m, std::size_t n, const T_Scalar *src, std::size_t lds, T_Scalar *dest, std::size_t ldd)
 Copies a 2D matrix from host memory to host memory.
template<typename T_Scalar>
void culite::memCopyH2D (std::size_t m, std::size_t n, const typename TypeTraits< T_Scalar >::cla3p_type *src, std::size_t lds, T_Scalar *dest, std::size_t ldd)
 Copies a 2D matrix from host memory (cla3p type) to device memory.
template<typename T_Scalar>
void culite::memCopyD2H (std::size_t m, std::size_t n, const T_Scalar *src, std::size_t lds, typename TypeTraits< T_Scalar >::cla3p_type *dest, std::size_t ldd)
 Copies a 2D matrix from device memory to host memory (cla3p type).
void culite::memSetZeroX (std::size_t n, void *x, std::size_t elemSize)
 Sets a vector in device memory to zero.
template<typename T_Scalar>
void culite::memSetZero (std::size_t n, T_Scalar *x)
 Sets a vector in device memory to zero.
void culite::memSetZeroX (std::size_t m, std::size_t n, void *a, std::size_t lda, std::size_t elemSize)
 Sets a 2D matrix in device memory to zero.
template<typename T_Scalar>
void culite::memSetZero (std::size_t m, std::size_t n, T_Scalar *a, std::size_t lda)
 Sets a 2D matrix in device memory to zero.

Detailed Description

Utility functions for transferring data between host and device memory.

This module offers a suite of functions and operators to facilitate efficient copying of data between CPU (host) and GPU (device) memory spaces. It supports synchronous and asynchronous transfers, as well as conversions between different data representations.

Function Documentation

◆ memCopyX2X() [1/2]

void culite::memCopyX2X ( std::size_t count,
const void * src,
void * dest,
cudaMemcpyKind kind )

Copies memory between different memory spaces.

Parameters
countNumber of bytes to copy.
srcSource memory pointer.
destDestination memory pointer.
kindType of memory copy operation (device-to-device, host-to-device, etc.).

◆ memCopyD2D() [1/2]

template<typename T_Scalar>
void culite::memCopyD2D ( std::size_t n,
const T_Scalar * src,
T_Scalar * dest )
inline

Copies a vector from device memory to device memory.

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to copy.
srcSource device memory pointer.
destDestination device memory pointer.

◆ memCopyH2D() [1/4]

template<typename T_Scalar>
void culite::memCopyH2D ( std::size_t n,
const T_Scalar * src,
T_Scalar * dest )
inline

Copies a vector from host memory to device memory.

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to copy.
srcSource host memory pointer.
destDestination device memory pointer.
Examples
ex01c_dense_vector_create_from_aux_data.cpp, and ex02d_dense_matrix_create_from_aux_data.cpp.

◆ memCopyD2H() [1/4]

template<typename T_Scalar>
void culite::memCopyD2H ( std::size_t n,
const T_Scalar * src,
T_Scalar * dest )
inline

Copies a vector from device memory to host memory.

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to copy.
srcSource device memory pointer.
destDestination host memory pointer.

◆ memCopyH2H() [1/2]

template<typename T_Scalar>
void culite::memCopyH2H ( std::size_t n,
const T_Scalar * src,
T_Scalar * dest )
inline

Copies a vector from host memory to host memory.

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to copy.
srcSource host memory pointer.
destDestination host memory pointer.

◆ memCopyH2D() [2/4]

template<typename T_Scalar>
void culite::memCopyH2D ( std::size_t n,
const typename TypeTraits< T_Scalar >::cla3p_type * src,
T_Scalar * dest )
inline

Copies a vector from host memory (cla3p type) to device memory.

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to copy.
srcSource host memory pointer with cla3p type.
destDestination device memory pointer.

◆ memCopyD2H() [2/4]

template<typename T_Scalar>
void culite::memCopyD2H ( std::size_t n,
const T_Scalar * src,
typename TypeTraits< T_Scalar >::cla3p_type * dest )
inline

Copies a vector from device memory to host memory (cla3p type).

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to copy.
srcSource device memory pointer.
destDestination host memory pointer with cla3p type.

◆ memCopyX2X() [2/2]

void culite::memCopyX2X ( std::size_t elemSize,
std::size_t m,
std::size_t n,
const void * src,
std::size_t lds,
void * dest,
std::size_t ldd,
cudaMemcpyKind kind )

Copies a 2D matrix between different memory spaces.

Parameters
elemSizeSize of each element in bytes.
mNumber of rows to copy.
nNumber of columns to copy.
srcSource memory pointer.
ldsLeading dimension of the source matrix.
destDestination memory pointer.
lddLeading dimension of the destination matrix.
kindType of memory copy operation (device-to-device, host-to-device, etc.).

◆ memCopyD2D() [2/2]

template<typename T_Scalar>
void culite::memCopyD2D ( std::size_t m,
std::size_t n,
const T_Scalar * src,
std::size_t lds,
T_Scalar * dest,
std::size_t ldd )
inline

Copies a 2D matrix from device memory to device memory.

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to copy.
nNumber of columns to copy.
srcSource device memory pointer.
ldsLeading dimension of the source matrix.
destDestination device memory pointer.
lddLeading dimension of the destination matrix.

◆ memCopyH2D() [3/4]

template<typename T_Scalar>
void culite::memCopyH2D ( std::size_t m,
std::size_t n,
const T_Scalar * src,
std::size_t lds,
T_Scalar * dest,
std::size_t ldd )
inline

Copies a 2D matrix from host memory to device memory.

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to copy.
nNumber of columns to copy.
srcSource host memory pointer.
ldsLeading dimension of the source matrix.
destDestination device memory pointer.
lddLeading dimension of the destination matrix.

◆ memCopyD2H() [3/4]

template<typename T_Scalar>
void culite::memCopyD2H ( std::size_t m,
std::size_t n,
const T_Scalar * src,
std::size_t lds,
T_Scalar * dest,
std::size_t ldd )
inline

Copies a 2D matrix from device memory to host memory.

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to copy.
nNumber of columns to copy.
srcSource device memory pointer.
ldsLeading dimension of the source matrix.
destDestination host memory pointer.
lddLeading dimension of the destination matrix.

◆ memCopyH2H() [2/2]

template<typename T_Scalar>
void culite::memCopyH2H ( std::size_t m,
std::size_t n,
const T_Scalar * src,
std::size_t lds,
T_Scalar * dest,
std::size_t ldd )
inline

Copies a 2D matrix from host memory to host memory.

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to copy.
nNumber of columns to copy.
srcSource host memory pointer.
ldsLeading dimension of the source matrix.
destDestination host memory pointer.
lddLeading dimension of the destination matrix.

◆ memCopyH2D() [4/4]

template<typename T_Scalar>
void culite::memCopyH2D ( std::size_t m,
std::size_t n,
const typename TypeTraits< T_Scalar >::cla3p_type * src,
std::size_t lds,
T_Scalar * dest,
std::size_t ldd )
inline

Copies a 2D matrix from host memory (cla3p type) to device memory.

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to copy.
nNumber of columns to copy.
srcSource host memory pointer with cla3p type.
ldsLeading dimension of the source matrix.
destDestination device memory pointer.
lddLeading dimension of the destination matrix.

◆ memCopyD2H() [4/4]

template<typename T_Scalar>
void culite::memCopyD2H ( std::size_t m,
std::size_t n,
const T_Scalar * src,
std::size_t lds,
typename TypeTraits< T_Scalar >::cla3p_type * dest,
std::size_t ldd )
inline

Copies a 2D matrix from device memory to host memory (cla3p type).

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to copy.
nNumber of columns to copy.
srcSource device memory pointer.
ldsLeading dimension of the source matrix.
destDestination host memory pointer with cla3p type.
lddLeading dimension of the destination matrix.

◆ memSetZeroX() [1/2]

void culite::memSetZeroX ( std::size_t n,
void * x,
std::size_t elemSize )

Sets a vector in device memory to zero.

Parameters
nNumber of elements to set to zero.
xPointer to device memory vector.
elemSizeSize of each element in bytes.

◆ memSetZero() [1/2]

template<typename T_Scalar>
void culite::memSetZero ( std::size_t n,
T_Scalar * x )

Sets a vector in device memory to zero.

Template Parameters
T_ScalarThe scalar type of the vector elements.
Parameters
nNumber of elements to set to zero.
xPointer to device memory vector.

◆ memSetZeroX() [2/2]

void culite::memSetZeroX ( std::size_t m,
std::size_t n,
void * a,
std::size_t lda,
std::size_t elemSize )

Sets a 2D matrix in device memory to zero.

Parameters
mNumber of rows to set to zero.
nNumber of columns to set to zero.
aPointer to device memory matrix.
ldaLeading dimension of the matrix.
elemSizeSize of each element in bytes.

◆ memSetZero() [2/2]

template<typename T_Scalar>
void culite::memSetZero ( std::size_t m,
std::size_t n,
T_Scalar * a,
std::size_t lda )

Sets a 2D matrix in device memory to zero.

Template Parameters
T_ScalarThe scalar type of the matrix elements.
Parameters
mNumber of rows to set to zero.
nNumber of columns to set to zero.
aPointer to device memory matrix.
ldaLeading dimension of the matrix.