ij...',z-6ren">
gpt4 book ai didi

numpy - "an intermediate result is being cached"是什么意思?

转载 作者:行者123 更新时间:2023-12-01 23:08:14 25 4
gpt4 key购买 nike

我有一组 n 个向量存储在 3 x n 矩阵 z 中。我使用np.einsum找到了外部产品。当我使用以下方法计时时:

%timeit v=np.einsum('i...,j...->ij...',z,z)

我得到了结果:

The slowest run took 7.23 times longer than the fastest. This could mean that an
intermediate result is being cached
100000 loops, best of 3: 2.9 µs per loop

这里发生了什么以及可以避免吗?最好的 3 是 2.9us,但最慢的可能更典型。

最佳答案

消息“正在缓存中间结果”只是 %timeit 报告的预设消息中的盲目猜测。它可能是真的,也可能不是,您不应该假设它是正确的。

特别是,第一次运行速度最慢的最常见原因之一是数组位于 CPU cache 中。仅在第一次运行后。

CPU 自动缓存内容;你无法避免这一点,而且你也不想真正避免它。然而,优化算法使CPU缓存能够最佳工作是当今高性能计算需要考虑的瓶颈之一。

关于numpy - "an intermediate result is being cached"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29759883/

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