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

LAPACK auxiliary functions

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

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

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

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

Symmetric matrices

Function

single

double

single complex

double complex

rocsolver_lasyf

x

x

x

x

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

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

LAPACK main functions

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

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

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

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

Least-square solvers

Function

single

double

single complex

double complex

rocsolver_gels

x

x

x

x

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

Singular value decomposition

Function

single

double

single complex

double complex

rocsolver_gesvd

x

x

x

x

rocsolver_gesvdx

x

x

x

x

LAPACK-like functions

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

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

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

Singular value decomposition

Function

single

double

single complex

double complex

rocsolver_gesvdj

x

x

x

x