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

Windows support for the mxnet preset (issue #234) #236

Closed
wants to merge 1 commit into from
Closed

Windows support for the mxnet preset (issue #234) #236

wants to merge 1 commit into from

Conversation

Neiko2002
Copy link
Member

No description provided.

@saudet
Copy link
Member

saudet commented Jun 5, 2016

Could you make it so that it builds from source?
Using existing binaries causes problems we can't fix: #225

@Neiko2002
Copy link
Member Author

It is possible, but on a normal windows system you don't have OpenBLAS installed and added to your PATH. Which means we would need to include it (plus its dependencies libgcc_s_seh-1.dll, libgfortran-3.dll, libquadmath-0.dll) to the resulting .jar file. Increasing the size by about 40MB.

For windows it would be good to use the existing/installed libraries and warn the user it they are not configured correctly.

@saudet
Copy link
Member

saudet commented Jun 6, 2016

OpenBLAS comes with MSYS2. Just call

pacman -S mingw-w64-x86_64-openblas mingw-w64-i686-openblas

@saudet
Copy link
Member

saudet commented Jun 6, 2016

And if we add them to the link or preload value of the @Platform annotation, the build process of JavaCPP will bundle them in the JAR file, so no library needs to be available at runtime on the machine.

@saudet
Copy link
Member

saudet commented Jun 6, 2016

But it shouldn't increase the size by more than 10 megs though. Where do you get 40 megs from?

@Neiko2002
Copy link
Member Author

I have installed the OpenBLAS binary and the libopenblas.dll inside is 38MB.
https://sourceforge.net/projects/openblas/files/v0.2.14/

Getting OpenBLAS via MSYS2 downloads a 33MB libopenblas.dll. If we bundle all the necessary binaries together it will result in a >40MB MXNet jar file. We will need OpenBLAS for other libraries as well, so I was thinking that there might be another way to distribute the 3rd party libraries.

@saudet
Copy link
Member

saudet commented Jun 6, 2016

Right, but compressed it's more like 5 megs:
http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-openblas-0.2.17-1-any.pkg.tar.xz

@saudet
Copy link
Member

saudet commented Jun 6, 2016

Sure, we could make presets for OpenBLAS. After all, it gets used by Caffe, GSL, ND4J, and probably others as well. BLAS is an API implemented by other libraries though, so we might want to figure out how to make binaries compatible with MKL as well: #112

@saudet
Copy link
Member

saudet commented Jul 27, 2016

Build instructions for Windows are available here:
https://github.com/dmlc/mxnet/blob/master/docs/how_to/build.md#building-on-windows
Could you translate that into a bash script? That's what I'd like to add to the cppbuild.sh script.

@Neiko2002
Copy link
Member Author

The next 2-3 weeks are full or work, but I think within the next month it should be ready.

@Neiko2002 Neiko2002 closed this Oct 25, 2016
@saudet
Copy link
Member

saudet commented Oct 26, 2016

Duplicate of #309. Please don't create duplicate pull requests. Simply update the pull request next time!! Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants