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:
BLIS Typed: Documentation, Examples
BLIS Object: Documentation, Examples
The following table lists all the supported layers and the CMake and configure options to control them, with the default setting in bold:
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_gemmAPI 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 |