У меня есть скрипт numpy
, который тратит около 50% времени выполнения на следующий код:
s = numpy.dot(v1, v1)
куда
v1 = v[1:]
и v
представляет собой 4000-элементный 1D ndarray
из float64
, хранящийся в непрерывной памяти (v.strides
равен (8,)
).
Любые предложения по ускорению этого?
изменить Это на оборудовании Intel. Вот результат моего numpy.show_config()
:
atlas_threads_info:
libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/local/atlas-3.9.16/lib']
language = f77
include_dirs = ['/usr/local/atlas-3.9.16/include']
blas_opt_info:
libraries = ['ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/local/atlas-3.9.16/lib']
define_macros = [('ATLAS_INFO', '"\\"3.9.16\\""')]
language = c
include_dirs = ['/usr/local/atlas-3.9.16/include']
atlas_blas_threads_info:
libraries = ['ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/local/atlas-3.9.16/lib']
language = c
include_dirs = ['/usr/local/atlas-3.9.16/include']
lapack_opt_info:
libraries = ['lapack', 'ptf77blas', 'ptcblas', 'atlas']
library_dirs = ['/usr/local/atlas-3.9.16/lib']
define_macros = [('ATLAS_INFO', '"\\"3.9.16\\""')]
language = f77
include_dirs = ['/usr/local/atlas-3.9.16/include']
lapack_mkl_info:
NOT AVAILABLE
blas_mkl_info:
NOT AVAILABLE
mkl_info:
NOT AVAILABLE
dot
кажется достаточно эффективным. Однако, если вы хотите показать нам больше кода, кто-то может узнать, как оптимизировать вычисления. Спасибо - person eat   schedule 13.05.2011