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 or OSX Support? #10

Closed
sbodenstein opened this issue Nov 22, 2016 · 20 comments
Closed

Windows or OSX Support? #10

sbodenstein opened this issue Nov 22, 2016 · 20 comments
Labels
enhancement A feature or an optimization request

Comments

@sbodenstein
Copy link

Am I correct in interpreting this to have no support for Windows or Mac OSX at the moment? If this is correct, what are the time frames for adding support?

@vpirogov
Copy link
Member

Yes, we do not have Windows or OS X supports right now. Adding Windows and OS X support is on the roadmap and will be available as the project reaches production quality. I cannot comment on the exact timeline right now.

@vpirogov
Copy link
Member

We also develop optimized DNN functionality as part of Intel® MKL. It is more mature product with wide support matrix that covers Windows and OS X. So if you are interested in Deep Learning performance on IA you can start with Intel MKL right now.

@sbodenstein
Copy link
Author

@vpirogov: the problem is that no frameworks have support for this (eg MXNet).

@RoyiAvital
Copy link

Any update on Windows / macOS support?

@vpirogov vpirogov reopened this Feb 17, 2017
@vpirogov
Copy link
Member

Windows and OS X support are on the roadmap and we will add official support in future. I cannot provide exact timeline for that though. At this point we have users who successfully built MKL-DNN for both Windows and OS X, so there's no strong platform dependencies preventing that.

@RoyiAvital
Copy link

I din't understand.
If I have Intel MKL it works on all platforms?

What's the difference between this and what shipped with Intel MKL?

@vpirogov
Copy link
Member

@RoyiAvital,

Intel MKL is a proprietary library that includes free distribution with community support and commercial paid distribution. It has full support for Windows and OS X and much broader set of functionality that covers a lot of technical computing and high performance computing applications. So if you use Intel MKL everything will work. For questions on this library please use Intel MKL Forum.

This git repository contains Intel MKL-DNN, an open source library, designed specifically for deep learning. This library has different API and the code base designed with open source toolchain in mind.

Vadim

@RoyiAvital
Copy link

@vpirogov , I know what's MKL is.
I'm a user of MKL.

I was asking what is the difference between the DNN Implementation in MKL which should support Windows out of the box to this one which doesn't.
It would be nice to have a detailed list of the difference between them.

Thank You.

@emfomenk
Copy link

emfomenk commented Mar 1, 2017

Hi @RoyiAvital ,

Intel MKL and MKL-DNN share some code (especially compute kernels), but the library itself was developed almost from scratch in order to support wide range of compilers (e.g. gcc, clang, icl, cl). That is the reason why MKL-DNN doesn't fully match Intel MKL at the moment.

As for now the biggest differences are:

  • [-] MKL-DNN lacks some of optimizations in omp drivers (currently we typically use pragma omp parallel for collapse(n), while in Intel MKL the logic is more complicated)
  • [-] MKL-DNN isn't yet fully optimized for avx512 (as for Feb'17)
  • [+] MKL-DNN has some extra-primitives, while Intel MKL doesn't (like conv+relu, softmax)
  • [+] MKL-DNN has transparent memory layout structure, while in Intel MKL it is opaque (so in Intel MKL user cannot know how data lies in the memory)
  • [+] MKL-DNN has C++ API (header-based wrappers over C API) which simplifies usage of MKL-DNN (in particular Intel Caffe uses exactly this C++ API)

@RoyiAvital
Copy link

@emfomenk , Perfect!

Thank You.

@guschmue
Copy link

guschmue commented May 1, 2017

@vpirogov, @emfomenk - I have a branch with changes to make mkl-dnn work on windows.
Are you interested in a pr?

@emfomenk
Copy link

emfomenk commented May 1, 2017

Hi @guschmue,

Definitely! Please submit.
We are currently working on providing the support for mentioned OSes too, but it would be great to compare the solutions (in case we missed something).

Unfortunately, I cannot guarantee we will merge your PR, since we have already had some code implemented. But we would really appreciate your input. So please fill free to submit whatever you have.

@guschmue
Copy link

guschmue commented May 1, 2017

Cool, I will send a pr today. No worry if there is overlap, I'm happy if mkl-dnn works either way.

@dfumento
Copy link

Tensorflow 1.2 with MKL-DNN support has been released but does not yet work for Mac OS X. I would assume that Mac OS X is similar to Linux and OS X is a major system for development. Could someone please release something for Mac? Thank you.

@rsdubtso
Copy link

Hi @dfumento, do you need support for the Xcode toolchain? It lacks OpenMP support. If that's fine for you I can share a quick and dirty patch while a proper solution is under development.

@vpirogov
Copy link
Member

@dfumento, Tensorflow uses Intel MKL small library distribution, not Intel MKL-DNN. It just happens to get this library from Intel MKL-DNN release folder. The macOS version of this library is available there as well.

@dfumento
Copy link

Hi @rsdubtso, @vpirogov. Thanks for the info. I could use the support for the Xcode toolchain. I use MKL with Python numpy, etc. but don't know how to link it in to the Tensorflow build (which I have already done to use the AVX2).

@Darwinian2 Darwinian2 mentioned this issue Aug 9, 2017
@vpirogov vpirogov added enhancement A feature or an optimization request and removed question labels Aug 17, 2017
@vpirogov
Copy link
Member

Windows support is available since v0.10 (fbd4d7b). There are some details and a patch on building Intel MKL-DNN on macOS in #10. Full support for macOS is not available yet.

@sbodenstein
Copy link
Author

sbodenstein commented Aug 21, 2017

@vpirogov: you do provide macOS builds in your release section. What does it mean exactly that you do not offer "Full support for macOS"? Does it just mean you haven't tested everything carefully for OSX yet?

@rsdubtso
Copy link

rsdubtso commented Aug 21, 2017

The reality is that OSX support is provided via a separate patch (see #84) that I rebase on top of master from time to time. The builds that are provided in the release section are for MKLML which is a binary-only library built using full MKL static libs (see #102).

Update: I've rebased the patch on top of the latest master.

@vpirogov : can you make this patch a bit more visible? It is far from being ready to be pushed to master, but it may be useful for some people as a temporary solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement A feature or an optimization request
Projects
None yet
Development

No branches or pull requests

7 participants