I have found that when MKL_DIRECT_CALL is on, there seems to be an issue with one of the zgetrf/zgetri and 5x5 matrices. I am getting quite different results compared to MKL 2016 ( which did not have LAPACK direct call functionality) and I have tracked it down to the DIRECT_CALL implementation of theses LAPACK functions. Is this a known issue?
It would be really nice if the DIRECT _CALL allowed , via the use of #DEFINEs to be able to turn off the functionality in a more fine grained manner rather than all or nothing.
Just as a hint. I am pretty sure the problem is not in 4x4 or 6x6 matrices as I would have had 100's of QA failures. It **seems** to be related to 5x5 which is an unusual size in my QA cases so only a couple failed. Maybe someone could look at this and see something by inspection.
I could not reproduce your problem in same platform(VS 2015& MKL2017u1&Intel64), could you please provide more info:
1. which version of MKL you compared? you said MKL2016, could you please provide specific version number.
2. what's the result you get? please paste here.
3. how's your compiling & linking commands? please specify your linked libraries.
I am looking forward your reply. Thanks.
Maybe I am not making myself clear.
.I have attached the complete Visual Studio Project.
We investigated the issue. It is caused by a bug in implementation of LU (?GETRF routine) for MKL_DIRECT_CALL for size 5x5. It will be fixed in the nearest MKL release. But as a workaround you can fix it in your own mkl_direct_lapack.h header. Please find attached a patch with the fix.
Thank you for your report!
Hi Andrew, We have added the fix in the latest MKL version ( MKL v.2017 update 3) which has been released yesterday. Please update, take a look and make sure that we have indeed fixed the problem. Thank you!