Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Re-build the MKL binaries together with OpenMP and update SymSGD to make use of parallelism #2211

Closed
sfilipi opened this issue Jan 23, 2019 · 1 comment
Assignees
Milestone

Comments

@sfilipi
Copy link
Member

sfilipi commented Jan 23, 2019

The current binaries for MlNetMKLDeps are build with sequential threading, and SymSgd has parallelism turned off.

Now that the legal issues around packaging and re-distributing Open MP are clarified, re-build the ML bits with threading=parallel and update SymSGD.

@singlis singlis self-assigned this Feb 8, 2019
singlis added a commit to singlis/machinelearning that referenced this issue Feb 10, 2019
now includes openmp library file.
- Licensing is now shipped as part of the nuget file. Updated the nuspec
file to refer to the licensing file as opposed to the licensing url.

This is part of dotnet#2211
@singlis
Copy link
Member

singlis commented Feb 26, 2019

So when enabling OpenMP for mac this hit multiple issues as MKL uses Intel's OpenMP implementation and we are linking against default OpenMP (installed via brew install libomp).

While this does build, there is an error that comes up during tests that we are mixing two implementations of OpenMP:

The active test run was aborted. Reason: OMP: Error #15: Initializing libiomp5.dylib, but found libomp.dylib already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.

I am following up with Intel for guidance on how to resolve this.

@singlis singlis mentioned this issue Mar 6, 2019
singlis added a commit to singlis/machinelearning that referenced this issue Mar 6, 2019
…net#2211.

 - Updates to the nuspec file
 - Updates to the instructions for creating the nuget
singlis added a commit that referenced this issue Mar 7, 2019
* Related to changes for updating mlnetmkldeps nuget package, issue #2211.
 - Updates to the nuspec file
 - Updates to the instructions for creating the nuget
@shauheen shauheen added this to the 0319 milestone Mar 25, 2019
@singlis singlis closed this as completed Mar 26, 2019
@ghost ghost locked as resolved and limited conversation to collaborators Mar 25, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants