It you link dynamically to MKL (vs statically to ATLAS), the easiest way is to look at the size of the C extension numpy/linalg/lapack_lite.pyd I have (on 32-bit Windows) 24KB when linking to MKL, as supposed to 2.3MB when linking statically to ATLAS, where all lapack symbols are linked in.
- Ilan On Fri, Jun 22, 2012 at 2:41 PM, KACVINSKY Tom <tom.kacvin...@3ds.com> wrote: > I found the problem. It was a missing /manifest option in the distutils > bundled with Python 2.6 (how this ever worked without my patch I'll never > understand). Anyway, I now have numpy built with MKL 10.3, MSVC 2010, and > Intel Fortran 11. What I need to know is how to verify that the linear > algebra routines are using MKL without benchmarking numpy. Thoughts on the > matter? > > > > From: numpy-discussion-boun...@scipy.org > [mailto:numpy-discussion-boun...@scipy.org] On Behalf Of KACVINSKY Tom > Sent: Friday, June 22, 2012 11:22 AM > To: 'numpy-discussion@scipy.org' > Subject: Re: [Numpy-discussion] Building numpy with MSVC 2010 and Intel > Fortran 10.x (and higher) > > > > Ooops. The message about the Fortran compiler version comes from building > numpy 1.6.1. The problem I am seeing with numpy 1.4.1 follows. > > > > No module named msvccompiler in numpy.distutils; trying from distutils > > customize IntelFCompiler > > Found executable c:\Program Files (x86)\Intel\Composer > XE\bin\intel64\ifort.exe > > Found executable c:\Program Files (x86)\Intel\Composer > XE\bin\intel64\ifort.exe > > C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cl.exe /c > /nologo /Ox /MD /W3 /GS- /DNDEBUG -Inumpy\core\src\private -Inump > > y\core\src -Inumpy\core -Inumpy\core\src\npymath -Inumpy\core\src\multiarray > -Inumpy\core\src\umath -Inumpy\core\include -IC:\Users\tky\Pyth > > on\release\include -IC:\Users\tky\Python\release\PC /Tc_configtest.c > /Fo_configtest.obj > > Found executable C:\Program Files (x86)\Microsoft Visual Studio > 10.0\VC\BIN\amd64\cl.exe > > C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe > /nologo /INCREMENTAL:NO _configtest.obj /OUT:_configtest.exe /MANI > > FESTFILE:_configtest.exe.manifest > > Found executable C:\Program Files (x86)\Microsoft Visual Studio > 10.0\VC\BIN\amd64\link.exe > > mt.exe -nologo -manifest _configtest.exe.manifest > -outputresource:_configtest.exe;1 > > Found executable C:\Program Files (x86)\Microsoft > SDKs\Windows\v7.0A\bin\x64\mt.exe > > > > _configtest.exe.manifest : general error c1010070: Failed to load and parse > the manifest. The system cannot find the file specified. > > failure. > > removing: _configtest.c _configtest.obj > > Traceback (most recent call last): > > File "setup.py", line 187, in <module> > > setup_package() > > File "setup.py", line 180, in setup_package > > configuration=configuration ) > > File "C:\Users\tky\Python\numpy-1.4.1\numpy\distutils\core.py", line 186, > in setup > > return old_setup(**new_attr) > > File "C:\Users\tky\Python\release\lib\distutils\core.py", line 152, in > setup > > dist.run_commands() > > File "C:\Users\tky\Python\release\lib\distutils\dist.py", line 975, in > run_commands > > self.run_command(cmd) > > File "C:\Users\tky\Python\release\lib\distutils\dist.py", line 995, in > run_command > > cmd_obj.run() > > File "C:\Users\tky\Python\numpy-1.4.1\numpy\distutils\command\build.py", > line 37, in run > > old_build.run(self) > > File "C:\Users\tky\Python\release\lib\distutils\command\build.py", line > 134, in run > > self.run_command(cmd_name) > > File "C:\Users\tky\Python\release\lib\distutils\cmd.py", line 333, in > run_command > > self.distribution.run_command(command) > > File "C:\Users\tky\Python\release\lib\distutils\dist.py", line 995, in > run_command > > cmd_obj.run() > > File > "C:\Users\tky\Python\numpy-1.4.1\numpy\distutils\command\build_src.py", line > 152, in run > > self.build_sources() > > File > "C:\Users\tky\Python\numpy-1.4.1\numpy\distutils\command\build_src.py", line > 163, in build_sources > > self.build_library_sources(*libname_info) > > File > "C:\Users\tky\Python\numpy-1.4.1\numpy\distutils\command\build_src.py", line > 298, in build_library_sources > > sources = self.generate_sources(sources, (lib_name, build_info)) > > File > "C:\Users\tky\Python\numpy-1.4.1\numpy\distutils\command\build_src.py", line > 385, in generate_sources > > source = func(extension, build_dir) > > File "numpy\core\setup.py", line 657, in get_mathlib_info > > raise RuntimeError("Broken toolchain: cannot link a simple C program") > > RuntimeError: Broken toolchain: cannot link a simple C program > > > > > > > > From: numpy-discussion-boun...@scipy.org > [mailto:numpy-discussion-boun...@scipy.org] On Behalf Of KACVINSKY Tom > Sent: Friday, June 22, 2012 11:17 AM > To: 'numpy-discussion@scipy.org' > Subject: [Numpy-discussion] Building numpy with MSVC 2010 and Intel Fortran > 10.x (and higher) > > > > I have reason to build Python 2.6.8 and numpy 1.4.1 with MSVC 2010 and Intel > Fortran 10.1 (and higher). I also am building with MKL 10.3. > > > > So far, I am able to get the setup to recognize the MKL libraries: > > > > C:\Users\tky\Python\numpy-1.6.2>python setup.py build --compiler=msvc > --fcompiler=intel > > Running from numpy source directory.Forcing DISTUTILS_USE_SDK=1 > > F2PY Version 2 > > blas_opt_info: > > blas_mkl_info: > > FOUND: > > libraries = ['mkl_sequential_dll', 'mkl_intel_lp64_dll', 'mkl_core_dll'] > > library_dirs = ['u:\\users\\tky\\mkllib'] > > define_macros = [('SCIPY_MKL_H', None)] > > include_dirs = ['u:\\users\\tky\\mklinc'] > > > > FOUND: > > libraries = ['mkl_sequential_dll', 'mkl_intel_lp64_dll', 'mkl_core_dll'] > > library_dirs = ['u:\\users\\tky\\mkllib'] > > define_macros = [('SCIPY_MKL_H', None)] > > include_dirs = ['u:\\users\\tky\\mklinc'] > > > > lapack_opt_info: > > lapack_mkl_info: > > mkl_info: > > FOUND: > > libraries = ['mkl_sequential_dll', 'mkl_intel_lp64_dll', 'mkl_core_dll'] > > library_dirs = ['u:\\users\\tky\\mkllib'] > > define_macros = [('SCIPY_MKL_H', None)] > > include_dirs = ['u:\\users\\tky\\mklinc'] > > > > FOUND: > > libraries = ['mkl_sequential_dll mkl_intel_lp64_dll mkl_core_dll', > 'mkl_sequential_dll', 'mkl_intel_lp64_dll', 'mkl_core_dll'] > > library_dirs = ['u:\\users\\tky\\mkllib'] > > define_macros = [('SCIPY_MKL_H', None)] > > include_dirs = ['u:\\users\\tky\\mklinc'] > > > > FOUND: > > libraries = ['mkl_sequential_dll mkl_intel_lp64_dll mkl_core_dll', > 'mkl_sequential_dll', 'mkl_intel_lp64_dll', 'mkl_core_dll'] > > library_dirs = ['u:\\users\\tky\\mkllib'] > > define_macros = [('SCIPY_MKL_H', None)] > > include_dirs = ['u:\\users\\tky\\mklinc'] > > > > But where things are failing is during the compiler checks: > > > > customize IntelFCompiler > > Found executable C:\Program Files > (x86)\Intel\Compiler\Fortran\10.1.011\EM64T\bin\ifort.exe > > Found executable C:\Program Files > (x86)\Intel\Compiler\Fortran\10.1.011\EM64T\bin\ifort.exe > > Traceback (most recent call last): > > File "setup.py", line 214, in <module> > > setup_package() > > File "setup.py", line 207, in setup_package > > configuration=configuration ) > > File "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\core.py", line 186, > in setup > > return old_setup(**new_attr) > > File "C:\Users\tky\Python\release\lib\distutils\core.py", line 152, in > setup > > dist.run_commands() > > File "C:\Users\tky\Python\release\lib\distutils\dist.py", line 975, in > run_commands > > self.run_command(cmd) > > File "C:\Users\tky\Python\release\lib\distutils\dist.py", line 995, in > run_command > > cmd_obj.run() > > File "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\command\build.py", > line 37, in run > > old_build.run(self) > > File "C:\Users\tky\Python\release\lib\distutils\command\build.py", line > 134, in run > > self.run_command(cmd_name) > > File "C:\Users\tky\Python\release\lib\distutils\cmd.py", line 333, in > run_command > > self.distribution.run_command(command) > > File "C:\Users\tky\Python\release\lib\distutils\dist.py", line 995, in > run_command > > cmd_obj.run() > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\command\build_src.py", line > 152, in run > > self.build_sources() > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\command\build_src.py", line > 163, in build_sources > > self.build_library_sources(*libname_info) > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\command\build_src.py", line > 298, in build_library_sources > > sources = self.generate_sources(sources, (lib_name, build_info)) > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\command\build_src.py", line > 385, in generate_sources > > source = func(extension, build_dir) > > File "numpy\core\setup.py", line 694, in get_mathlib_info > > st = config_cmd.try_link('int main(void) { return 0;}') > > File "C:\Users\tky\Python\release\lib\distutils\command\config.py", line > 257, in try_link > > self._check_compiler() > > File "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\command\config.py", > line 77, in _check_compiler > > self.fcompiler.customize(self.distribution) > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\fcompiler\__init__.py", > line 502, in customize > > get_flags('arch', aflags) > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\fcompiler\__init__.py", > line 491, in get_flags > > flags.extend(getattr(self.flag_vars, tag)) > > File "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\environment.py", > line 37, in __getattr__ > > return self._get_var(name, conf_desc) > > File "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\environment.py", > line 51, in _get_var > > var = self._hook_handler(name, hook) > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\fcompiler\__init__.py", > line 698, in _environment_hook > > return hook() > > File "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\fcompiler\intel.py", > line 63, in get_flags_arch > > v = self.get_version() > > File > "C:\Users\tky\Python\numpy-1.6.2\numpy\distutils\fcompiler\__init__.py", > line 432, in get_version > > raise CompilerNotFound() > > numpy.distutils.fcompiler.CompilerNotFound > > > > Any ideas on how to circumvent this? > > > > Thanks, > > > > Tom > > > > > > This email and any attachments are intended solely for the use of the > individual or entity to whom it is addressed and may be confidential and/or > privileged. > > If you are not one of the named recipients or have received this email in > error, > > (i) you should not read, disclose, or copy it, > > (ii) please notify sender of your receipt by reply email and delete this > email and all attachments, > > (iii) Dassault Systemes does not accept or assume any liability or > responsibility for any use of or reliance on this email. > > For other languages, go to http://www.3ds.com/terms/email-disclaimer > > This email and any attachments are intended solely for the use of the > individual or entity to whom it is addressed and may be confidential and/or > privileged. > > If you are not one of the named recipients or have received this email in > error, > > (i) you should not read, disclose, or copy it, > > (ii) please notify sender of your receipt by reply email and delete this > email and all attachments, > > (iii) Dassault Systemes does not accept or assume any liability or > responsibility for any use of or reliance on this email. > > For other languages, go to http://www.3ds.com/terms/email-disclaimer > > This email and any attachments are intended solely for the use of the > individual or entity to whom it is addressed and may be confidential and/or > privileged. > > If you are not one of the named recipients or have received this email in > error, > > (i) you should not read, disclose, or copy it, > > (ii) please notify sender of your receipt by reply email and delete this > email and all attachments, > > (iii) Dassault Systemes does not accept or assume any liability or > responsibility for any use of or reliance on this email. > > For other languages, go to http://www.3ds.com/terms/email-disclaimer > > > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion