about_us



CULAtools™ is EM Photonics’ product family comprised of CULA™ Basic, Premium, and Commercial.  CULA is our GPU-accelerated implementation of the LAPACK numerical linear algebra library, containing several of the most popular LAPACK functions.  After developing accelerated linear algebra solvers since 2004 for our clients, EM Photonics partnered with NASA Ames Research Center in 2007 to extend and unify these libraries into a single, GPU-accelerated package.  Through a partnership with NVIDIA®, our GPU Gurus™ focused on developing a commercially available implementation of accelerated LAPACK routines.  Our primary goal is to help a wide range of users experience computational performance previously available only on supercomputers.  By leveraging NVIDIA’s CUDA™ architecture, CULA provides users linear algebra functions with unsurpassed performance.

em-photonics-logo-small34
Headquartered in Newark, Delaware, EM Photonics is a recognized leader in implementing computationally intense algorithms on commodity hardware platforms.  Using specialized computer architectures such as GPUs and FPGAs, EM Photonics accelerates their clients' applications to achieve better, faster results.  We offer consulting services and custom-designed tools to commercial, government, and academic organizations seeking to optimize their scientific computing, image processing, and numerical analysis applications.

nvidia_logo
NVIDIA (Nasdaq: NVDA) is the world leader in visual computing technologies and the inventor of the GPU, a high-performance processor which generates breathtaking, interactive graphics on workstations, personal computers, game consoles, and mobile devices.  NVIDIA GPUs are designed with the Compute Unified Device Architecture (CUDA) to enable them to perform non-graphics tasks like linear algebra computation.


Functions

This page contains the comprehensive function list of the linear algebra routines available in CULA and their LAPACK equivalents. For more details on specific routines, please see the CULA API Reference Manual available online and available for download.

CULA Basic - All Routines

The free version of CULA, CULA Basic, is limited to a few popular linear algebra routines in real and complex single precisions.  A much larger suite of functionality is available in CULA Premium.

Single Precision
Type
Description
Real
Complex
General Solves a general system of linear equations AX=B. SGESV CGESV

 

Computes an LU factorization of a general matrix, using partial pivoting with row interchanges. SGETRF CGETRF
Computes a QR factorization of a general rectangular matrix. SGEQRF CGEQRF
Computes the least squares solution to an over-determined system of linear equations, AX=B, ATX=B, or AHX=B, or the minimum norm solution of an under-determined system, where A is a general rectangular matrix of full rank, using a QR or LQ factorization. SGELS CGELS
Solves the LSE (Constrained Linear Least Squares Problem) using the GRQ (Generalized RQ) factorization. SGGLSE CGGLSE
Computes the singular value decomposition (SVD) of a general rectangular matrix. SGESVD CGESVD

CULA Premium - Linear Equation Routines

CULA Premium contains the following LAPACK function equivalents from the linear equations family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Solves a general system of linear equations AX=B. SGESV CGESV DGESV ZGESV

 

Solves a general system of linear equations AX=B with iterative refinement. - - DSGESV ZCGESV
Computes an LU factorization of a general matrix, using partial pivoting with row interchanges. SGETRF CGETRF DGETRF ZGETRF
Computes the inverse of a general matrix, using the LU factorization. SGETRI CGETRI DGETRI ZGETRI
Solves a general system of linear equations AX=B, ATX=B, or AHX=B, using the LU factorization. SGETRS CGETRS DGETRS ZGETRS
Positive Definite Solves a symmetric positive definite system of linear equations AX=B. SPOSV CPOSV DPOSV ZPOSV
Computes the Cholesky factorization of a symmetric positive definite matrix. SPOTRF CPOTRF DPOTRF ZPOTRF
Solves a symmetric positive definite system of linear equations AX=B, using the Cholesky factorization. SPOTRS CPOTRS DPOTRS ZPOTRS
Triangular Solves a triangular system of linear equations AX=B, ATX=B, or AHX=B. STRTRS CTRTRS DTRTRS ZTRTRS
Computes the inverse of a triangular matrix. STRTRI CTRTRI DTRTRI ZTRTRI

CULA Premium - Orthogonal Factorizations

CULA Premium contains the following LAPACK function equivalents from the orthogonal factorization family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General, QR Computes a QR factorization of a general rectangular matrix. SGEQRF CGEQRF DGEQRF ZGEQRF
Generates all or part of the orthogonal matrix Q from a QR factorization. SORGQR CUNGQR DORGQR ZUNGQR
Multiplies a general matrix by the orthogonal matrix from a QR factorization. SORMQR CUNMQR DORMQR ZUNMQR
General, LQ Computes a LQ factorization of a general rectangular matrix. SGELQF CGELQF DGELQF ZGELQF
Generates all or part of the orthogonal matrix Q from a LQ factorization. SORLQR CUNGLQ DORGLQ ZUNGLQ
Multiplies a general matrix by the orthogonal matrix from a LQ factorization. SORMLQ CUNMLQ DORMLQ ZUNMLQ
General, RQ Computes a RQ factorization of a general rectangular matrix. SGERQF CGERQF DGERQF ZGERQF
Computes a generalized RQ factorization of a pair of matrices. SGGRQF CGGRQG DGGRQF ZGGRQF
Generates all or part of the orthogonal matrix Q from a RQ factorization. SORRQR CUNGRQ DORGRQ ZUNGRQ
Multiplies a general matrix by the orthogonal matrix from a RQ factorization. SORMRQ CUNMRQ DORMRQ ZUNMRQ
General, QL Computes a QL factorization of a general rectangular matrix. SGEQLF CGEQLF DGEQLF ZGEQLF
Generates all or part of the orthogonal matrix Q from a QL factorization. SORQLR CUNGQL DORGQL ZUNGQL
Multiplies a general matrix by the orthogonal matrix from a QL factorization. SORMQL CUNMQL DORMQL ZUNMQL

CULA Premium - Least Squares Routines

CULA Premium contains the following LAPACK function equivalents from the least squares solver family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Computes the least squares solution to an over-determined system of linear equations, AX=B, ATX=B, or AHX=B, or the minimum norm solution of an under-determined system, where A is a general rectangular matrix of full rank, using a QR or LQ factorization. SGELS CGELS DGELS ZGELS
Solves the LSE (Constrained Linear Least Squares Problem) using the GRQ (Generalized RQ) factorization. SGGLSE CGGLSE DGGLSE ZGGLSE

CULA Premium - Symmetric Eigenvalue Routines

CULA Premium contains the following LAPACK function equivalents from the symmetric Eigenproblem family of computational routines. Please note that the complex Eigenproblem routines will be added in a future release of CULA:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
Symmetric Computes all eigenvalues, and optionally, eigenvectors of a real symmetric matrix SSYEV CULA 2.0 DSYEV CULA 2.0
Computes selected eigenvalues and eigenvectors of a symmetric matrix. SSYEVX CULA 2.0 DSYEVX CULA 2.0
Reduces a real symmetric matrix to tridiagonal form with Successive Bandwidth Reduction approach. SSYRDB CULA 2.0 DSYRDB CULA 2.0
Tridiagonal Computes selected eigenvalues of a real symmetric tridiagonal matrix by bisection. SSTEBZ - DSTEBZ -
Computes all eigenvalues and eigenvectors of a real symmetric tridiagonal matrix, using the implicit QL or QR algorithm. SSTEQR CULA 2.0 DSTEQR CULA 2.0

CULA Premium - Non-Symmetric Eigenvalue Routines

CULA Premium contains the following LAPACK function equivalents from the non-symmetric Eigenproblem family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Computes the eigenvalues and left and right eigenvectors of a general matrix. SGEEV CGEEV DGEEV ZGEEV
Reduces a general matrix to upper Hessenberg form by an orthogonal similarity transformation. SGEHRD CGEHRD DGEHRD ZGEHRD
Generates the orthogonal transformation matrix from a reduction to Hessenberg form. SORGHR CUNGHR DORGHR ZUNGHR

CULA Premium - Singular Value Decomposition Routines

CULA Premium contains the following LAPACK function equivalents from the Singular Value Decomposition family of computational routines:

Single Precision
Double Precision
Type
Description
Real
Complex
Real
Complex
General Computes the singular value decomposition (SVD) of a general rectangular matrix. SGESVD CGESVD DGESVD ZGESVD
Reduces a general rectangular matrix to real bidiagonal form by an orthogonal transformation. SGEBRD CGEBRD DGEBRD ZGEBRD
Generates the orthogonal transformation matrices from a reduction to bidiagonal form. SORGBR CUNGBR DORGBR ZORGBR
Bidiagonal Computes the singular value decomposition (SVD) of a real bidiagonal matrix, using the bidiagonal QR algorithm. SBDSQR CBDSQR DBDSQR ZBDSQR