gpt4 book ai didi

python - 多核硬件上的 numpy

转载 作者:太空狗 更新时间:2023-10-29 16:57:59 34 4
gpt4 key购买 nike

关于让 numpy 使用多核(在 Intel 硬件上)处理内部和外部向量积、向量矩阵乘法等事情的最新技术水平如何?

我很乐意在必要时重建 numpy,但此时我正在寻找无需更改代码即可加快速度的方法。

作为引用,我的show_config()如下,我从来没有观察到numpy使用多个核心:

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

最佳答案

您可能应该首先检查 numpy 使用的 Atlas 构建是否是使用多线程构建的。您可以构建并运行它来检查 Atlas 配置(直接来自 Atlas FAQ):

main()
/*
* Compile, link and run with something like:
* gcc -o xprint_buildinfo -L[ATLAS lib dir] -latlas ; ./xprint_buildinfo
* if link fails, you are using ATLAS version older than 3.3.6.
*/
{
void ATL_buildinfo(void);
ATL_buildinfo();
exit(0);
}

如果您没有多线程版本的 Atlas:“这是您的问题”。如果它是多线程的,那么您需要使用适当大的矩阵-矩阵乘积来练习多线程 BLAS3 例程之一(可能是 dgemm),并查看是否使用了线程。我想我说得对,Atlas 中的 BLAS 2 和 BLAS 1 例程都不支持多线程(并且有充分的理由,因为除了真正巨大的问题规模之外没有性能优势)。

关于python - 多核硬件上的 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5991014/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com