做 CUDA 开发,使用工具 profile 程序性能是必不可少的,其中 nvprof 命令行工具最为常用。我的配置是Ubuntu18.04,CUDA Toolkit 10.1,驱动 440.26。使用命令行 nvprof ./fileName,报错:
Warning: ERR_NVGPUCTRPERM - The user does not have permission to profile on the target device.
这个问题的官网解决方案在:https://developer.nvidia.com/nvidia-development-tools-solutions-ERR_NVGPUCTRPERM-permission-issue-performance-counters,原因简单说来就是权限不够,这个问题在你使用 418.43 (Linux) 以后的驱动时都会碰到。
其中一种解决方法(对我的情况无效):
modprobe nvidia NVreg_RestrictProfilingToAdminUsers=0
我的解决方案是配合 sudo 使用 nvprof
sudo nvprof ./fileName
你应该会发现这行命令会报以下错误:
sudo: nvprof: command not found
解决这个问题的方法很多,我选了个最简单粗暴的。输入以下命令打开 sudoers:
sudo visudo
把以下内容都注释掉,然后保存:
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
这时再输入以下命令以管理员权限运行 nvprof 应该就可以了:
sudo nvprof ./fileName
本文介绍在使用nvprof工具进行CUDA程序性能分析时遇到的权限不足问题及其解决方案。当使用nvprof命令时,可能会遇到ERR_NVGPUCTRPERM错误,这是因为用户没有足够的权限在目标设备上进行性能计数器的收集。文章提供了两种解决方案:一是通过修改内核模块参数,二是使用sudo命令并调整sudoers文件中的配置。
381

被折叠的 条评论
为什么被折叠?



