Estou tentando instalar o Numpy / Scipy e permitir que eles usem o Openblas. Tenho acompanhado vários guias, mas tenho usado esse um tarde. No final do guia, há alguns testes para verificar a velocidade do Numpy / Scipy. Os testes são:
import numpy
import sys
import timeit
try:
import numpy.core._dotblas
print 'FAST BLAS'
except ImportError:
print 'slow blas'
print "version:", numpy.__version__
print "maxint:", sys.maxint
print
x = numpy.random.random((1000,1000))
setup = "import numpy; x = numpy.random.random((1000,1000))"
count = 5
t = timeit.Timer("numpy.dot(x, x.T)", setup=setup)
print "dot:", t.timeit(count)/count, "sec"
import timeit
setup = "import numpy;\
import scipy.linalg as linalg;\
x = numpy.random.random((1000,1000));\
z = numpy.dot(x, x.T)"
count = 5
t = timeit.Timer("linalg.cholesky(z, lower=True)", setup=setup)
print "cholesky:", t.timeit(count)/count, "sec"
t = timeit.Timer("linalg.svd(z)", setup=setup)
print "svd:", t.timeit(count)/count, "sec"
Meus resultados de teste mostram que slow blas
está sendo usado. No entanto, os resultados do meu teste estão de acordo com os resultados do teste do guia. Meu sentimento é que o openblas está sendo usado pelo Numpy / Scipy, mas o slow blas
está sendo impresso porque numpy.core
não tem o arquivo _dotblas
(o que não acontece). Como posso saber se o openblas está realmente sendo usado?
Resultados do teste do guia:
NumPy
dot: 0.0569217920303 sec
SciPy
cholesky: 0.0204758167267 sec
svd: 0.81153883934 sec
Meus resultados de teste:
slow blas
version: 1.10.0.dev0+a419ebb
maxint: 9223372036854775807
dot: 0.0185512065887 sec
cholesky: 0.0125649929047 sec
svd: 0.293599033356 sec