MAGMA  2.3.0
Matrix Algebra for GPU and Multicore Architectures
 All Classes Files Functions Friends Groups Pages

Functions

void magmablas_cswapdblk (magma_int_t n, magma_int_t nb, magmaFloatComplex_ptr dA, magma_int_t ldda, magma_int_t inca, magmaFloatComplex_ptr dB, magma_int_t lddb, magma_int_t incb, magma_queue_t queue)
 cswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU. More...
 
void magmablas_dswapdblk (magma_int_t n, magma_int_t nb, magmaDouble_ptr dA, magma_int_t ldda, magma_int_t inca, magmaDouble_ptr dB, magma_int_t lddb, magma_int_t incb, magma_queue_t queue)
 dswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU. More...
 
void magmablas_sswapdblk (magma_int_t n, magma_int_t nb, magmaFloat_ptr dA, magma_int_t ldda, magma_int_t inca, magmaFloat_ptr dB, magma_int_t lddb, magma_int_t incb, magma_queue_t queue)
 sswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU. More...
 
void magmablas_zswapdblk (magma_int_t n, magma_int_t nb, magmaDoubleComplex_ptr dA, magma_int_t ldda, magma_int_t inca, magmaDoubleComplex_ptr dB, magma_int_t lddb, magma_int_t incb, magma_queue_t queue)
 zswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU. More...
 
void magmablas_zswapdblk_batched (magma_int_t n, magma_int_t nb, magmaDoubleComplex **dA_array, magma_int_t ldda, magma_int_t inca, magmaDoubleComplex **dB_array, magma_int_t lddb, magma_int_t incb, magma_int_t batchCount, magma_queue_t queue)
 zswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU. More...
 

Detailed Description

Function Documentation

void magmablas_cswapdblk ( magma_int_t  n,
magma_int_t  nb,
magmaFloatComplex_ptr  dA,
magma_int_t  ldda,
magma_int_t  inca,
magmaFloatComplex_ptr  dB,
magma_int_t  lddb,
magma_int_t  incb,
magma_queue_t  queue 
)

cswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU.

It swaps nblocks = n/nb blocks. For i = 1 .. nblocks, submatrices dA( i*nb*inca, i*nb ) and dB( i*nb*incb, i*nb ) are swapped.

Parameters
[in]nINTEGER The number of columns of the matrices dA and dB. N >= 0.
[in]nbINTEGER The size of diagonal blocks. NB > 0 and NB <= maximum threads per CUDA block (512 or 1024).
[in,out]dACOMPLEX array, dimension (LDDA,N) The matrix dA.
[in]lddaINTEGER The leading dimension of the array dA. LDDA >= (nblocks - 1)*nb*inca + nb.
[in]incaINTEGER The row increment between diagonal blocks of dA. inca >= 0. For example, inca = 1 means blocks are stored on the diagonal at dA(i*nb, i*nb), inca = 0 means blocks are stored side-by-side at dA(0, i*nb).
[in,out]dBCOMPLEX array, dimension (LDDB,N) The matrix dB.
[in]lddbINTEGER The leading dimension of the array db. LDDB >= (nblocks - 1)*nb*incb + nb.
[in]incbINTEGER The row increment between diagonal blocks of dB. incb >= 0. See inca.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_dswapdblk ( magma_int_t  n,
magma_int_t  nb,
magmaDouble_ptr  dA,
magma_int_t  ldda,
magma_int_t  inca,
magmaDouble_ptr  dB,
magma_int_t  lddb,
magma_int_t  incb,
magma_queue_t  queue 
)

dswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU.

It swaps nblocks = n/nb blocks. For i = 1 .. nblocks, submatrices dA( i*nb*inca, i*nb ) and dB( i*nb*incb, i*nb ) are swapped.

Parameters
[in]nINTEGER The number of columns of the matrices dA and dB. N >= 0.
[in]nbINTEGER The size of diagonal blocks. NB > 0 and NB <= maximum threads per CUDA block (512 or 1024).
[in,out]dADOUBLE PRECISION array, dimension (LDDA,N) The matrix dA.
[in]lddaINTEGER The leading dimension of the array dA. LDDA >= (nblocks - 1)*nb*inca + nb.
[in]incaINTEGER The row increment between diagonal blocks of dA. inca >= 0. For example, inca = 1 means blocks are stored on the diagonal at dA(i*nb, i*nb), inca = 0 means blocks are stored side-by-side at dA(0, i*nb).
[in,out]dBDOUBLE PRECISION array, dimension (LDDB,N) The matrix dB.
[in]lddbINTEGER The leading dimension of the array db. LDDB >= (nblocks - 1)*nb*incb + nb.
[in]incbINTEGER The row increment between diagonal blocks of dB. incb >= 0. See inca.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_sswapdblk ( magma_int_t  n,
magma_int_t  nb,
magmaFloat_ptr  dA,
magma_int_t  ldda,
magma_int_t  inca,
magmaFloat_ptr  dB,
magma_int_t  lddb,
magma_int_t  incb,
magma_queue_t  queue 
)

sswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU.

It swaps nblocks = n/nb blocks. For i = 1 .. nblocks, submatrices dA( i*nb*inca, i*nb ) and dB( i*nb*incb, i*nb ) are swapped.

Parameters
[in]nINTEGER The number of columns of the matrices dA and dB. N >= 0.
[in]nbINTEGER The size of diagonal blocks. NB > 0 and NB <= maximum threads per CUDA block (512 or 1024).
[in,out]dAREAL array, dimension (LDDA,N) The matrix dA.
[in]lddaINTEGER The leading dimension of the array dA. LDDA >= (nblocks - 1)*nb*inca + nb.
[in]incaINTEGER The row increment between diagonal blocks of dA. inca >= 0. For example, inca = 1 means blocks are stored on the diagonal at dA(i*nb, i*nb), inca = 0 means blocks are stored side-by-side at dA(0, i*nb).
[in,out]dBREAL array, dimension (LDDB,N) The matrix dB.
[in]lddbINTEGER The leading dimension of the array db. LDDB >= (nblocks - 1)*nb*incb + nb.
[in]incbINTEGER The row increment between diagonal blocks of dB. incb >= 0. See inca.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_zswapdblk ( magma_int_t  n,
magma_int_t  nb,
magmaDoubleComplex_ptr  dA,
magma_int_t  ldda,
magma_int_t  inca,
magmaDoubleComplex_ptr  dB,
magma_int_t  lddb,
magma_int_t  incb,
magma_queue_t  queue 
)

zswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU.

It swaps nblocks = n/nb blocks. For i = 1 .. nblocks, submatrices dA( i*nb*inca, i*nb ) and dB( i*nb*incb, i*nb ) are swapped.

Parameters
[in]nINTEGER The number of columns of the matrices dA and dB. N >= 0.
[in]nbINTEGER The size of diagonal blocks. NB > 0 and NB <= maximum threads per CUDA block (512 or 1024).
[in,out]dACOMPLEX_16 array, dimension (LDDA,N) The matrix dA.
[in]lddaINTEGER The leading dimension of the array dA. LDDA >= (nblocks - 1)*nb*inca + nb.
[in]incaINTEGER The row increment between diagonal blocks of dA. inca >= 0. For example, inca = 1 means blocks are stored on the diagonal at dA(i*nb, i*nb), inca = 0 means blocks are stored side-by-side at dA(0, i*nb).
[in,out]dBCOMPLEX_16 array, dimension (LDDB,N) The matrix dB.
[in]lddbINTEGER The leading dimension of the array db. LDDB >= (nblocks - 1)*nb*incb + nb.
[in]incbINTEGER The row increment between diagonal blocks of dB. incb >= 0. See inca.
[in]queuemagma_queue_t Queue to execute in.
void magmablas_zswapdblk_batched ( magma_int_t  n,
magma_int_t  nb,
magmaDoubleComplex **  dA_array,
magma_int_t  ldda,
magma_int_t  inca,
magmaDoubleComplex **  dB_array,
magma_int_t  lddb,
magma_int_t  incb,
magma_int_t  batchCount,
magma_queue_t  queue 
)

zswapdblk swaps diagonal blocks of size nb x nb between matrices dA and dB on the GPU.

It swaps nblocks = ceil(n/nb) blocks. For i = 1 .. nblocks, submatrices dA( i*nb*inca, i*nb ) and dB( i*nb*incb, i*nb ) are swapped.

Parameters
[in]nINTEGER The number of columns of the matrices dA and dB. N >= 0.
[in]nbINTEGER The size of diagonal blocks. NB > 0 and NB <= maximum threads per CUDA block (512 or 1024).
[in,out]dA_arrayArray of pointers, dimension (batchCount). Each is a COMPLEX_16 array dA, dimension (ldda,n) The matrix dA.
[in]lddaINTEGER The leading dimension of each array dA. ldda >= (nblocks - 1)*nb*inca + nb.
[in]incaINTEGER The row increment between diagonal blocks of dA. inca >= 0. For example, inca = 1 means blocks are stored on the diagonal at dA(i*nb, i*nb), inca = 0 means blocks are stored side-by-side at dA(0, i*nb).
[in,out]dB_arrayArray of pointers, dimension (batchCount). Each is a COMPLEX_16 array dB, dimension (lddb,n) The matrix dB.
[in]lddbINTEGER The leading dimension of each array dB. lddb >= (nblocks - 1)*nb*incb + nb.
[in]incbINTEGER The row increment between diagonal blocks of dB. incb >= 0. See inca.
[in]batchCountINTEGER The number of matrices to operate on.
[in]queuemagma_queue_t Queue to execute in.