- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I noticed a bug in MKL 2019-2021 with the sysv_aa workspace query. It seems to work in MKL 2017-2018. The sysv_aa workspace ought to be max( sytrf_aa, sytrs_aa ) workspaces. Instead, it returns a large negative, large positive, or zero number. Results below vary between precisions [s, d, c, z].
I ran these tests using the LAPACK++ wrappers (https://bitbucket.org/icl/lapackpp/) with the attached file substituting for lapackpp/src/sysv_aa.cc to debug it. I ran the test:
./tester --type s,d,c,z --dim 100 --uplo l,u sysv_aa
(These tests pass with Netlib LAPACK.)
Here are results I get for uplo=L and n=100. Same results happen with uplo=U. (I just grep the output for qry_work.)
# 2017-2018 works
intel-mkl/2017.txt:ssysv_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:ssytrf_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:ssytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2017.txt:dsysv_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:dsytrf_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:dsytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2017.txt:csysv_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:csytrf_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:csytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2017.txt:zsysv_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:zsytrf_aa( uplo=L, n=100 ) qry_work 6500.0
intel-mkl/2017.txt:zsytrs_aa( uplo=L, n=100 ) qry_work 298.0
-----
intel-mkl/2018.txt:ssysv_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2018.txt:ssytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2018.txt:ssytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2018.txt:dsysv_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2018.txt:dsytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2018.txt:dsytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2018.txt:csysv_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2018.txt:csytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2018.txt:csytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2018.txt:zsysv_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2018.txt:zsytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2018.txt:zsytrs_aa( uplo=L, n=100 ) qry_work 298.0
-----
# ERRORS start here
intel-mkl/2019.txt:ssysv_aa( uplo=L, n=100 ) qry_work -3135488000.0
intel-mkl/2019.txt:ssytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2019.txt:ssytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2019.txt:dsysv_aa( uplo=L, n=100 ) qry_work 0.0
intel-mkl/2019.txt:dsytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2019.txt:dsytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2019.txt:csysv_aa( uplo=L, n=100 ) qry_work 0.0
intel-mkl/2019.txt:csytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2019.txt:csytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2019.txt:zsysv_aa( uplo=L, n=100 ) qry_work 0.0
intel-mkl/2019.txt:zsytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2019.txt:zsytrs_aa( uplo=L, n=100 ) qry_work 298.0
-----
intel-mkl/2020.txt:ssysv_aa( uplo=L, n=100 ) qry_work -3135488000.0
intel-mkl/2020.txt:ssytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2020.txt:ssytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2020.txt:dsysv_aa( uplo=L, n=100 ) qry_work 0.0
intel-mkl/2020.txt:dsytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-mkl/2020.txt:dsytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2020.txt:csysv_aa( uplo=L, n=100 ) qry_work 1167663104.0
intel-mkl/2020.txt:csytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2020.txt:csytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-mkl/2020.txt:zsysv_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2020.txt:zsytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-mkl/2020.txt:zsytrs_aa( uplo=L, n=100 ) qry_work 298.0
-----
intel-oneapi-mkl/2021.txt:ssysv_aa( uplo=L, n=100 ) qry_work -3135488000.0
intel-oneapi-mkl/2021.txt:ssytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-oneapi-mkl/2021.txt:ssytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-oneapi-mkl/2021.txt:dsysv_aa( uplo=L, n=100 ) qry_work 0.0
intel-oneapi-mkl/2021.txt:dsytrf_aa( uplo=L, n=100 ) qry_work 2500.0
intel-oneapi-mkl/2021.txt:dsytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-oneapi-mkl/2021.txt:csysv_aa( uplo=L, n=100 ) qry_work 1167663104.0
intel-oneapi-mkl/2021.txt:csytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-oneapi-mkl/2021.txt:csytrs_aa( uplo=L, n=100 ) qry_work 298.0
intel-oneapi-mkl/2021.txt:zsysv_aa( uplo=L, n=100 ) qry_work 4900.0
intel-oneapi-mkl/2021.txt:zsytrf_aa( uplo=L, n=100 ) qry_work 4900.0
intel-oneapi-mkl/2021.txt:zsytrs_aa( uplo=L, n=100 ) qry_work 298.0
Note that this prevents the LAPACKE_*sysv_aa wrapper from working, since it queries the workspace and allocates that amount. Or in the case above where qry_work = 1167663104, it works but allocates an obnoxious amount of workspace.
Thanks for investigating.
Mark Gates, Innovative Computing Laboratory, UTK
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
validating the Intel MKL v. 2021.3 shows the expected result:
Major version: 2021
Minor version: 0
Update version: 3
Product status: Product
Build: 20210611
Platform: Intel(R) 64 architecture
Processor optimization: Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors
================================================================
ssysv_aa Example Program Results
...ssyev_aa wkopt[0] == 13.000000
...ssyev_aa lwork[0] == 13
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Thanks for posting this issue. We are working on this and will get back to you.
Regards
Rajesh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mark,
We reproduced the case and will working on the fix. We will keep the thread updated.
thanks,
Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Mark,
The fix of the issue available in the official release of MKL 2021.3 which has happened yesterday.
thanks,
Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
validating the Intel MKL v. 2021.3 shows the expected result:
Major version: 2021
Minor version: 0
Update version: 3
Product status: Product
Build: 20210611
Platform: Intel(R) 64 architecture
Processor optimization: Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors
================================================================
ssysv_aa Example Program Results
...ssyev_aa wkopt[0] == 13.000000
...ssyev_aa lwork[0] == 13
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- 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