- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开发了一个 高性能 Cholesky 分解例程,它在单个 CPU(没有超线程)上的峰值性能应该在 10.5 GFLOPs 左右。但是在我测试它的性能时,有一些我不明白的现象。在我的实验中,我测量了矩阵维数 N 增加时的性能,从 250 到 10000。
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: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 4096K
NUMA node0 CPU(s): 0,1
CPU 0, 1
driver: intel_pstate
CPUs which run at the same hardware frequency: 0, 1
CPUs which need to have their frequency coordinated by software: 0, 1
maximum transition latency: 0.97 ms.
hardware limits: 500 MHz - 2.90 GHz
available cpufreq governors: performance, powersave
current policy: frequency should be within 500 MHz and 2.90 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 1.40 GHz.
boost state support:
Supported: yes
Active: yes
lm-sensors
linux 包跟踪此类信息,确实,CPU 温度上升了。
bash
命令是我用来测量的:
while true
do
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq >> cpu0_freq.txt ## parameter "freq0"
cat sys/devices/system/cpu/cpu1/cpufreq/scaling_cur_freq >> cpu1_freq.txt ## parameter "freq1"
sensors | grep "Core 0" >> cpu0_temp.txt ## parameter "temp0"
sensors | grep "Core 1" >> cpu1_temp.txt ## parameter "temp1"
sleep 2
done
freq[i] <- max (freq0[i], freq1[i])
temp[i] <- max (temp0[i], temp1[i])
最佳答案
电话:DR : 你的结论是正确的。您的 CPU 的持续性能远未达到峰值。这是正常的:考虑到轻量级散热器、风扇和供电,峰值性能仅可作为突发交互式工作负载的短期“奖励”,高于其额定持续性能。
你可以在这台机器上开发/测试,但基准测试会很困难。您需要在集群、服务器或台式机上运行,或者至少是在游戏/工作站笔记本电脑上运行。
从您发布的 CPU 信息来看,您有一个 dual-core-with-hyperthreading Intel Core M with a rated sustainable frequency of 1.20 GHz ,布罗德威尔一代。它的最大睿频为 2.9GHz,它的 TDP-up 可持续频率为 1.4GHz(6W)。
对于短时间爆发,它可以运行得更快,并产生比其冷却系统处理所需的热量更多的热量 .这是什么Intel's "turbo" feature都是关于。它让像您这样的低功耗超便携笔记本电脑在 Web 浏览器之类的东西中拥有快速的 UI 性能,因为来自交互的 CPU 负载几乎总是突发的。
台式机/服务器 CPU(至强和 i5/i7,但不是 i3)仍然具有涡轮增压,但持续频率更接近最大涡轮增压。例如Haswell i7-4790k具有 4.0GHz 的持续“额定”频率。在该频率及以下频率下,它的消耗(并转化为热量)不会超过其 88W 的额定 TDP。因此,它需要一个可以处理 88W 的冷却系统。在功率/电流/温度允许的情况下,它的时钟频率最高可达 4.4GHz,并使用超过 88W 的功率。 (计算功率历史以保持 88W 持续功率的滑动窗口有时可在 BIOS 中配置,例如 20 秒或 5 秒。根据运行的代码,4.4GHz 可能不会将电流需求增加到接近峰值的任何位置。例如有很多分支错误预测的代码仍然受到 CPU 频率的限制,但这不会像 Prime95 那样使 256b AVX FP 单元饱和。)
笔记本电脑的最大涡轮比额定频率高 2.4 倍。那个高端 Haswell 台式机 CPU 的频率只能提高 1.1 倍。最大持续频率已经非常接近最大峰值限制,因为它被认为需要一个能够跟上这种热量产生的良好冷却系统。还有一个可以提供那么多电流的固态电源。
Core M 的目的是拥有一个可以将自身限制在超低功耗水平的 CPU (1.2GHz 时的额定 TDP 为 4.5 W,1.4GHz 时为 6W)。因此,笔记本电脑制造商可以安全地设计一个小巧轻便的冷却和电力传输系统,并且只能处理那么多的电力。 “场景设计功率”只有 3.5W,这应该代表实际代码的热要求,而不是像 Prime95 这样的最大功率的东西。
即使是“普通”超低电压笔记本电脑 CPU 的额定持续功率也为 15W,而高功率游戏/工作站笔记本电脑 CPU 的额定功率为 45W。当然,笔记本电脑供应商将这些 CPU 放入配备更强大散热器和风扇的机器中。见 table on wikipedia ,并比较台式机/服务器 CPU(也在同一页面上)。
The achievement of peak performance seems to rule out all effectsother than temperature. But this is really annoying. Basically it saysthat computer will get tired in HPC, so we can't get expectedperformance gain. Then what is the point of developing HPC algorithm?
关于performance - 为什么我的超便携笔记本电脑 CPU 不能在 HPC 中保持最佳性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36363613/
在C#中,我可以通过base关键字访问基类,在java中,我可以通过super关键字访问它。在delphi中如何做到这一点?假设我有以下代码: type TForm3 = class(TF
在这件事上我已经把头撞到墙上好几次了。所以我希望在正确的方向上得到一点帮助。 我有一张 table ,上面有订单,一张 table 上有火车,一张 table 上有航类,一张 table 上有巴士。每
在 Python 中,假设我有以下代码: class SuperClass(object): def __init__(self, x): self.x = x
我希望这个 subview 扩展到它的父 View 之外,但是父 View 的边框正在切入 subview 。有没有办法防止这种情况? class TheView : UIView { let
我有一个标准的高斯函数,看起来像这样: def gauss_fnc(x, amp, cen, sigma): return amp * np.exp(-(x - cen) ** 2 / (2
例如,我有下一个类,带有有界类型参数: public class ItemContainer { void addItems(List items); } 在另一个带有参数的类中使用: pub
如何将此设置转换为命令? 结果如下: // Manual Compression (see the image above) Compressed Size: 12,647,451 bytes //
请建议在应用继承时如何使用@Wither/@With。 我有一个抽象类Parent和具体的Child。 Child 应该是不可变的。将 @Wither 放在两者上会给我两个错误: 构造函数 Child
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在尝试向服务器(虚拟托管)发出 HTTP2 请求,该服务器根据主机 header 值 (SNI) 提供 SSL 证书。 # conn = hyper.HTTP20Connection('h
我有一个应用程序,必须将大约 1300 万行、大约 10 个平均长度的字符串插入到嵌入式 HSQLDB 中。我一直在调整一些东西(批量大小、单线程/多线程、缓存/非缓存表、MVCC 事务、log_si
我想定义一个函数f(x, t::Type)根据 isa(x, t) 是否执行不同的行为.假设我想调用b1(x)如果是,b2(x)除此以外。 我知道我可以像这样在运行时进行动态检查: function
我正在使用 Hyper-V WMI Provider在 Hyper-V 中导入虚拟机,特别是使用 ImportVirtualSystemEx Msvm_VirtualSystemManagementS
这几个星期以来一直困扰着我,我没有结束对它的研究,因为我目前重载并且它让我落后于第一年的 CS (opengl) 大学类(class),这首先让我研究了这个:如何只用一个 for 循环绘制立方体的所有
我正在我的计算机(操作系统:Windows 8)上开发一个 WP8 应用程序。我需要安装一个 VM 才能拥有 linux。同时我需要使用我的 Windows Phone 模拟器。 我下载了 VMWar
我是一名优秀的程序员,十分优秀!