Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!

MKL 128 bit support

may_ka
Beginner
437 Views

Hi MKL team,

 

I am wondering whether mkl routines support 128 bit floating point numbers. Most of the routines nominate the kind of a real input array as "double precision". Using ifort compiler flag "double-size" double precision can be 64 bit and 128 bit. Parsing through the manual I could not find whether 128 bit real numbers would be supported inside mkl down to the actual operation if I compile the application as well as the interface files with that compiler option.

Any clarification is highly appreciated.

Best regards.

0 Kudos
1 Solution
Gennady_F_Intel
Moderator
403 Views

MKL accepts single and double precision only. Yes, MKL uses quad-precision reals for some of the cases ( e.x for iterative refinement steps in Pardiso solvers and etc…) but in all of these cases we use the software emulated data types as there are 128-bit instructions available on the HW level.  


View solution in original post

4 Replies
mecej4
Black Belt
423 Views

Using a compiler option to promote real sizes only affects the objects that you generate from source code. If you compile an MKL module source file with such an option, you may create MOD files that contain a number of false interfaces to existing MKL code. 

Even if you bypass MKL entirely, and compile the BLAS and Lapack routines from source code using quad-precision reals, there is no reason to assume that the so-promoted library routines will return correct results with the higher precision.

may_ka
Beginner
414 Views

Hi,

that I have no access to the mkl source code and therefore rely on an available interface which supports 128 bit is obvious. And if the mkl interface where explicitly accepting only 32 bit and 64 bit, using kind real64 and rea32, I wouldn't have bothered asking. However, they explicitly use "double precision", and therefore there is a residual expectation that Intel has taken care for 128 bit internally if the "double precision" comming through the interface turns out 128 bit. So I am still waiting for Intel to give the final "thumbs down". But if it turns out as such it would be good if the manual where clear about that.

 

However, I cannot see why a blas/lapack compiled from source using "-double-size=128" should give wrong results.

cheers

 

Gennady_F_Intel
Moderator
404 Views

MKL accepts single and double precision only. Yes, MKL uses quad-precision reals for some of the cases ( e.x for iterative refinement steps in Pardiso solvers and etc…) but in all of these cases we use the software emulated data types as there are 128-bit instructions available on the HW level.  


View solution in original post

Gennady_F_Intel
Moderator
389 Views

The issue is closing and we will no longer respond to this thread. If you require additional assistance from Intel, please start a new thread. Any further interaction in this thread will be considered community only.


Reply