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

Intel MKL Redist nuget package does not copy runtimes to the output folder

David301
Beginner
1,731 Views

I'm using the Intel MKL Devel nuget package for Windows, linking with MKL dynamically. Visual Studio 2022 is my build environment.

Package versions are

intelmkl.devel.win-x64.2023.1.0.46356

intelmkl.redist.win-x64.2023.1.0.46356

The redistributables are getting copied to a subfolder of the binary output directory, rather than the output directory itself.

i.e. 

 

x64\Debug\packages\intelmkl.redist.win-x64.2023.1.0.46356\runtimes\win-x64\native

rather than

x64\Debug\

 

I believe that there are authoring errors in both the intelmkl.redist and intelopenmp.redist packages.

e.g. for intelmkl.redist.win-x64.targets the Content node should be changed to something like:

 

<Content Include="$(MSBuildThisFileDirectory)\..\..\runtimes\win-x64\native\**\*.dll"
Condition="'$(Platform)' == 'x64'">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>false</Visible>
<TargetPath>%(RecursiveDir)%(Filename)%(Extension)</TargetPath>
</Content>

This will give the expected output file structure. I have verified this works by making the changes locally.

I'm slightly puzzled why I'm the first to discover this issue. Please can you investigate?

 

 

 

Labels (2)
0 Kudos
10 Replies
ShanmukhS_Intel
Moderator
1,674 Views

Hi David Ward,

 

Thanks for posting in Intel Communities.

 

We have tried installing the shared NuGet packages and could see the redistributables getting installed in a similar folder structure at our end. We will get back to you soon with an update.

 

Best Regards,

Shanmukh.SS

 

ShanmukhS_Intel
Moderator
1,601 Views

Hi David,

 

Could you please let us know if you are facing any issues with the existing folder structure?

 

We have created a sample project file and have installed the redistributables.

 

We could see the redistributables getting installed under the packages folder of the corresponding sample project file.

 

Foe Ex: C:\Users\<uname>\source\repos\<sample project file>\packages

Under this folder, below redistributables were installed.

intelopenmp.devel.win.2023.0.0.25922

intelopenmp.redist.win.2023.0.0.25922

inteltbb.devel.win.2021.1.1.133

inteltbb.redist.win.2021.1.1.133

intelmkl.devel.win-x64.2023.1.0.46356

intelmkl.redist.win-x64.2023.1.0.46356

 

If you consider intelmkl.devel.win-x64.2023.1.0.46356 as an example from the above redistributables, the corresponding dll's were present under the subfolder accordingly.

C:\Users\<uname>\source\repos\<sample project file>\packages\intelmkl.devel.win-x64.2023.1.0.46356\lib\native\win-x64

 

Hence we would like to know if you are facing any issues because of this or if it could be considered as a suggestion, If you were facing any issues, could you please provide more details regarding the same?

 

Best Regards,

Shanmukh.SS

 

0 Kudos
David301
Beginner
1,554 Views

There is no problem with the location that the redistributes are being installed. By default this would be a package folder.

As explained in my issue, this is a build-time problem. The problem is with the authoring of the .target files that are part of the packages. One of the jobs of the .targets file is to copy the redistributables to the output directory of project being built. This isn’t working and I have described how these .target files could be fixed.

 

Thank you.

 

David.

0 Kudos
ShanmukhS_Intel
Moderator
1,494 Views

Hi David,


Thanks for sharing the feedback. We have shared your feedback internally. We will get back to you soon with an update.


Best Regards,

Shanmukh.SS


0 Kudos
ShanmukhS_Intel
Moderator
1,450 Views

Hi David,

 

Thanks for reporting this issue. We have informed the development team about it and they are currently looking into the issue. We will get back to you if we have some updates from the development team.

 

Best Regards,

Shanmmukh.SS

 

0 Kudos
David301
Beginner
1,179 Views

Hello,

Is there any update on this? At the moment we are having to maintain our own privately-patched version of the packages which isn't ideal.

 

Thanks

0 Kudos
Mark_L_Intel
Moderator
896 Views

Could you try the latest oneMKL NuGet package intelmkl.devel.win-x64.2024.0.0.49657 and see if your problem can be resolved.

0 Kudos
David301
Beginner
880 Views

Hello!

 

I'm happy to report that I see a fix in intelmkl.redist.win-x64.2024.0.0.49657 that correctly copies the runtimes to the Output folder. 

 

Unfortunately I am seeing a new issue in intelmkl.devel.win-x64.2024.0.0.49657 that I have not experienced before. The linker failed to locate the import library:

 

1>LINK : fatal error LNK1104: cannot open file 'mkl_intel_lp64_dll.lib'

 

On inspecting the nuget package I see that the targets file is expecting the import libraries to be in the "build/native/win-x64" folder as follows:

 

<Link>
<AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)..\..\build\native\win-x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>

 

However, I see that in this version of the package the import libraries has been relocated to runtimes/win-x64/native. I was able to resolve the link error by relocating the import libraries to match the .targets file. Version 2023.1.46356 did not have such a problem with the dev package.

So in summary, the .targets file is inconsistent with the location of the import libraries for intelmkl.devel. Please can you address this new regression?

0 Kudos
Mark_L_Intel
Moderator
852 Views

Thank you for reporting this issue. It will be worked on internally and when it is fixed, the update will be posted.

0 Kudos
Mark_L_Intel
Moderator
714 Views

@David301,  this issue with intelmkl.devel will be fixed in 2024.1 release.  

0 Kudos
Reply