- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There was an earlier thread on this forum, with a similar problem relating to an earlier version of MKL. The thread indicated that this was a bug fixed in later versions of MKL!
Any help is greatly appreciated.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There was an earlier thread on this forum, with a similar problem relating to an earlier version of MKL. The thread indicated that this was a bug fixed in later versions of MKL!
Any help is greatly appreciated.
thanks for letting us know. Can you get the test case?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
There was an earlier thread on this forum, with a similar problem relating to an earlier version of MKL. The thread indicated that this was a bug fixed in later versions of MKL!
Any help is greatly appreciated.
Attached is VS project to reproduce the problem. The Debug/Release configurations are for the problem dll case and the Static Debug/Static Release Configurations are for the working static linking case. Change the constant NUM_ELEMENTS defined in MKLTestApp.cpp to change the vector size.Setting the value to3389 or larger, will produce bad results in the dll case.
Thanks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Attached is VS project to reproduce the problem. The Debug/Release configurations are for the problem dll case and the Static Debug/Static Release Configurations are for the working static linking case. Change the constant NUM_ELEMENTS defined in MKLTestApp.cpp to change the vector size.Setting the value to3389 or larger, will produce bad results in the dll case.
Thanks.
Some more info...
The problem happens when openMP support is turned on in the project. My guess is there is some conflict between openMP libraries in Visual Studio 2008and the ones used in MKL.
Also, if I pass the same pointer for the input andoutput (i.e, VdSqrt(n, a, a)) , I get incorrect output for large vectors. Is this a new restrictionin MKL 10.2? It used to work for earlier versions.
Nevine
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The problem happens when openMP support is turned on in the project. My guess is there is some conflict between openMP libraries in Visual Studio 2008and the ones used in MKL.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How can I configure my projectto use the the MKL libiomp libraries instead of Microsoft's?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
How can I configure my projectto use the the MKL libiomp libraries instead of Microsoft's?
The link advisor on the forum page would indicate how the command line version of linking should go (possibly the static version).
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Some more info...
The problem happens when openMP support is turned on in the project. My guess is there is some conflict between openMP libraries in Visual Studio 2008and the ones used in MKL.
Also, if I pass the same pointer for the input andoutput (i.e, VdSqrt(n, a, a)) , I get incorrect output for large vectors. Is this a new restrictionin MKL 10.2? It used to work for earlier versions.
Nevine
Nevine,
Thanks for test case. No, this is an unknown problem for 10.2 and there are no restriction for this functionality.
I didn't build and run your application yet, however the linking line you are using:
AdditionalDependencies="libiomp5md.lib mkl_intel_c_dll.lib mkl_intel_thread_dll.lib mkl_core_dll.lib"
Is looks correct to me.
We need to check the problem on our side.
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
i used the test you proveided and I couldn't reproduce the result.
the output I got:
Success!
Press any key to continue . . .
#define NUM_ELEMENTS 33890
some more details aboutthe environment I tested:
CPU -- Intel Core2 Quad CPU @ 2.66GHz
MKL version -- Package ID: w_mkl_p_10.2.1.019
win32
VS2008
What is the CPU type you are working on?
--Gennady
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
i used the test you proveided and I couldn't reproduce the result.
the output I got:
Success!
Press any key to continue . . .
#define NUM_ELEMENTS 33890
some more details aboutthe environment I tested:
CPU -- Intel Core2 Quad CPU @ 2.66GHz
MKL version -- Package ID: w_mkl_p_10.2.1.019
win32
VS2008
What is the CPU type you are working on?
--Gennady
Gennady,
My enviroment is:
CPU: Intel Core2 Quad CPU Q6600 @2.40GHz
win32
VS2008
MKL 10.2.1.019
Nevine
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The link advisor on the forum page would indicate how the command line version of linking should go (possibly the static version).
Tim,
Thanks for the reply. I was successful in configuring the project and run it with the MKL libiomp5md instead of the Microsoft vcomp90 libraries only if I do not link to any other mkl libraries. When I link with the mkl libraries (mkl_intel_thread_dll.lib mkl_intel_c_dll.lib mkl_core_dll.lib), it tries tolink tothe Microsoft vcomp90 library.
I have added compiler option /D_OPENMP_NOFORCE_MANIFEST and used /nodefaultlib:vcomp90 as recommended in this article
http://software.intel.com/en-us/articles/how-to-use-intelr-compiler-openmp-compatibility-libraries-on-windows/
I can't get it to work with the MKL libraries.
Nevine
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Microsoft Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
-out:mains.exe
-debug
-pdb:mains.pdb
-subsystem:console
-nodefaultlib:libiompprof5mt.lib
-nodefaultlib:libiompprof5md.lib
-defaultlib:libiomp5md.lib
-nodefaultlib:vcomp.lib
-nodefaultlib:vcompd.lib
mains.obj
...
so it appears that nodefaultlib requires vcomp.lib and vcompd.lib to be spelled out. In fact, there is no vcomp90 in my installation of VC9, so the spellings I quote are correct.
In case it's of interest, if you link with libiompprof5md, (as is recommended for thread profiler), but run normally without thread profiler, a file name guide.gvs is written each time you run, which contains statistics on OpenMP performance. All parallel regions in MSVC compiled code are lumped together, but the MKL parallel regions should be summarized separately.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Microsoft Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
-out:mains.exe
-debug
-pdb:mains.pdb
-subsystem:console
-nodefaultlib:libiompprof5mt.lib
-nodefaultlib:libiompprof5md.lib
-defaultlib:libiomp5md.lib
-nodefaultlib:vcomp.lib
-nodefaultlib:vcompd.lib
mains.obj
...
so it appears that nodefaultlib requires vcomp.lib and vcompd.lib to be spelled out. In fact, there is no vcomp90 in my installation of VC9, so the spellings I quote are correct.
In case it's of interest, if you link with libiompprof5md, (as is recommended for thread profiler), but run normally without thread profiler, a file name guide.gvs is written each time you run, which contains statistics on OpenMP performance. All parallel regions in MSVC compiled code are lumped together, but the MKL parallel regions should be summarized separately.
Tim,
I was finally able to get it to work by adding /NODEFAULTLIB:"vcomp.lib" /NODEFAULTLIB:"vcompd.lib".
The vcomp90 is actually the dll name but the stub libraries are vcomp.lib and vcompd.lib.
Thanks for the help.
Nevine
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just started using vsSqrt and am noticing the same behaviors. vsSqrt seems to be wrong in a similar manner as described in this post. I am using the MKL v11 and Composer 13 with Visual Studio 2010. Any explicit instruction on how to get the right version of OpenMP in place would be greatly appreciated.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page