Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.

segmentation fault when calling dsyevr

hagai_sela
Beginner
1,208 Views
Hi,
I am getting a segmentation fault when I call dsyevr. I check the parameters and they seem OK (you can see the values at the bottom of the stack trace). Am I missing anything?

#0 0x7f53e4bc0a13 mkl_lapack_dlar1v() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_lapack.so:??)
#1 0x7f53e64154eb mkl_lapack_dlar1v() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_core.so:??)
#2 0x7f53e4bce203 mkl_lapack_dlarrv() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_lapack.so:??)
#3 0x7f53e6415ea1 mkl_lapack_dlarrv() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_core.so:??)
#4 0x7f53e4c7766b mkl_lapack_dstemr() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_lapack.so:??)
#5 0x7f53e641c0c1 mkl_lapack_dstemr() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_core.so:??)
#6 0x7f53e4c1e194 mkl_lapack_dsyevr() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_lapack.so:??)
#7 0x7f53e641c81f mkl_lapack_dsyevr() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_core.so:??)
#8 0x7f53e75d87bf dsyevr_() (/opt/intel/Compiler/11.1/038/mkl/lib/em64t/libmkl_intel_lp64.so:??)
#9 0x400af3 ldsyevr(JOBZ=86 'V', RANGE=65 'A', UPLO=76 'L', N=7, A=0x1214010, LDA=7, VL=0, VU=0, IL=0, IU=0, ABSTOL=2.2250738585072014e-308, M=0x7fffefa8b0d4, W=0x12141a0, Z=0x12141e0, LDZ=7, ISUPPZ=0x1214370, WORK=0x12143b0, LWORK=182, IWORK=0x1214970, LIWORK=70) (/home/hagai/test/main.cpp:18)
#10 0x400cbb main() (/home/hagai/test/main.cpp:70)

Thanks,
Hagai.
0 Kudos
7 Replies
Gennady_F_Intel
Moderator
1,208 Views
hagai,
it seems to me that recently we fixed the similar problem with "dssyevr". this fix available in the latest update2.
You can find this fix into: MKL v.10.2 Update 2 or
Intel Compiler Proffesional Edition, version 11.1 for Linux ( build 056 ). For more info about which versions of MKL is shippied with Intel CPE please see the link"http://software.intel.com/en-us/articles/which-version-of-ipp--mkl--tbb-is-installed-with-intel-compiler-professional-edition/"

if the probelm is still there, let us know
--Gennady

0 Kudos
hagai_sela
Beginner
1,208 Views
I downloaded and installed build 056, still getting a segmentation fault with a different stack trace:

#0 0x7fb3e3453dc0 dsyevr_() (/opt/intel/Compiler/11.1/056/mkl/lib/em64t/libmkl_intel_lp64.so:??)
#1 0x400ea2 main() (/home/hagai/test/main.cpp:213)

Hagai.
0 Kudos
Gennady_F_Intel
Moderator
1,208 Views
Quoting - hagai_sela
I downloaded and installed build 056, still getting a segmentation fault with a different stack trace:

#0 0x7fb3e3453dc0 dsyevr_() (/opt/intel/Compiler/11.1/056/mkl/lib/em64t/libmkl_intel_lp64.so:??)
#1 0x400ea2 main() (/home/hagai/test/main.cpp:213)

Hagai.

Hagai,
how can we investigate the probelm? Can you get the test case? ( you can the private thread for that).
--Gennady
0 Kudos
hagai_sela
Beginner
1,208 Views
Hi,
I have no problem releasing the code, the attached code should reproduce it.

Hagai.

0 Kudos
Michael_C_Intel4
Employee
1,208 Views
Quoting - hagai_sela
Hi,
I have no problem releasing the code, the attached code should reproduce it.

Hagai.


Hi Hagai,

I'm an MKL LAPACK developer. I've investigated the issue. The problem is that parameters VL, VU, IL, IU are accidentally accessed by dsyevr even though they shouldn't be referenced in case of range='A'. This is a bug and we'll fix it in a future release.

To make dsyevr work just declare dummyvariables for VL, VU, IL, IU:

double vl, vu;
int il, iu;

and pass them instead of NULL pointer to dsyevr:

&vl, //NULL,
&vu, //NULL,
&il, //NULL,
&iu, //NULL,

This will help.

Thanks for the good testcase.

Michael.
0 Kudos
Gennady_F_Intel
Moderator
1,208 Views
Quoting - hagai_sela
Hi,
Workaround seems to work. Thanks!
one more thing - I have a core i7 machine, and I noticed the function doesn't use all 8 cpus when running. I am running it on a 151x151 size matrix. Is this the expected behaviour?

Thanks,
Hagai.

Yes, this is an expected behavior because of the size is very small for to be threaded for 8 core. The reason is treading overhead. You can change the number of thread you are running this application by setting or environment variables or mkl_set_num_threads( number of threads ); Moreover for the small size of input matrix the sequential version may be faster.
--Gennady

0 Kudos
Gennady_F_Intel
Moderator
1,208 Views
Quoting - hagai_sela
I downloaded and installed build 056, still getting a segmentation fault with a different stack trace:

#0 0x7fb3e3453dc0 dsyevr_() (/opt/intel/Compiler/11.1/056/mkl/lib/em64t/libmkl_intel_lp64.so:??)
#1 0x400ea2 main() (/home/hagai/test/main.cpp:213)

Hagai.

Hello Hagai,
Intel MKL 10.2 Update 3 is now available. The problem discussed into this tread has been fixed into this update.Please see the Intel MKL 10.2 Update 3 is now available announce. You can find there the link to the Intel registration center to download.
Could you please let us know if the problem is still exists?
--Gennady

0 Kudos
Reply