Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
111 Views

MKL 128 bit support

Jump to solution

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

Accepted Solutions
Highlighted
Moderator
77 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

0 Kudos
4 Replies
Highlighted
Black Belt
97 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.

0 Kudos
Highlighted
Beginner
88 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

 

0 Kudos
Highlighted
Moderator
78 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

0 Kudos
Highlighted
Moderator
63 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.


0 Kudos