BLAS Level 3 Routines

BLAS Level 3 routines perform matrix-matrix operations. The following table lists the BLAS Level 3 routine groups and the data types associated with them.

Routine Group

Data Types

Description

gemm

sycl::half, float, double, std::complex<float>, std::complex<double>, mixed

Computes a matrix-matrix product with general matrices.

hemm

std::complex<float>, std::complex<double>

Computes a matrix-matrix product where one input matrix is Hermitian and one is general.

herk

std::complex<float>, std::complex<double>

Performs a Hermitian rank-k update.

her2k

std::complex<float>, std::complex<double>

Performs a Hermitian rank-2k update.

symm

float, double, std::complex<float>, std::complex<double>

Computes a matrix-matrix product where one input matrix is symmetric and one matrix is general.

syrk

float, double, std::complex<float>, std::complex<double>

Performs a symmetric rank-k update.

syr2k

float, double, std::complex<float>, std::complex<double>

Performs a symmetric rank-2k update.

trmm

float, double, std::complex<float>, std::complex<double>

Computes a matrix-matrix product where one input matrix is triangular and one input matrix is general.

trsm

float, double, std::complex<float>, std::complex<double>

Solves a triangular matrix equation (forward or backward solve).

The BLAS functions are blocked where possible to restructure the code in a way that increases the localization of data reference, enhances cache memory use, and reduces the dependency on the memory bus.

The code is distributed across the processors to maximize parallelism.

Product and Performance Information

Performance varies by use, configuration and other factors. Learn more at https://www.intel.com/PerformanceIndex. Notice revision #20201201