gpt4 book ai didi

python - 在 Python 中使用多线程 blas 实现和多处理是否值得?

转载 作者:太空狗 更新时间:2023-10-30 00:51:54 33 4
gpt4 key购买 nike

假设我有一台 16 核机器和一个令人尴尬的并行程序。我使用了很多 numpy 点积并添加了 numpy 数组,如果我不使用多处理,那将是一个明智的选择:确保 numpy 是针对使用多线程的 blas 版本构建的。但是,我正在使用多处理,并且所有内核一直都在努力工作。在这种情况下,使用多线程 blas 有什么好处吗?

大多数操作是 (blas) 类型 1,一些是类型 2。

最佳答案

假设您的代码实际上使用了多线程 BLAS 调用,您可能需要多加小心。实际上使用底层 BLAS 的 numpy 运算符相对较少,实际上多线程的 BLAS 调用相对较少。 numpy.dot 使用 BLAS dotgemvgemm,具体取决于操作,但仅在这些操作中gemm 通常是多线程的,因为这样做对于 O(N) 和 O(N^2) 的 BLAS 调用几乎没有任何性能优势。如果您将自己限制在 1 级和 2 级 BLAS 操作上,我怀疑您实际上是否在使用任何多线程 BLAS 调用,即使您使用的是使用多线程 BLAS 构建的 numpy 实现,如 Atlas 或 MKL .

关于python - 在 Python 中使用多线程 blas 实现和多处理是否值得?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7761859/

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