Numpy / Scipy com Openblas

2

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
    
por Black 18.07.2015 / 08:24

0 respostas