相关疑难解决方法(0)

为什么我的CPU无法在HPC中保持最佳性能

我开发了一个高性能的 Cholesky分解程序,它应该在单个CPU上具有大约10.5 GFLOP的峰值性能(没有超线程).但是当我测试它的性能时,有一些我不明白的现象.在我的实验中,我通过增加矩阵维数N(从250到10000)来测量性能.

  • 在我的算法中,我已经应用了缓存(具有调整的阻塞因子),并且在计算期间总是以单位步长访问数据,因此缓存性能是最佳的; 消除了TLB和寻呼问题;
  • 我有8GB的可用RAM,实验期间的最大内存占用量低于800MB,因此没有交换;
  • 在实验过程中,没有像Web浏览器那样的资源需求过程同时运行.只有一些非常便宜的后台进程正在运行以记录CPU频率以及每2秒CPU温度数据.

对于任何NI测试,我都希望性能(在GFLOP中)应保持在10.5左右.但是,如第一张图所示,在实验中间观察到显着的性能下降.

CPU频率和CPU温度见第2和第3图.实验在400年代结束.实验开始时温度为51度,CPU忙时迅速升至72度.之后,它慢慢增长到78度的最高点.CPU频率基本稳定,温度升高时不下降.

所以,我的问题是:

  • 由于CPU频率没有下降,为什么性能会受到影响?
  • 温度究竟如何影响CPU性能?从72度到78度的增量真的会让事情变得更糟吗? 在此输入图像描述 在此输入图像描述 在此输入图像描述

CPU信息

System: Ubuntu 14.04 LTS
Laptop model: Lenovo-YOGA-3-Pro-1370
Processor: Intel Core M-5Y71 CPU @ 1.20 GHz * 2

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0,1
Off-line CPU(s) list:  2,3
Thread(s) per core:    1
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 61
Stepping:              4
CPU MHz:               1474.484
BogoMIPS:              2799.91
Virtualisation: …
Run Code Online (Sandbox Code Playgroud)

x86 hpc matrix cpu-speed matrix-multiplication

12
推荐指数
1
解决办法
4302
查看次数

标签 统计

cpu-speed ×1

hpc ×1

matrix ×1

matrix-multiplication ×1

x86 ×1