MAGMA 2.9.0
Matrix Algebra for GPU and Multicore Architectures
Loading...
Searching...
No Matches

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.
 
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.
 
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.
 
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.
 
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.
 

Detailed Description

Function Documentation

◆ magmablas_cswapdblk()

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.

◆ magmablas_dswapdblk()

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.

◆ magmablas_sswapdblk()

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.

◆ magmablas_zswapdblk()

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.

◆ magmablas_zswapdblk_batched()

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.