Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

MKL 128 bit support

may_ka
初学者
2,384 次查看

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 项奖励
1 解答
Gennady_F_Intel
主持人
2,350 次查看

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.  


在原帖中查看解决方案

0 项奖励
4 回复数
mecej4
名誉分销商 III
2,370 次查看

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 项奖励
may_ka
初学者
2,361 次查看

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 项奖励
Gennady_F_Intel
主持人
2,351 次查看

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.  


0 项奖励
Gennady_F_Intel
主持人
2,336 次查看

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 项奖励
回复