- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I thought you might be referring to libmatmul.lib, but it does not reference any specific set of libraries.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
http://software.intel.com/en-us/forums/showthread.php?t=80926
I'm having similar issues with Fortran Composer XE 2011 Update 4 (w_fcompxe_2011.4.196) and a solution that used to build in 11.1.060. Even if I ignore libcmt.lib, I still get LNK2005 errors for a clash between libmatmul.lib and mkl_intel_c_dll.lib (for symbols _sgemm and _sgemv). I'd prefer not to disable Matrix Multiply Library Calls with /Qopt-matmul- as I suspect the matrix solver we use (MUMPS) would benefit from its use. I've attached my build log.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Some suggestions:
If you are linking against MKL, can you exclude libmatmul.lib and link successfully?
The opt-matmul optimization should cause Fortran MATMUL to be implemented by a call to MKL BLAS, when the parameters fit. Apparently, libmatmul has copies of gemm and gemv which duplicate MKL. If the problem still occurs with the current ifort release, and can be shown in a simple example, posting a problem report on premier.intel.com should be helpful. The URL reference given earlier indicates that such a filing was made back in February, with no indication what action may have been taken for subsequent releases.
You must take care to avoid a situation where you attempt to link against both the static and dynamic multithread libraries. If you make a .dll and intend to link static libraries, you must postpone the static library linking to the final link (don't include those in the .dll).
Among the means for distributing the .dll set required for dynamic linking of ifort libraries is to download the redistributable library matching your ifort from https://registrationcenter.intel.com
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If I add libmatmul.lib to ignore default libraries in the general linker options then _MATMUL_MKL becomes an unresolved symbol.
I've tried to produce a simple example that reproduces this problem and have not succeeded so far, so I'll probably not submit a case for this, as I can resolve the problem by using /Qopt-matmul- and hoping that the performance hit is not significant, especially as we are migrating from 11.1.060.
Have a good weekend (it's 17:30 here in the UK, so I'm off home).
Mark.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Build log below.
BuildLog.htm
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The typical inconsistency giving rise to such a mixture of Fortran static and C++ dynamic libraries is the use of VS project defaults (/MT in ifort, /MD in C++). Make them consistent and rebuild.
- 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