1.1. Introduction#

1.1.1. Library overview#

rocSOLVER is an implementation of LAPACK routines on top of AMD’s open source ROCm platform. rocSOLVER is implemented in the HIP programming language and optimized for AMD’s latest discrete GPUs.

1.1.2. Currently implemented functionality#

The rocSOLVER library is in the early stages of active development. New features are being continuously added, with new functionality documented at each release of the ROCm platform.

The following tables summarize the functionality implemented for the different supported precisions in rocSOLVER’s latest release. All LAPACK and LAPACK-like main functions include _batched and _strided_batched versions. For a complete description of the listed routines, please see the rocSOLVER API document. For more details about the batch functionality see the rocSOLVER Library Design Guide.

1.1.2.1. LAPACK auxiliary functions#

Table 1.1 Vector and matrix manipulations#

Function

single

double

single complex

double complex

rocsolver_lacgv

x

x

x

x

rocsolver_laswp

x

x

x

x

rocsolver_lauum

x

x

x

x

Table 1.2 Householder reflections#

Function

single

double

single complex

double complex

rocsolver_larfg

x

x

x

x

rocsolver_larf

x

x

x

x

rocsolver_larft

x

x

x

x

rocsolver_larfb

x

x

x

x

Table 1.3 Bidiagonal forms#

Function

single

double

single complex

double complex

rocsolver_labrd

x

x

x

x

rocsolver_bdsqr

x

x

x

x

rocsolver_bdsvdx

x

x

Table 1.4 Tridiagonal forms#

Function

single

double

single complex

double complex

rocsolver_sterf

x

x

rocsolver_stebz

x

x

rocsolver_latrd

x

x

x

x

rocsolver_steqr

x

x

x

x

rocsolver_stedc

x

x

x

x

rocsolver_stein

x

x

x

x

Table 1.5 Symmetric matrices#

Function

single

double

single complex

double complex

rocsolver_lasyf

x

x

x

x

Table 1.6 Orthonormal matrices#

Function

single

double

single complex

double complex

rocsolver_org2r

x

x

rocsolver_orgqr

x

x

rocsolver_orgl2

x

x

rocsolver_orglq

x

x

rocsolver_org2l

x

x

rocsolver_orgql

x

x

rocsolver_orgbr

x

x

rocsolver_orgtr

x

x

rocsolver_orm2r

x

x

rocsolver_ormqr

x

x

rocsolver_orml2

x

x

rocsolver_ormlq

x

x

rocsolver_orm2l

x

x

rocsolver_ormql

x

x

rocsolver_ormbr

x

x

rocsolver_ormtr

x

x

Table 1.7 Unitary matrices#

Function

single

double

single complex

double complex

rocsolver_ung2r

x

x

rocsolver_ungqr

x

x

rocsolver_ungl2

x

x

rocsolver_unglq

x

x

rocsolver_ung2l

x

x

rocsolver_ungql

x

x

rocsolver_ungbr

x

x

rocsolver_ungtr

x

x

rocsolver_unm2r

x

x

rocsolver_unmqr

x

x

rocsolver_unml2

x

x

rocsolver_unmlq

x

x

rocsolver_unm2l

x

x

rocsolver_unmql

x

x

rocsolver_unmbr

x

x

rocsolver_unmtr

x

x

1.1.2.2. LAPACK main functions#

Table 1.8 Triangular factorizations#

Function

single

double

single complex

double complex

rocsolver_potf2

x

x

x

x

rocsolver_potrf

x

x

x

x

rocsolver_getf2

x

x

x

x

rocsolver_getrf

x

x

x

x

rocsolver_sytf2

x

x

x

x

rocsolver_sytrf

x

x

x

x

Table 1.9 Orthogonal factorizations#

Function

single

double

single complex

double complex

rocsolver_geqr2

x

x

x

x

rocsolver_geqrf

x

x

x

x

rocsolver_gerq2

x

x

x

x

rocsolver_gerqf

x

x

x

x

rocsolver_gelq2

x

x

x

x

rocsolver_gelqf

x

x

x

x

rocsolver_geql2

x

x

x

x

rocsolver_geqlf

x

x

x

x

Table 1.10 Problem and matrix reductions#

Function

single

double

single complex

double complex

rocsolver_sytd2

x

x

rocsolver_sytrd

x

x

rocsolver_sygs2

x

x

rocsolver_sygst

x

x

rocsolver_hetd2

x

x

rocsolver_hetrd

x

x

rocsolver_hegs2

x

x

rocsolver_hegst

x

x

rocsolver_gebd2

x

x

x

x

rocsolver_gebrd

x

x

x

x

Table 1.11 Linear-systems solvers#

Function

single

double

single complex

double complex

rocsolver_trtri

x

x

x

x

rocsolver_getri

x

x

x

x

rocsolver_getrs

x

x

x

x

rocsolver_gesv

x

x

x

x

rocsolver_potri

x

x

x

x

rocsolver_potrs

x

x

x

x

rocsolver_posv

x

x

x

x

Table 1.12 Least-square solvers#

Function

single

double

single complex

double complex

rocsolver_gels

x

x

x

x

Table 1.13 Symmetric eigensolvers#

Function

single

double

single complex

double complex

rocsolver_syev

x

x

rocsolver_syevd

x

x

rocsolver_syevx

x

x

rocsolver_sygv

x

x

rocsolver_sygvd

x

x

rocsolver_sygvx

x

x

rocsolver_heev

x

x

rocsolver_heevd

x

x

rocsolver_heevx

x

x

rocsolver_hegv

x

x

rocsolver_hegvd

x

x

rocsolver_hegvx

x

x

Table 1.14 Singular value decomposition#

Function

single

double

single complex

double complex

rocsolver_gesvd

x

x

x

x

rocsolver_gesvdx

x

x

x

x

1.1.2.3. LAPACK-like functions#

Table 1.15 Triangular factorizations#

Function

single

double

single complex

double complex

rocsolver_getf2_npvt

x

x

x

x

rocsolver_getrf_npvt

x

x

x

x

rocsolver_geblttrf_npvt

x

x

x

x

Table 1.16 Linear-systems solvers#

Function

single

double

single complex

double complex

rocsolver_getri_npvt

x

x

x

x

rocsolver_getri_outofplace

x

x

x

x

rocsolver_getri_npvt_outofplace

x

x

x

x

rocsolver_geblttrs_npvt

x

x

x

x

Table 1.17 Symmetric eigensolvers#

Function

single

double

single complex

double complex

rocsolver_syevj

x

x

rocsolver_sygvj

x

x

rocsolver_heevj

x

x

rocsolver_hegvj

x

x

Table 1.18 Singular value decomposition#

Function

single

double

single complex

double complex

rocsolver_gesvdj

x

x

x

x

1.1.2.4. Re-factorization and direct solvers#

Table 1.19 Triangular re-factorization#

Function

single

double

single complex

double complex

rocsolver_csrrf_sumlu

x

x

rocsolver_csrrf_splitlu

x

x

rocsolver_csrrf_refactlu

x

x

rocsolver_csrrf_refactchol

x

x

Table 1.20 Direct solvers#

Function

single

double

single complex

double complex

rocsolver_csrrf_solve

x

x