- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

Link Copied

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

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.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page