是纽比.dot等于BLAS gemm/gemv?

2024-06-08 23:02:54 发布

您现在位置:Python中文网/ 问答频道 /正文

看来纽比.dot不等于blas的gemv/gemm,实验如下:

>>> import numpy
>>> numpy.show_config()
lapack_opt_info:
    libraries = ['openblas']
    library_dirs = ['/usr/local/anaconda/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
blas_opt_info:
    libraries = ['openblas']
    library_dirs = ['/usr/local/anaconda/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
openblas_info:
    libraries = ['openblas']
    library_dirs = ['/usr/local/anaconda/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
openblas_lapack_info:
    libraries = ['openblas']
    library_dirs = ['/usr/local/anaconda/lib']
    define_macros = [('HAVE_CBLAS', None)]
    language = c
blas_mkl_info:
  NOT AVAILABLE
>>> A=numpy.random.randn(100,50)
>>> x=numpy.random.randn(50)
>>> from scipy import linalg
>>> gemv = linalg.get_blas_funcs("gemv")
>>> numpy.all(gemv(1,A,x)==numpy.dot(A,x))
False
>>> gemm = linalg.get_blas_funcs("gemm")
>>> numpy.all(gemm(1,A,x)==numpy.dot(A,x))
False

我不知道为什么,有谁能告诉我如何构造一个基于BLAS的函数等于纽比.dot在


Tags: infonumpylibrarieslibusrlocallibraryanaconda