- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试检测我的 cpu 的当前 p 状态。我注意到,在我的 ryzen 1700x 系统上,p 状态 MSR (C001_0063) 始终返回 2,即使核心显然不处于该状态。我认为它曾经可以与我的主板附带的初始 BIOS (v0403) 配合使用,但不再可供下载1。
我的 CPU 已超频2 至 3.8GHz。我使用 cpufreq-set
来修复速度,并使用 cpufreq-info
来验证:
analyzing CPU 0:
driver: acpi-cpufreq
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 4294.55 ms.
hardware limits: 2.20 GHz - 3.80 GHz
available frequency steps: 3.80 GHz, 2.20 GHz
available cpufreq governors: ondemand, conservative, performance, schedutil
current policy: frequency should be within 3.80 GHz and 3.80 GHz.
The governor "performance" may decide which speed to use
within this range.
current CPU frequency is 3.80 GHz (asserted by call to hardware).
下面是一个小测试程序,显示了核心 #0 的寄存器值,以及相对于 P0 状态的有效速度。需要root权限。对我来说,它在负载下不断打印 pstate: 2, speed: 99%
。
#include <stdio.h>
#include <stdint.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main(int argc, char** argv)
{
uint64_t aperf_old = 0;
uint64_t mperf_old = 0;
int fd;
fd = open("/dev/cpu/0/msr", O_RDONLY);
uint64_t pstate_limits;
pread(fd, &pstate_limits, sizeof(pstate_limits), 0xC0010061);
printf("pstate ranges: %d to %d\n", (int)(pstate_limits & 0x07), (int)((pstate_limits >> 4) & 0x07));
for(;;)
{
uint64_t pstate;
uint64_t pstate_req;
uint64_t aperf;
uint64_t mperf;
pread(fd, &pstate_req, sizeof(pstate_req), 0xC0010062);
pread(fd, &pstate, sizeof(pstate), 0xC0010063);
pread(fd, &aperf, sizeof(aperf), 0x000000E8);
pread(fd, &mperf, sizeof(mperf), 0x000000E7);
printf("pstate: %d, requested: %d", (int)(pstate & 0x07), (int)(pstate_req & 0x07));
if (mperf_old != 0 && mperf_old != mperf)
{
printf(", speed: %d%%", (int)(100 * (aperf - aperf_old) / (mperf - mperf_old)));
}
putchar('\n');
mperf_old = mperf;
aperf_old = aperf;
sleep(1);
}
}
类似的方法也适用于我的 FX-8350。我究竟做错了什么?也欢迎测试结果。
系统信息:
更新:我已更改代码以打印请求的 pstate,并且该寄存器正在按预期更改。正如各种基准测试所证实的那样,实际的 CPU 速度也在发生变化。
<小时/>1由于某些不明原因,BIOS备份功能被禁用,因此我无法在更新之前进行复制。
2 当我有机会时,我会在默认情况下运行测试。
3不知道为什么它是重复的。
最佳答案
我认为,每个核心(实际上:每个 CCD)P 状态位于未记录的 MSR c0010293,位 22:24 中。
关于linux - 为什么 ryzen 上的 p-state 状态 MSR 没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47912008/
我的开发环境是 Visual Studio 2015 和 Intel Compiler 17。我刚打开一台配备 AMD Ryzen 处理器的新机器。 在我的旧英特尔 3930K 上一切正常,但现在,在
我想创建我的第一个汇编器,这样我就可以编写我自己的程序语言、我自己的操作系统等等。只有一个问题: 我找不到 ryzen 7 2700 的指令集。我已经发现它使用 zen+ 架构,但我也找不到相关的东西
我想创建我的第一个汇编器,这样我就可以编写我自己的程序语言、我自己的操作系统等等。只有一个问题: 我找不到 ryzen 7 2700 的指令集。我已经发现它使用 zen+ 架构,但我也找不到相关的东西
像许多其他人一样,我给自己买了一个新的 Ryzen CPU。我需要在我的博士学位中使用 Anaconda Python(以及 Tensorflow 等)。由于 Anaconda 现在预装了 MKL,这
我尝试从Android Studio构建Android应用。 我尝试从Android Studio安装程序安装HAXM,但出现错误: 我的BIOS中已启用英特尔虚拟化技术。而且Hyper-V已在Win
我有一个 AMD Ryzen CPU,但 Android 模拟器不工作。 它不启动模拟器,因为 CPU 不支持 x86 模拟器 最佳答案 更新 - 我之前的回答不再正确。谷歌在其最新的测试版中添加了
我正在尝试检测我的 cpu 的当前 p 状态。我注意到,在我的 ryzen 1700x 系统上,p 状态 MSR (C001_0063) 始终返回 2,即使核心显然不处于该状态。我认为它曾经可以与我的
我知道 Numpy 可以使用不同的后端,如 OpenBLAS 或 MKL。我还读到 MKL 针对英特尔进行了大量优化,所以通常人们建议在 AMD 上使用 OpenBLAS,对吗? 我使用以下测试代码:
简单的程序 #include int main() { printf( "Hello, world!\n" ); } 使用带有以下开关的英特尔 C++ 编译器 2019.4 编译时:/O3/
我在不同的机器(包括 Linux 和 Windows,以及 Intel 和 AMD CPU 以及 clang++、GNU 和 MSVC)中使用线程库。在所有这些中,std::thread::hardw
我有一台配备 AMD Ryzen 5 2500u(集成了 radeon vega 8 移动 GPU)处理器的笔记本电脑,并使用 Ubuntu 18.04.2。我想在 CPU 和 GPU 上使用 C++
是否有一种固有的或其他有效的方法将 AVX 寄存器的 64 位组件的高/低 32 位组件重新打包到 SSE 寄存器中?使用 AVX2 的解决方案是可以的。 到目前为止,我正在使用以下代码,但分析器显示
所以我决定看看如何通过英特尔® Intrinsics 在 C 中使用 SSE、AVX 等。不是因为有任何实际兴趣将它用于某事,而是出于纯粹的好奇心。试图检查使用 AVX 的代码是否实际上比非 AVX
我写了一个简单的测试(代码在底部)来测试我的 64 位 Debian 系统上 memcpy 的性能。在我的系统上,当编译为 64 位二进制文件时,这会在所有 block 大小上提供一致的 38-4
我刚刚安装了一台基于 AMD Ryzen 2700x 和 32GB 内存(运行 Ubuntu 18.04)的台式电脑。在工作中,我有一台使用了 3 年的笔记本电脑工作站,配备 Intel i7-682
我是一名优秀的程序员,十分优秀!