[Numpy-discussion] Building numpy with MSVC 2010 and Intel Fortran 10.x (and higher)

KACVINSKY Tom Tom.KACVINSKY at 3ds.com
Fri Jun 22 15:41:54 EDT 2012


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-bounces at scipy.org [mailto:numpy-discussion-bounces at scipy.org] On Behalf Of KACVINSKY Tom
Sent: Friday, June 22, 2012 11:22 AM
To: 'numpy-discussion at 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-bounces at scipy.org [mailto:numpy-discussion-bounces at scipy.org] On Behalf Of KACVINSKY Tom
Sent: Friday, June 22, 2012 11:17 AM
To: 'numpy-discussion at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20120622/956301e8/attachment.html>


More information about the NumPy-Discussion mailing list