标签: amd-processor

cpupower监视器中的C状态Cx是什么

我正在分析一个应用程序在运行 linux 的 x86-64 处理器上的执行时间。在开始对应用程序进行基准测试之前,我想确保禁用动态频率缩放和空闲状态。

检查频率缩放

$ cat /sys/devices/system/cpu/cpufreq/boost
0
Run Code Online (Sandbox Code Playgroud)

这告诉我频率缩放(Intel 的 Turbo Boost 或 AMD 的 Turbo Core)被禁用。事实上,我们将其设置为恒定的 2GHz,这在下一个练习中很明显。

检查 CPU 空闲

$ cpupower --cpu 0-63 idle-info
CPUidle driver: none

CPUidle governor: menu
analyzing CPU 0:

CPU 0: No idle states

analyzing CPU 1:

CPU 1: No idle states

analyzing CPU 2:

CPU 2: No idle states
...
Run Code Online (Sandbox Code Playgroud)

因此,空闲状态被禁用。现在我确定可以干扰基准测试的两个“功能”都被禁用,我继续使用 cpupower 监视应用程序。

但是,当我运行我的应用程序来监控 C 状态时,我发现超过 99% 的时间都花在了 C0 状态,这应该是这种情况。但是,我也看到了一种称为 Cx 状态的东西,其中内核花费了 0.01 - 0.02% 的时间。

$ cpupower monitor -c ./my_app …
Run Code Online (Sandbox Code Playgroud)

linux benchmarking x86-64 amd-processor

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

针对x86的.NET EXE是否会在AMD芯片上运行?

如果我将x86平台作为我的.NET应用程序的目标,它会在AMD芯片上正常运行吗?我知道它可以与英特尔芯片配合使用,并且Vista 64能够以特殊模式运行x86应用程序,但我不知道有多少是硬件,有多少是操作系统.

我已经在Vista 64上使用英特尔芯片进行了测试,它运行良好,但我没有AMD机器进行测试.

.net x86 amd-processor

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

为什么我的java应用程序在AMD处理器上更快?

我观察到,与Intel CPU相比,我在AMD处理器上执行java应用程序的速度快得多.

例如,我的JBoss在3 GHz AMD处理器上启动大约30秒,在具有相同光盘,RAM和操作系统的3 GHz Intel处理器上需要大约60秒?

还有其他人做过这个观察吗?为什么会这样?

java performance intel amd-processor

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

NVidia的ISA语言

AMD为每个GPU系列定义其ISA.据我所知,ISA是一个指令集架构:类似汇编的"语言".怎样称为NVidia的GPU"汇编式语言"? - PTX?是否有像AMD或Intel离线编译器这样的工具为NVidia内核生成这样的程序集?谢谢

cuda gpu nvidia isa amd-processor

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

OpenCL无效指针算法-奇怪的行为

我已经编写了一个OpenCL内核,该内核使用opencl-opengl互操作性来读取顶点和索引,但是这可能甚至不重要,因为我只是在做简单的指针加法操作,以便按索引获取特定的顶点。

uint pos = (index + base)*stride;
Run Code Online (Sandbox Code Playgroud)

在这里,我正在计算绝对位置(以字节为单位),在我的示例中pos是28,643,328,步幅为28,索引= 0,基数= 1,022,976。好吧,这似乎是正确的。

不幸的是,我不能vload3直接使用,因为offset参数不是以字节为单位的绝对地址。所以我只添加pos了指针void* vertices_gl

void* new_addr = vertices_gl+pos;
Run Code Online (Sandbox Code Playgroud)

new_addr 在我的示例中= 0x2f90000,这是奇怪部分开始的地方,

vertices_gl = 0x303f000


结果(new_addr)应为0x4B90000(0x303f000 + 28,643,328)

我不明白为什么地址vertices_gl减少了716,800(0xAF000)


我的目标是GPU:AMD Radeon HD5830

附言:对于那些想知道的人,我正在使用printf来获取这些值:)(无法使CodeXL工作)

pointers gpu gpgpu opencl amd-processor

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

OpenCL实现的算法比普通循环慢

我是并行计算和OpenCL的新手.我按照OpenCLProgramming指南.在卷积实现部分.

我的main.cpp:

#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include <OpenCL/OpenCL.h>

using namespace std;

const unsigned int inputSignalWidth = 8;
const unsigned int inputSignalHeight = 8;

cl_uint inputSignal[inputSignalWidth][inputSignalHeight] =
{
    {3, 1, 1, 4, 8, 2, 1, 3},
    {4, 2, 1, 1, 2, 1, 2, 3},
    {4, 4, 4, 4, 3, 2, 2, 2},
    {9, 8, 3, 8, 9, 0, 0, 0},
    {9, 3, 3, 9, 0, 0, 0, 0},
    {0, 9, 0, 8, 0, 0, 0, 0},
    {3, …
Run Code Online (Sandbox Code Playgroud)

c++ macos gpu opencl amd-processor

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

平均而言,现代 x64 CPU cmpxchg16b 比 64 位或 32 位 CPU 慢得多?

我相信 Windows 已经在内部使用该指令很长时间了,所以 CPU 制造商会花精力去优化吗?

当然,假设适当对齐的内存和不共享缓存线等。

performance x86-64 atomic intel amd-processor

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

AMD 是否支持 x2APIC?

我是 OS 的学习者,正在尝试编写内核。

我在谷歌上搜索了“AMD x2APIC”,发现一些关于 EPYC 7002 系列的信息似乎支持它。

但我找不到相关文档。

所以我想问一下最近的AMD处理器是否支持它,如果是,我在哪里可以找到文档。

cpu x86 osdev apic amd-processor

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

为什么 AMD-CPU 有如此愚蠢的暂停计时

我开发了一个类似于 Java for C++ 的监视器对象,并进行了一些改进。主要的改进是不仅有一个用于锁定和解锁的自旋循环,而且还有一个用于等待事件的自旋循环。在这种情况下,您不必锁定互斥体,而是在 wait_poll 函数上提供谓词,并且代码反复尝试锁定互斥体轮询,如果它可以锁定互斥体,则它会调用返回(或移动)一对的谓词bool 和结果类型。

即使调用立即返回,等待内核中的信号量和/或事件对象 (Win32) 也很容易花费 1.000 到 10.000 个时钟周期,因为之前已经设置了信号量或事件。因此,必须有一个与该等待间隔具有合理关系的旋转计数,其中旋转的时间是内核中所花费的最小间隔的十分之一。

通过我的监控对象,我从 glibc 中获取了自旋计数重新计算算法。我还使用暂停指令。但我发现在我的CPU(TR 3900X)上暂停指令太快了。平均约为 0.78ns。在 Intel-CPU 上,它更合理,约为 30 纳秒。

这是代码:

#include <iostream>
#include <chrono>
#include <cstddef>
#include <cstdint>
#include <immintrin.h>

using namespace std;
using namespace chrono;

int main( int argc, char **argv )
{
    static uint64_t const PAUSE_ROUNDS = 1'000'000'000;
    auto start = high_resolution_clock::now();
    for( uint64_t i = PAUSE_ROUNDS; i; --i )
        _mm_pause();
    double ns = (int64_t)duration_cast<nanoseconds>( high_resolution_clock::now() - start ).count() / (double)PAUSE_ROUNDS;
    cout << …
Run Code Online (Sandbox Code Playgroud)

x86 assembly spinlock spinwait amd-processor

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

Android Studio CPU 使用率为 100%,即使我只是在物理设备上编码和运行应用程序

当我打开任务管理器时,我可以看到每次使用 Android Studio 时我的 CPU 使用率都会变高。我在物理设备上运行我的应用程序,但高使用率仍然存在。如果我开始在 Android Studio 上编码,CPU 使用率就会飙升至 99% 等等。我使用的是 AMD Ryzen 3,内存为 8GB。我该如何解决这个问题?我希望你可以帮助我!

cpu android cpu-usage android-studio amd-processor

0
推荐指数
1
解决办法
4494
查看次数