4.1.3. API Compatibility Layers (Calling AOCL-BLAS) - 5.2 English - 57404

AOCL User Guide (57404)

Document ID
57404
Release Date
2025-12-29
Version
5.2 English

AOCL-BLAS supports various API compatibility layers:

  • The BLAS/CBLAS standard enables application portability between various libraries. See Netlib BLAS for background information. They can be called from programs written in Fortran, C, C++ and compatible languages. Simple BLAS and CBLAS examples in Fortran and C are available in section AOCL-BLAS Usage in Fortran and C.

  • AOCL-BLAS also includes BLIS-specific APIs that provide more flexibility and control to help achieve the best performance in some situations. Details of these C interfaces are available at:

The following table lists all the supported layers and the CMake and configure options to control them, with the default setting in bold:

Table 4.2 AOCL-BLAS API Compatibility Layers#

API Layer

Header file

CMake options
————————————
configure options

Usage

BLAS (Fortran)

N/A

-DENABLE_BLAS=ON
-DENABLE_BLAS=OFF
————————————
--enable-blas
--disable-blas
Use this option when calling AOCL-BLAS from Fortran applications.

API Name Format: DGEMM

BLAS (C)

blis.h

-DENABLE_BLAS=ON
-DENABLE_BLAS=OFF
————————————
--enable-blas
--disable-blas”
Use this option when calling AOCL-BLAS from C application using BLAS type parameters.

API Name Format: dgemm_

CBLAS

cblas.h

-DENABLE_CBLAS=ON
-DENABLE_CBLAS=OFF
————————————
--enable-cblas
--disable-cblas
Use this option when calling AOCL-BLAS from C application using CBLAS type parameters. If enabled, BLAS API is also enabled.

API Name Format: cblas_dgemm
BLIS - C
(Non-standard)

blis.h

Enabled by default

————————————
Enabled by default

This is AOCL-BLAS library specific (non-standard) interface, it provides most flexibility in calling AOCL-BLAS for best performance. However, these applications will not be portable to other BLAS/CBLAS compatible libraries.

API Name Format: bli_gemm
API Name Format: bli_gemm_ex
BLIS - CPP
(Non-standard)

blis.hh

Enabled by default

————————————
Enabled by default

This is AOCL-BLAS library specific (non-standard) C++ interface. This interface follows same parameter order as CBLAS. However, these applications will not be portable to other BLAS/CBLAS compatible libraries.

API Name Format: blis::gemm