<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic   in Intel® oneAPI Math Kernel Library</title>
    <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/potential-bug-in-mkl-configuration-in-version-2018-update-2/m-p/1130929#M25598</link>
    <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Hi Ted,&lt;BR /&gt;
	&lt;BR /&gt;
	​Thank you very much for post the question in very clear way.&amp;nbsp; I may say, yes, it should be ok for you to workaround that by add &amp;nbsp;$(OmpLibDir);&amp;nbsp;when mkl is switched on.&lt;BR /&gt;
	&lt;BR /&gt;
	​Here the &amp;nbsp;$(OmpLibDir);&amp;nbsp;actually means compiler library&amp;nbsp; for example, libmmt.lib, ifconsol.lib&lt;BR /&gt;
	echo $(OmpLibDir)&lt;BR /&gt;
	C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.2.185\windows\compiler\lib\intel64_win.&lt;BR /&gt;
	​Some early MKL version will depend on the compiler libraries.&amp;nbsp; But&amp;nbsp; as i recalled,&amp;nbsp; we removed the&amp;nbsp;dependency in latest 2018 version. So the OmpLibDir is not needed longer.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Could you please check when the Linking error such as cannot find certain library (for example, libmmt.lib, ifconsol.lib) is generated here and there., which function you are using?&amp;nbsp; or do you have small test case so we may test at our side.&lt;BR /&gt;
	&lt;BR /&gt;
	Best Regards&lt;BR /&gt;
	​Ying​&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 07 Jun 2018 03:01:24 GMT</pubDate>
    <dc:creator>Ying_H_Intel</dc:creator>
    <dc:date>2018-06-07T03:01:24Z</dc:date>
    <item>
      <title>potential bug in mkl configuration in version 2018 update 2</title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/potential-bug-in-mkl-configuration-in-version-2018-update-2/m-p/1130928#M25597</link>
      <description>&lt;P&gt;I installed Intel® Parallel Studio XE with VS 2017 integration on a Win 10 platform.&lt;/P&gt;
&lt;P&gt;The parallel MKL option in the Properties page works fine as expected. But it seems like the sequential option sometimes fails the compilation using MSVC compiler. Linking error such as cannot find certain library (for example, libmmt.lib, ifconsol.lib) is generated here and there.&lt;/P&gt;
&lt;P&gt;I know these libraries are located under &lt;CODE&gt;windows/compiler/lib/intel_win&lt;/CODE&gt; folder on my machine. Manually adding this path to additional linking path can be a workaround. But I am keen to know what makes a difference between sequential and parallel configuration.&lt;/P&gt;
&lt;P&gt;Then I investigated the toolset file &lt;CODE&gt;Intel.Libs.MKL.v141.props&lt;/CODE&gt;. This file is located under this folder on my machine&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\x64\PlatformToolsets\v141\ImportAfter
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Starting from line 44,&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-xml" lang="xml"&gt;    &amp;lt;MKLProductDir&amp;gt;$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Suites\$(_MKLSubKey)\MKL', 'ProductDir', null, RegistryView.Registry32))&amp;lt;/MKLProductDir&amp;gt;
    &amp;lt;MKLIncludeDir&amp;gt;$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Suites\$(_MKLSubKey)\MKL\$(ICPlatform)', 'IncludeDir', null, RegistryView.Registry32))&amp;lt;/MKLIncludeDir&amp;gt;
    &amp;lt;MKLLibDir&amp;gt;$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Suites\$(_MKLSubKey)\MKL\$(ICPlatform)', 'LibDir', null, RegistryView.Registry32))&amp;lt;/MKLLibDir&amp;gt;
    &amp;lt;OmpLibDir&amp;gt;$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Intel\Suites\$(_MKLSubKey)\MKL\$(ICPlatform)', 'OMPLibDir', null, RegistryView.Registry32))&amp;lt;/OmpLibDir&amp;gt;

    &amp;lt;_MKLCombinedPath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No'"&amp;gt;$([System.IO.Path]::Combine($(MKLLibDir), ..\..\..\redist\$(IntelPlatform)\mkl))&amp;lt;/_MKLCombinedPath&amp;gt;
    &amp;lt;MKLPath Condition="'$(_MKLCombinedPath)' !=''"&amp;gt;$([System.IO.Path]::GetFullPath($(_MKLCombinedPath)));&amp;lt;/MKLPath&amp;gt;

    &amp;lt;LibraryPath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No' AND '$(UseEnv)' != 'true'"&amp;gt;$(MKLLibDir);$(LibraryPath)&amp;lt;/LibraryPath&amp;gt;
    &amp;lt;LibraryPath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No' AND '$(UseIntelMKL)' != 'Sequential' AND '$(UseEnv)' != 'true'"&amp;gt;$(OmpLibDir);$(LibraryPath)&amp;lt;/LibraryPath&amp;gt;
    &amp;lt;IncludePath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No' AND !$(MKLIncludeDir.Contains('/I')) AND '$(UseEnv)' != 'true'"&amp;gt;$(MKLIncludeDir);$(IncludePath)&amp;lt;/IncludePath&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The paths are retrieved from the registry, I echoed related variables and the results are&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-bash" lang="bash"&gt;echo $(MKLLibDir)
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.2.185\windows\mkl\lib\intel64_win

echo $(OmpLibDir)
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.2.185\windows\compiler\lib\intel64_win
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;So in the sequential configuration, only &lt;CODE&gt;MKLLibDir&lt;/CODE&gt; is added to &lt;CODE&gt;LibraryPath&lt;/CODE&gt;, the parallel option further add &lt;CODE&gt;OmpLibDir&lt;/CODE&gt; to it. This missing path causes the linking error in sequential configuration for some projects.&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Now I can rewrite this condition such as&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-xml" lang="xml"&gt;&amp;lt;!--     &amp;lt;LibraryPath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No' AND '$(UseEnv)' != 'true'"&amp;gt;$(MKLLibDir);$(LibraryPath)&amp;lt;/LibraryPath&amp;gt;
    &amp;lt;LibraryPath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No' AND '$(UseIntelMKL)' != 'Sequential' AND '$(UseEnv)' != 'true'"&amp;gt;$(OmpLibDir);$(LibraryPath)&amp;lt;/LibraryPath&amp;gt; --&amp;gt;
    &amp;lt;LibraryPath Condition="'$(UseIntelMKL)' != '' AND '$(UseIntelMKL)' != 'No' AND '$(UseEnv)' != 'true'"&amp;gt;$(OmpLibDir);$(MKLLibDir);$(LibraryPath)&amp;lt;/LibraryPath&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;to include all paths into &lt;CODE&gt;LibraryPath&lt;/CODE&gt; as long as MKL is switched on.&lt;/P&gt;
&lt;P&gt;No problem is found for Intel compiler toolset, as in that case, all paths are added when combining &lt;CODE&gt;ICIncludeDir&lt;/CODE&gt; with &lt;CODE&gt;LibraryPath&lt;/CODE&gt;, this occurs in following file on my machine.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class="language-bash" lang="bash"&gt;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Platforms\x64\PlatformToolsets\Intel C++ Compiler 18.0\Toolset.props
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;H2&gt;Problems&lt;/H2&gt;
&lt;P&gt;Although I can fix it by myself, I still think that, the compiler lib path shall be included whatsoever, this shall be configured in a fashion similar to what is done in other toolsets.&lt;/P&gt;
&lt;P&gt;In previous version I did not run into similar problem. Since this may fail other's projects, it shall be fixed am I right?&lt;/P&gt;</description>
      <pubDate>Mon, 28 May 2018 06:06:56 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/potential-bug-in-mkl-configuration-in-version-2018-update-2/m-p/1130928#M25597</guid>
      <dc:creator>Ted_C_</dc:creator>
      <dc:date>2018-05-28T06:06:56Z</dc:date>
    </item>
    <item>
      <title> </title>
      <link>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/potential-bug-in-mkl-configuration-in-version-2018-update-2/m-p/1130929#M25598</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Hi Ted,&lt;BR /&gt;
	&lt;BR /&gt;
	​Thank you very much for post the question in very clear way.&amp;nbsp; I may say, yes, it should be ok for you to workaround that by add &amp;nbsp;$(OmpLibDir);&amp;nbsp;when mkl is switched on.&lt;BR /&gt;
	&lt;BR /&gt;
	​Here the &amp;nbsp;$(OmpLibDir);&amp;nbsp;actually means compiler library&amp;nbsp; for example, libmmt.lib, ifconsol.lib&lt;BR /&gt;
	echo $(OmpLibDir)&lt;BR /&gt;
	C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018.2.185\windows\compiler\lib\intel64_win.&lt;BR /&gt;
	​Some early MKL version will depend on the compiler libraries.&amp;nbsp; But&amp;nbsp; as i recalled,&amp;nbsp; we removed the&amp;nbsp;dependency in latest 2018 version. So the OmpLibDir is not needed longer.&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Could you please check when the Linking error such as cannot find certain library (for example, libmmt.lib, ifconsol.lib) is generated here and there., which function you are using?&amp;nbsp; or do you have small test case so we may test at our side.&lt;BR /&gt;
	&lt;BR /&gt;
	Best Regards&lt;BR /&gt;
	​Ying​&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 07 Jun 2018 03:01:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/potential-bug-in-mkl-configuration-in-version-2018-update-2/m-p/1130929#M25598</guid>
      <dc:creator>Ying_H_Intel</dc:creator>
      <dc:date>2018-06-07T03:01:24Z</dc:date>
    </item>
  </channel>
</rss>

