Skip to content

adding the functions used to build MlNetMklDeps for 0.0.0.6 #1182

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

Merged
merged 3 commits into from
Oct 8, 2018

Conversation

sfilipi
Copy link
Member

@sfilipi sfilipi commented Oct 8, 2018

Added the functions used, the nuspec, and the versions of mkl where the custom binaries got built from.
This complement #1103 by adding the info about how those packages get built.

After checking this in, will follow with the info about 0.0.0.7

@sfilipi sfilipi self-assigned this Oct 8, 2018
Copy link
Member

@eerhardt eerhardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking care of this @sfilipi !

<licenseUrl>https://software.intel.com/en-us/license/intel-simplified-software-license</licenseUrl>
<requireLicenseAcceptance>true</requireLicenseAcceptance>
<description>
Microsoft.ML.Net, Intel(R) MKL Dependencies.
Copy link
Member

@eerhardt eerhardt Oct 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(nit) .NET should always be all-caps - here and below.

Also, I would remove the . between Microsoft and ML. And maybe switch it around: Intel(R) MKL Dependencies for Microsoft ML.NET. #Resolved

@@ -0,0 +1,18 @@
<?xml version="1.0"?>
Copy link
Member

@eerhardt eerhardt Oct 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think it would be a good idea to put a README in this directory as well? The README could have the instructions for how to build the package. Then it would all be out in the open, and we wouldn't have to go looking for the instructions. #Resolved

@@ -0,0 +1,6 @@
mac: 2018.1.126
Copy link
Member

@eerhardt eerhardt Oct 8, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would also start putting the MlNetMklDeps version in here too, so we can map it. For example:

MlNetMklDeps v0.0.0.4-0.0.0.6
-----
mac: 2018.1.126
linux: 2018.3.222
windows: 2018.3.210

#Resolved

@sfilipi sfilipi requested review from shauheen and artidoro October 8, 2018 20:18
@sfilipi sfilipi merged commit a9d8ae4 into dotnet:master Oct 8, 2018
@sfilipi sfilipi deleted the mlnetMklnfo branch October 8, 2018 21:08
##Windows
1. Modify user_example_list file in directory to contain all required functions, that are present in the [mlnetmkl.list](mlnetmkl.list) file
2. "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
3. nmake libia32 name=MklImports (add threading=sequential if you are building without openmp)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MklImports [](start = 22, length = 10)

Should be Microsoft.ML.MklImports

4. copy /Y Microsoft.ML.MklImports.* to the folder that will host the x86 binaries.
5. del Microsoft.ML.MklImports.*
6. "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
7. nmake intel64 name=MklImports (add threading=sequential if you are building without openmp)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be Microsoft.ML.MklImports

Windows (32 and 64 bit):
- Ensure you have Intel's MKL SDK installed, you can find it here: https://software.intel.com/en-us/mkl.
- Open an admin command prompt and run the following commands, CAREFULLY INSPECTING THE COMMAND OUTPUT FOR ERRORS.
- TLCROOT should be the root of your TLC_Resources folder.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is TLC?

ML.NET MKL implementation uses Intel MKL Custom DLL builder to produce a single DLL which contains all of the MKL functions used by it.
To update the DLL, follow the steps below:

Windows (32 and 64 bit):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't call this windows specific if you remove last point from the list.
Just install and start elevated command line is a good prerequisites rather than windows specific thing.

3. Go to /opt/mkl/tools/builder.
4. Modify makefile add -Wl,-rpath,'$$ORIGIN' \ -Wl,-z,origin \ after -Wl,--end-group \
5. Modify user_example_list file in directory to contain all the required functions, that are present in the [mlnetmkl.list](mlnetmkl.list) file
6. Run make intel64 name=libMklImports (add threading=sequential if you are building without openmp)
Copy link
Contributor

@Ivanidzo4ka Ivanidzo4ka Oct 9, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

isn't it weird what we have x86 version for windows only :) #Resolved

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it is actually weird that we have instructions for x86 :)

Thanks for taking a look @Ivanidzo4ka. I'll address those on the next PR that adds details about 0.0.0.7


In reply to: 223563064 [](ancestors = 223563064)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ghost ghost locked as resolved and limited conversation to collaborators Mar 28, 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

Successfully merging this pull request may close these issues.

4 participants