解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题

解决 Ubuntu 下 VTune 无法收集 CPU 硬件时间计数数据的问题

在 Ubuntu 上使用 Intel VTune Profiler 时遇到无法收集 CPU 硬件性能计数器数据的问题,通常是由于权限和系统配置问题导致的。以下是解决方案:

1. 检查并加载性能监控模块

首先确保 Linux 内核性能监控模块已加载:

bash 复制代码
sudo modprobe msr

2. 设置正确的文件权限

VTune 需要访问以下文件,设置正确权限:

bash 复制代码
sudo chmod go+rw /dev/cpu/*/msr
sudo chmod go+rw /proc/sys/kernel/perf_event_paranoid

3. 调整 perf_event_paranoid 设置

临时降低安全限制(重启后失效):

bash 复制代码
sudo sh -c 'echo 0 > /proc/sys/kernel/perf_event_paranoid'

永久修改(编辑 /etc/sysctl.conf 或创建新配置文件):

bash 复制代码
echo "kernel.perf_event_paranoid = 0" | sudo tee /etc/sysctl.d/60-vtune.conf
sudo sysctl --system

4. 禁用 NMI 看门狗

bash 复制代码
sudo sh -c 'echo 0 > /proc/sys/kernel/nmi_watchdog'

永久禁用:

bash 复制代码
echo "kernel.nmi_watchdog = 0" | sudo tee -a /etc/sysctl.d/60-vtune.conf
sudo sysctl --system

5. 配置用户权限

将当前用户添加到 perf-users 组:

bash 复制代码
sudo groupadd perf-users
sudo usermod -aG perf-users $USER

然后配置 sysctl

bash 复制代码
echo "kernel.perf_event_mlock_kb = 512" | sudo tee -a /etc/sysctl.d/60-vtune.conf
echo "kernel.perf_cpu_time_max_percent = 25" | sudo tee -a /etc/sysctl.d/60-vtune.conf
sudo sysctl --system

6. 验证配置

重启系统后,运行以下命令验证:

bash 复制代码
vtune --collect performance-snapshot -- ./your_application

7. 其他可能的解决方案

如果问题仍然存在:

  1. 确保 BIOS 中启用了性能计数器
  2. 检查 VTune 版本是否支持您的 CPU
  3. 尝试使用 sudo 运行 VTune(不推荐长期使用)
  4. 查看 VTune 文档中关于 Linux 系统配置的具体要求

注意事项

  • 修改系统参数可能会影响安全性,建议仅在受信任的开发环境中进行
  • 某些云虚拟机可能无法访问硬件性能计数器
  • 不同版本的 Ubuntu 和 Linux 内核可能需要不同的配置
相关推荐
Eloudy5 天前
CHI 开发备忘 08 记 -- CHI spec 08
人工智能·arch·hpc
Eloudy5 天前
稀疏矩阵的 CSR 格式(Compressed Sparse Row)
人工智能·算法·arch·hpc
Eloudy7 天前
CHI 开发备忘 06 记 -- CHI spec 06 独占访问
人工智能·arch·hpc
Eloudy7 天前
直接法 读书笔记 07 第7章 减少填充的排序
人工智能·arch·hpc
Eloudy8 天前
CHI 开发备忘 05 记 -- CHI spec 05 互连协议流程
人工智能·ai·arch·hpc
Eloudy9 天前
直接法 读书笔记 06 第6章 LU分解
人工智能·算法·ai·hpc
Eloudy10 天前
CHI 开发备忘 03 记 -- CHI spec 03 网络层
人工智能·ai·arch·hpc
Eloudy11 天前
CHI 开发备忘 02 记 -- CHI spec 02 事务
人工智能·ai·arch·hpc
Eloudy18 天前
SuiteSparse 的 README
人工智能·算法·机器学习·hpc
Eloudy21 天前
计算引擎 CUTLASS 01章: 目录结构
人工智能·线性代数·算法·机器学习·hpc