抱歉这么多问题.我在Intel core 2 Duo上运行Mac OSX 10.6.我正在为我的研究运行一些基准测试,我遇到了另一件令我困惑的事情.
如果我跑
python -mtimeit -s 'import numpy as np; a = np.random.randn(1e3,1e3)' 'np.dot(a,a)'
我得到以下输出: 10 loops, best of 3: 142 msec per loop
但是,如果我跑
python -mtimeit -s 'import numpy as np; a = np.random.randint(10,size=1e6).reshape(1e3,1e3)' 'np.dot(a,a)'
我得到以下输出: 10 loops, best of 3: 7.57 sec per loop
然后我跑了
python -mtimeit -s 'import numpy as np; a = np.random.randn(1e3,1e3)' 'a*a'
然后
python -mtimeit -s 'import numpy as np; a = np.random.randint(10,size=1e6).reshape(1e3,1e3)' 'a*a'
两个都在每个循环运行大约7.6毫秒,所以它不是乘法.添加也有类似的速度,所以这些都不应该影响点积,对吧?那么为什么使用整数计算点积比使用浮点数慢50多倍呢?
我正在运行Mac OS X 10.6.8并使用Enthought Python Distribution.我想要numpy函数来利用我的核心.我遇到了类似于这篇文章的问题:python/numpy中的多线程blas但是在完成该海报的步骤之后,我仍然遇到同样的问题.这是我的numpy.show_config():
lapack_opt_info:
libraries = ['mkl_lapack95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
library_dirs = ['/Library/Frameworks/EPD64.framework/Versions/1.4.2/lib']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/Library/Frameworks/EPD64.framework/Versions/1.4.2/include']
blas_opt_info:
libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
library_dirs = ['/Library/Frameworks/EPD64.framework/Versions/1.4.2/lib']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/Library/Frameworks/EPD64.framework/Versions/1.4.2/include']
lapack_mkl_info:
libraries = ['mkl_lapack95_lp64', 'mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
library_dirs = ['/Library/Frameworks/EPD64.framework/Versions/1.4.2/lib']
define_macros = [('SCIPY_MKL_H', None)]
include_dirs = ['/Library/Frameworks/EPD64.framework/Versions/1.4.2/include']
blas_mkl_info:
libraries = ['mkl_intel_lp64', 'mkl_intel_thread', 'mkl_core', 'mkl_mc', 'mkl_mc3', 'pthread']
library_dirs = …
Run Code Online (Sandbox Code Playgroud)