instalar - numpy python linux
¿Cómo verificar el enlace blas/lapack en numpy/scipy? (4)
Como usa las versiones cargadas dinámicamente, puedes hacer esto:
$ ldd anyoftheCmodules.so
donde anyoftheCmodules.so
podría ser, por ejemplo, numpy/core/_dotblas.so
, que enlaza con libblas.so
.
Estoy construyendo mi entorno numpy / scipy basado en blas y lapack más o menos en función de this paseo.
Cuando termine, ¿cómo puedo comprobar que mis funciones numpy / scipy realmente usan las funcionalidades blas / lapack previamente creadas?
El método numpy.__config__.show()
genera información sobre enlaces recopilados en tiempo de compilación. Mi salida se ve así. Creo que significa que estoy usando BLAS / LAPACK que viene con Mac OS.
>>>import numpy as np
>>>np.__config__.show()
lapack_opt_info:
extra_link_args = [''-Wl,-framework'', ''-Wl,Accelerate'']
extra_compile_args = [''-msse3'']
define_macros = [(''NO_ATLAS_INFO'', 3)]
blas_opt_info:
extra_link_args = [''-Wl,-framework'', ''-Wl,Accelerate'']
extra_compile_args = [''-msse3'', ''-I/System/Library/Frameworks/vecLib.framework/Headers'']
define_macros = [(''NO_ATLAS_INFO'', 3)]
Lo que estás buscando es esto: información del sistema
Compilé numpy / scipy con atlas y puedo verificar esto con:
import numpy.distutils.system_info as sysinfo
sysinfo.get_info(''atlas'')
Verifique la documentación para más comandos.
Puede usar la herramienta de dependencia del cargador de enlaces para observar los componentes de enlace de nivel C de su compilación y ver si tienen dependencias externas en su blas y lapack de su elección. No estoy cerca de una caja de linux en este momento, pero en una máquina OS X puedes hacer esto dentro del directorio site-packages que contiene las instalaciones:
$ otool -L numpy/core/_dotblas.so
numpy/core/_dotblas.so:
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 268.0.1)
$ otool -L scipy/linalg/flapack.so
scipy/linalg/flapack.so (architecture i386):
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0)
scipy/linalg/flapack.so (architecture ppc):
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
$ otool -L scipy/linalg/fblas.so
scipy/linalg/fblas.so (architecture i386):
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
/System/Library/Frameworks/vecLib.framework/Versions/A/vecLib (compatibility version 1.0.0, current version 242.0.0)
scipy/linalg/fblas.so (architecture ppc):
/System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate (compatibility version 1.0.0, current version 4.0.0)
/usr/local/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.4)
sustituya ldd
en lugar de otool
en un sistema gnu / Linux y debe obtener las respuestas que necesita.