From 03fb2d61c6d84dc37dddcec5c4761b5d209749b3 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 11 Nov 2019 12:52:53 -0600 Subject: Add new version of Intel MKL-DNN (#13669) * Add new version of Intel MKL-DNN * Get OpenMP build working * lomp is also needed for linking * http -> https * Add myself as maintainer --- .../builtin/packages/intel-mkl-dnn/package.py | 40 +++++++++++++++++----- .../repos/builtin/packages/py-torch/package.py | 4 +-- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py b/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py index ae5e10c2f0..11bd373b0a 100644 --- a/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py +++ b/var/spack/repos/builtin/packages/intel-mkl-dnn/package.py @@ -10,14 +10,38 @@ class IntelMklDnn(CMakePackage): """Intel(R) Math Kernel Library for Deep Neural Networks (Intel(R) MKL-DNN).""" - homepage = "https://01.org/mkl-dnn" - url = "https://github.com/intel/mkl-dnn/archive/v0.19.tar.gz" + homepage = "https://intel.github.io/mkl-dnn/" + url = "https://github.com/intel/mkl-dnn/archive/v1.1.1.tar.gz" - version('1.0-pc2', sha256='fcc2d951f7170eade0cfdd0d8d1d58e3e7785bd326bca6555f3722f8cba71811') - version('0.19', sha256='ba39da6adb263df05c4ca2a120295641fc97be75b588922e4274cb628dbe1dcd', preferred=True) - version('0.18.1', sha256='fc7506701dfece9b03c0dc83d0cda9a44a5de17cdb54bc7e09168003f02dbb70') - version('0.11', sha256='4cb4a85b05fe42aa527fd70a048caddcba9361f6d3d7bea9f33d74524e206d7d') - version('0.10', sha256='59828764ae43f1151f77b8997012c52e0e757bc50af1196b86fce8934178c570') - version('0.9', sha256='8606a80851c45b0076f7d4047fbf774ce13d6b6d857cb2edf95c7e1fd4bca1c7') + maintainers = ['adamjstewart'] + version('1.1.1', sha256='a31b08a89473bfe3bd6ed542503336d21b4177ebe4ccb9a97810808f634db6b6') + version('0.19', sha256='ba39da6adb263df05c4ca2a120295641fc97be75b588922e4274cb628dbe1dcd') + version('0.18.1', sha256='fc7506701dfece9b03c0dc83d0cda9a44a5de17cdb54bc7e09168003f02dbb70') + version('0.11', sha256='4cb4a85b05fe42aa527fd70a048caddcba9361f6d3d7bea9f33d74524e206d7d') + version('0.10', sha256='59828764ae43f1151f77b8997012c52e0e757bc50af1196b86fce8934178c570') + version('0.9', sha256='8606a80851c45b0076f7d4047fbf774ce13d6b6d857cb2edf95c7e1fd4bca1c7') + + depends_on('cmake@2.8.11:', type='build') depends_on('intel-mkl') + depends_on('llvm-openmp', when='%clang platform=darwin') + + def cmake_args(self): + args = [] + + # https://github.com/intel/mkl-dnn/issues/591 + if self.spec.satisfies('%clang platform=darwin'): + args.extend([ + '-DOpenMP_CXX_FLAGS={0}'.format(self.compiler.openmp_flag), + '-DOpenMP_C_FLAGS={0}'.format(self.compiler.openmp_flag), + '-DOpenMP_CXX_LIB_NAMES=libomp', + '-DOpenMP_C_LIB_NAMES=libomp', + '-DOpenMP_libomp_LIBRARY={0}'.format( + self.spec['llvm-openmp'].libs.libraries[0] + ), + '-DCMAKE_SHARED_LINKER_FLAGS={0}'.format( + self.spec['llvm-openmp'].libs.ld_flags + ), + ]) + + return args diff --git a/var/spack/repos/builtin/packages/py-torch/package.py b/var/spack/repos/builtin/packages/py-torch/package.py index b5d8074deb..148b7ea25d 100644 --- a/var/spack/repos/builtin/packages/py-torch/package.py +++ b/var/spack/repos/builtin/packages/py-torch/package.py @@ -128,7 +128,7 @@ class PyTorch(PythonPackage): depends_on('fbgemm', when='+fbgemm') # TODO: add dependency: https://github.com/ROCmSoftwarePlatform/MIOpen depends_on('miopen', when='+miopen') - depends_on('mkl', when='+mkldnn') + depends_on('intel-mkl-dnn', when='+mkldnn') # TODO: add dependency: https://github.com/Maratyszcza/NNPACK depends_on('nnpack', when='+nnpack') depends_on('qnnpack', when='+qnnpack') @@ -219,7 +219,7 @@ class PyTorch(PythonPackage): enable_or_disable('mkldnn') if '+mkldnn' in self.spec: - env.set('MKLDNN_HOME', self.spec['intel-mkl'].prefix) + env.set('MKLDNN_HOME', self.spec['intel-mkl-dnn'].prefix) enable_or_disable('nnpack') enable_or_disable('qnnpack') -- cgit v1.2.3-70-g09d2