- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图计算一个大矩阵中所有元素的总和。以下是测试用例:
在所有情况下,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/
我正在尝试实现一个函数,该函数接受两个函数作为参数,运行两个函数,返回第一个返回的函数的值,并在完成执行之前杀死较慢的函数。我的问题是,当我尝试清空用于收集返回值的队列对象时,我陷入困境。是否有更“正
我试图计算一个大矩阵中所有元素的总和。以下是测试用例: MT 和 AVX 耗时 37 秒 MT 且无 AVX 需要 40 秒 AVX 且无 MT 需要 49 秒 既不是 AVX 也不是 MT 105
我想显示网站上的事件图表,并让用户可以选择 1-23 小时或 1-15 天的日期范围。为此,我在 here 的帮助下创建了 2 个 slider 。 。 因此,当用户移动一个 slider 时,我想将
我正在努力实现 请求/回复 应该由多个 并发处理的交换竞争消费者 . 我有一个独立的大师 - 负责生成任务队列的模块。我有很多 worker - 应该同时使用来自该队列的消息的模块。 这是大师 - C
我是一名优秀的程序员,十分优秀!