小编L P*_*ari的帖子

通过施加内存压力来降低 CPU 频率

我强调我的系统,看看它如何影响我使用stress-ng编写的一些程序。

程序本身是一个神经网络,主要由一些嵌套循环组成,进行一些乘法运算,并使用大约 1G 的 RAM 整体用 C++ 编码。

我使用以下方法对系统施加了一些内存压力:

stress-ng --vm 4 --vm-bytes 2G -t 100s
Run Code Online (Sandbox Code Playgroud)

这会创建 4 个工作人员在 mmap 上旋转,每个工作人员分配 2G 的 RAM。这显着减慢了我的程序的执行速度(从大约 150 毫秒到 250 毫秒)。但是程序变慢的原因不是缺少内存或内存带宽之类的。相反,CPU 周期从 3.4GHz(无压力 ng)减少到 2.8GHz(有压力 ng)。正如预期的那样,CPU 利用率保持大致相同 (99%)。

我使用以下方法测量了 CPU 频率

sudo perf stat -B ./my_program
Run Code Online (Sandbox Code Playgroud)

有人知道为什么内存压力会降低 CPU 的速度吗?

我的 CPU 是 Intel(R) Core(TM) i5-8250U,我的操作系统是 Ubuntu 18.04。

亲切的问候 lpolari

c++ linux cpu intel cpu-architecture

2
推荐指数
1
解决办法
622
查看次数

标签 统计

c++ ×1

cpu ×1

cpu-architecture ×1

intel ×1

linux ×1