The single-precision to double-precision (SP2DP) interface maps single-precision (for both real and complex types) BLAS and LAPACK routines in Intel® Math Kernel Library (Intel® MKL) to double-precision routines in Intel MKL. It does not change the behavior of double-precision routines.
The SP2DP interface was provided to make it easier to use Intel MKL BLAS and LAPACK for Fortran applications that follow the BLAS and LAPACK routine naming convention of the Cray* Fortran library. It was only applicable on Intel® 64 architectures. In the 64-bit Cray Fortran library, single precision data types are always mapped to 64-bit types since there are no double precision data types. So, for example, an SGEMM call in the Cray Fortran library is equivalent to a DGEMM call in Intel MKL. The SP2DP interface helped applications that follow this convention to use Intel MKL, which does differentiate 32-bit and 64-bit real and complex data types on Intel 64 architectures.
SP2DP interface was deprecated in Intel MKL 11.3 Update 2 and is removed from future releases starting with the Intel MKL 2017 Beta.
If you used the Intel MKL SP2DP interface, then now you must modify your code by renaming routine calls from {S,C}<FUNCTION> to {D,Z}<FUNCTION> and replace Intel MKL SP2DP interface library with Intel MKL ILP64 interface library in your link line. For example,
SGEMM -> DGEMM
CGEMM -> ZGEMM
For mixed-precision and other non-standard functions you must follow the table below.
Single-precision function | Double-precision function |
CSROT | ZDROT |
CSSCAL | ZDSCAL |
SCASUM | DZASUM |
SCGEMM | DZGEMM |
SCGEMV | DZGEMV |
SCNRM2 | DZNRM2 |
DSDOT | DDOT |
SDSDOT(n, sb, dx, incx, dy, incy) | sb + DDOT(n, dx, incx, dy, incy) |
ICAMAX | IZAMAX |
ICAMIN | IZAMIN |
ISAMAX | IDAMAX |
ISAMIN | IDAMIN |