gpt4 book ai didi

multithreading - 并行化和矢量化性能瓶颈 : Does AVX and MT compete?

转载 作者:行者123 更新时间:2023-12-04 06:50:53 25 4
gpt4 key购买 nike

我试图计算一个大矩阵中所有元素的总和。以下是测试用例:

  1. MT 和 AVX 耗时 37 秒
  2. MT 且无 AVX 需要 40 秒
  3. AVX 且无 MT 需要 49 秒
  4. 既不是 AVX 也不是 MT 105 s

在所有情况下,CPU 时钟固定为 3.0 GHz(由 cpufreq-info 声明):

current policy: frequency should be within 1.60 GHz and 3.40 GHz.
The governor "userspace" may decide which speed to use
within this range.
current CPU frequency is 3.00 GHz.

矩阵有 25000000 个 double 类型的元素,值为 1.0。并且在循环中重复计算总和 4096 次。在没有 AVX 的情况下,使用 MT 时速度提高了 2.6。对于 AVX,它只有 1.3。运行 MT 时,矩阵被分成 4 个 block ,每个线程一个。如果我降低 CPU 频率,AVX 的 MT 改进更大,因此缓存未命中也可能存在一些问题,但这不能解释 (4)/(2) 和 (3)/(1) 之间的区别。 AVX 和 MT 是否在某种程度上相互竞争?芯片是i3570K。

最佳答案

您的基准性能很可能受到执行延迟的限制,但任何一种形式的并行化(MT 或矢量化)都可以让您打破它并达到下一个瓶颈,即 CPU 的内存 BW。

检查您的 CPU 可以达到的峰值带宽并与您的数据进行比较,看起来您只是以 20.5GB/s 的速度饱和(25000000 个元素 * 4096 个循环 * 8 字节,假设这是您的系统使用双倍/~40 秒的时间) ,这似乎有点低 link说它应该达到 25GB/s,但大致相同,所以这可能是由于其他效率低下造成的,例如 DDR 类型、在后台运行的其他应用程序/操作系统、CPU 进行频率缩放以节省电力/减少热量等..

您还可以尝试运行一些内存基准测试(lmbench、sandra 等),看看它们在相同环境下是否表现更好。

关于multithreading - 并行化和矢量化性能瓶颈 : Does AVX and MT compete?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491163/

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