Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
6981 Discussions

How do I link to the MKL with Visual Studio 2013 ?

WSinc
New Contributor I
707 Views

Unfortunately we have to use VS 2013 or later with the new Fortran, if we want to use an IDE.

 

with the older VS 2010, we just had to say "use MKL" (parallel or whatever) under Fortran > libraries, that was in the Project Properties menu.

apparently that does not work any more, since it is looking for that XERBLA entry point, and won't do the build.

 

so what additional libraries are needed there ? I would use NMAKE, or some other such tool,

if it weren't such a god-awful pain in the you-know-what.

 

The alternative is to go back to a 32-bit CPU with an older VS, like 2010, but that means there is no reason to keep updating my license every year.

 

Kinda reminds me of "get a horse," back in the days when they could not trust autos.

0 Kudos
4 Replies
Ying_H_Intel
Employee
707 Views

Hi  billsincl

In new  VS 2013 or later with the new Fortran (2017 update 1) . the way to link mkl  is exact same  "use MKL" (parallel or whatever) under Fortran > libraries, that was in the Project Properties menu.   (except the installer haven't integrated MKL into your VS2013 IDE environment, which should be done by default, in that case, you may reinstall or set MKL path manually)

You mentioned, apparently that does not work any more, since it is looking for that XERBLA entry point, and won't do the build.  is the same issue in https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/705160. ?

I attach one MSVS 2013 project for your test. Please let us know if you can run it.    and copy the test in output windows. 

Best Regards,
Ying 

 

0 Kudos
WSinc
New Contributor I
707 Views

I can try running that, and also what is the step to integrate MKL into my Visual Studio environment ?

I guess installing the FORTRAN does not do that by default ?

Whatever that additional step is, I can try that - - - 

 

I do say "use MKL," but that apparently is not enough - - - - 

0 Kudos
mecej4
Honored Contributor III
707 Views

MKL is perhaps not integrated into Visual Studio by default because most projects do not use MKL, and the overhead associated with requiring MKL in a project can be substantial (as much as 80 MB additional in the EXE).

If you want to avoid the three or four clicks it takes to specify that your new project should use MKL, you can do as follows. In VS, create a new empty Fortran project. Without adding any source files to the project, go to the project settings and specify that MKL should be used in all configurations. Quit Visual Studio, and save the .vfproj and .sln files that you just created. You can, in effect, use copies of these as templates for new MKL-enabled projects, as many times as needed.

The project and solution files are just XML files. If they are "MKL enabled", you will find a pair of lines for each configuration in the .vfproj file that will resemble the following:

                <Configuration Name="Release|Win32">
                                <Tool Name="VFFortranCompilerTool" SuppressStartupBanner="true" RuntimeLibrary="rtMultiThreadedDLL" UseMkl="mklSequential"/> 

Note the "UseMKL" in the second line (may appear in the third line because of line folding by the Forum software). That takes care of your wish. 

0 Kudos
Ying_H_Intel
Employee
707 Views

Hi Billsincl, 

"use MKL",that apparently is not enough. Yes, actually, during install,  Installer should insert many scripts to MSVC IDE environment to make sure all MKL include path, library path, dll path were written into MSVC IDE. For developers,  if the "use MKL" don't work, that may mean the installer haven't do right work. Generally, there are mainly two  way to fix it.

1.  reinstall the whole product 

2.  The steps listed in  https://software.intel.com/en-us/articles/how-to-build-mkl-application-in-intel-visual-fotran-msvc2005

Step 4: How to link to Intel® MKL in your project manually (Optional)

Step 4.1: Select the wanted libraries to link from Intel® MKL

Step 4.2: link to Intel® MKL manually in your project

Step 4.3. Can't run exe as lack of some *.dll run-time library 

I may recommend the Second way, especially the Step 4.3. 

Best Regards,

Ying 

0 Kudos
Reply