hipblasstrsmstridedbatched Interface Reference

hipblasstrsmstridedbatched Interface Reference#

HIPFORT API Reference: hipfort_hipblas::hipblasstrsmstridedbatched Interface Reference
hipfort_hipblas::hipblasstrsmstridedbatched Interface Reference

BLAS Level 3 API. More...

Public Member Functions

integer(kind(hipblas_status_success)) function hipblasstrsmstridedbatched_ (handle, side, uplo, transa, diag, m, n, alpha, ap, lda, stridea, bp, ldb, strideb, batchcount)
 
integer(kind(hipblas_status_success)) function hipblasstrsmstridedbatched_rank_0 (handle, side, uplo, transa, diag, m, n, alpha, ap, lda, stridea, bp, ldb, strideb, batchcount)
 
integer(kind(hipblas_status_success)) function hipblasstrsmstridedbatched_rank_1 (handle, side, uplo, transa, diag, m, n, alpha, ap, lda, stridea, bp, ldb, strideb, batchcount)
 
integer(kind(hipblas_status_success)) function hipblasstrsmstridedbatched_full_rank (handle, side, uplo, transa, diag, m, n, alpha, ap, lda, stridea, bp, ldb, strideb, batchcount)
 

Detailed Description

BLAS Level 3 API.

The trsmStridedBatched functions perform the following strided batched operation:

op(A_i)*X_i = alpha*B_i or  X_i*op(A_i) = alpha*B_i, for i = 1, ..., batchCount.

where alpha is a scalar, X and B are strided batched m by n matrices, A is a triangular strided batched matrix, and op(A) is one of:

op( A ) = A   or   op( A ) = A^T   or   op( A ) = A^H.

Each matrix X_i is overwritten on B_i for i = 1, ..., batchCount.

Note about memory allocation: When trsm is launched with a k evenly divisible by the internal block size of 128 and is no larger than 10 of these blocks, the API uses preallocated memory found in the handle to increase overall performance (where k is m when HIPBLAS_SIDE_LEFT and is n when HIPBLAS_SIDE_RIGHT). For more information on preallocated memory in the handle, see the Device Memory Allocation in rocBLAS section of the rocBLAS API Reference.

  • Supported precisions in rocBLAS : s, d, c, and z.
  • Supported precisions in cuBLAS : No support.
Parameters
[in]handle- [hipblasHandle_t] handle to the hipBLAS library context queue.
[in]side- [hipblasSideMode_t]
  • HIPBLAS_SIDE_LEFT: op(A)*X = alpha*B.
  • HIPBLAS_SIDE_RIGHT: X*op(A) = alpha*B.
[in]uplo- [hipblasFillMode_t]
  • HIPBLAS_FILL_MODE_UPPER: each A_i is an upper triangular matrix.
  • HIPBLAS_FILL_MODE_LOWER: each A_i is a lower triangular matrix.
[in]transA- [hipblasOperation_t]
  • HIPBLAS_OP_N: op(A) = A.
  • HIPBLAS_OP_T: op(A) = A^T.
  • HIPBLAS_OP_C: op(A) = A^H.
[in]diag- [hipblasDiagType_t]
  • HIPBLAS_DIAG_UNIT: each A_i is assumed to be unit triangular.
  • HIPBLAS_DIAG_NON_UNIT: each A_i is not assumed to be unit triangular.
[in]m- [int] m specifies the number of rows of each B_i. m >= 0.
[in]n- [int] n specifies the number of columns of each B_i. n >= 0.
[in]alphadevice pointer or host pointer specifying the scalar alpha. When alpha is &zero, then A is not referenced and B does not need to be set before entry.
[in]AP- device pointer pointing to the first matrix A_1. Of dimension ( lda, k ), where k is m when HIPBLAS_SIDE_LEFT and is n when HIPBLAS_SIDE_RIGHT. Only the upper/lower triangular part is accessed.
[in]lda- [int] lda specifies the first dimension of each A_i.
  • If side = HIPBLAS_SIDE_LEFT, lda >= max( 1, m ).
  • If side = HIPBLAS_SIDE_RIGHT, lda >= max( 1, n ).
[in]strideA- [hipblasStride] stride from the start of one A_i matrix to the next A_(i + 1).
[in,out]BP- device pointer pointing to the first matrix B_1.
[in]ldb- [int] ldb specifies the first dimension of each B_i. ldb >= max( 1, m ).
[in]strideB- [hipblasStride] stride from the start of one B_i matrix to the next B_(i + 1).
[in]batchCount- [int] number of trsm operatons in the batch.

Member Function/Subroutine Documentation

◆ hipblasstrsmstridedbatched_()

integer(kind(hipblas_status_success)) function hipfort_hipblas::hipblasstrsmstridedbatched::hipblasstrsmstridedbatched_ ( type(c_ptr), value  handle,
integer(kind(hipblas_side_left)), value  side,
integer(kind(hipblas_fill_mode_upper)), value  uplo,
integer(kind(hipblas_op_n)), value  transa,
integer(kind(hipblas_diag_non_unit)), value  diag,
integer(c_int), value  m,
integer(c_int), value  n,
real(c_float)  alpha,
type(c_ptr), value  ap,
integer(c_int), value  lda,
integer(c_int64_t), value  stridea,
type(c_ptr), value  bp,
integer(c_int), value  ldb,
integer(c_int64_t), value  strideb,
integer(c_int), value  batchcount 
)

◆ hipblasstrsmstridedbatched_full_rank()

integer(kind(hipblas_status_success)) function hipfort_hipblas::hipblasstrsmstridedbatched::hipblasstrsmstridedbatched_full_rank ( type(c_ptr)  handle,
integer(kind(hipblas_side_left))  side,
integer(kind(hipblas_fill_mode_upper))  uplo,
integer(kind(hipblas_op_n))  transa,
integer(kind(hipblas_diag_non_unit))  diag,
integer(c_int)  m,
integer(c_int)  n,
real(c_float)  alpha,
real(c_float), dimension(:,:), target  ap,
integer(c_int)  lda,
integer(c_int64_t)  stridea,
real(c_float), dimension(:,:), target  bp,
integer(c_int)  ldb,
integer(c_int64_t)  strideb,
integer(c_int)  batchcount 
)

◆ hipblasstrsmstridedbatched_rank_0()

integer(kind(hipblas_status_success)) function hipfort_hipblas::hipblasstrsmstridedbatched::hipblasstrsmstridedbatched_rank_0 ( type(c_ptr)  handle,
integer(kind(hipblas_side_left))  side,
integer(kind(hipblas_fill_mode_upper))  uplo,
integer(kind(hipblas_op_n))  transa,
integer(kind(hipblas_diag_non_unit))  diag,
integer(c_int)  m,
integer(c_int)  n,
real(c_float)  alpha,
real(c_float), target  ap,
integer(c_int)  lda,
integer(c_int64_t)  stridea,
real(c_float), target  bp,
integer(c_int)  ldb,
integer(c_int64_t)  strideb,
integer(c_int)  batchcount 
)

◆ hipblasstrsmstridedbatched_rank_1()

integer(kind(hipblas_status_success)) function hipfort_hipblas::hipblasstrsmstridedbatched::hipblasstrsmstridedbatched_rank_1 ( type(c_ptr)  handle,
integer(kind(hipblas_side_left))  side,
integer(kind(hipblas_fill_mode_upper))  uplo,
integer(kind(hipblas_op_n))  transa,
integer(kind(hipblas_diag_non_unit))  diag,
integer(c_int)  m,
integer(c_int)  n,
real(c_float)  alpha,
real(c_float), dimension(:), target  ap,
integer(c_int)  lda,
integer(c_int64_t)  stridea,
real(c_float), dimension(:), target  bp,
integer(c_int)  ldb,
integer(c_int64_t)  strideb,
integer(c_int)  batchcount 
)

The documentation for this interface was generated from the following file: