- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a small piece of code that works fine with old MKL library, but the fails with the new one
-----------------------------------------------------------------------
int lwork = -1;
int liwork = -1;
double* work = (double*)malloc( sizeof(double));
int* iwork = (int*)malloc(sizeof(int));
dsyevd(&jobs, &uplo, &dim, Matrix, &dim, d, work, &lwork, iwork, &liwork, &info);
lwork = (int)(work[0]);
liwork = *iwork;
printf("required lwork=%d, liwork=%d\n", lwork, liwork);
-------------------------------------------------------------------------
For the case of dim =4, the correct result returned from the old MKL:
"required lwork=57, liwork=23"
But with the new MKL
"required lwork=-2147483648, liwork=23"
If I manually set the lwork/liwork value to the correct values and call dsyevd() to solve the problem, it gives error message:
"MKL ERROR: Parameter 8 was incorrect on entry to DSYEVD"
I could not tell exactly which version the new MKL library is, here is the linked libraries for the new one:
-Wl,--start-group -lmkl_intel_ilp64 -lmkl_sequential -lmkl_core -Wl,--end-group -lpthread
Any suggestions are welcome.
thanks
Link Copied
6 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have specified the 64-bit integer ilp64 interface, but you pass 32-bit int scalar references and arrays. I guess your example worked when you specified 32-bit integers (lp64 for the 64-bit libraries, no choice for 32-bit libraries).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
For compiling with ilp64 interfaces
ifort -i8 -I
How you can find out the version info:
For the standalone package:
please see into the
you can find there smth like Package ID: l_mkl_p_10.2.1.017
for the bundled version of mkl ( Intel Compiler Professional Edition ):
see into csupport.txt or fsuppor.txt files ( Documentation folder )
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - Gennady Fedorov (Intel)
For compiling with ilp64 interfaces
ifort -i8 -I
How you can find out the version info:
For the standalone package:
please see into the
you can find there smth like Package ID: l_mkl_p_10.2.1.017
for the bundled version of mkl ( Intel Compiler Professional Edition ):
see into csupport.txt or fsuppor.txt files ( Documentation folder )
--Gennady
Do I use the same "-i8" for icc?
( my machine is down for the moment otherwise I could just try it)
Thanks for info about how to find the version
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - tim18
You have specified the 64-bit integer ilp64 interface, but you pass 32-bit int scalar references and arrays. I guess your example worked when you specified 32-bit integers (lp64 for the 64-bit libraries, no choice for 32-bit libraries).
I thought the 64bit meaned you compile it with -m64 (default).
What library should I link to if I want to use 32 bit integer? I do not see anything like libmkl_intel_ilp32.so
thanks
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - exihea
I thought the 64bit meaned you compile it with -m64 (default).
What library should I link to if I want to use 32 bit integer? I do not see anything like libmkl_intel_ilp32.so
thanks
OK, I linked to libmkl_intel_lp64.so and everything works fine now.
Thank you all for help
-Guochun
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Quoting - exihea
OK, I linked to libmkl_intel_lp64.so and everything works fine now.
Thank you all for help
-Guochun
Guochun,
for building ilp64 libraries with Intel C++ compiler, please try to use /MKL_ILP64 preprocessor definition.
--Gennady

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