Вопрос или проблема
Я пытаюсь профилировать программу, которая использует CUDA на Alma Linux 9. Я установил инструмент nsight compute от Nvidia, и когда я начинаю пытаться профилировать свою программу, я получаю ошибку:
==ERROR== ERR_NVGPUCTRPERM - Пользователь не имеет разрешения на доступ к счетчикам производительности NVIDIA GPU на целевом устройстве 0. Для получения инструкций по включению разрешений и получения дополнительной информации смотрите https://developer.nvidia.com/ERR_NVGPUCTRPERM
Когда я пытаюсь запустить программу от имени root, я получаю другую ошибку:
################# ERROR: CrashReporter #################
CrashReporter
Инициализация Qt не удалась
Не удалось загрузить плагин платформы Qt: "xcb"
- Путь к библиотеке: /usr/local/NVIDIA-Nsight-Compute-2024.3/host/linux-desktop-glibc_2_11_3-x64/Plugins/platforms/libqxcb.so
Приложение будет остановлено
Протокол не указан
Ошибка: Невозможно открыть дисплей: :10.0
/usr/local/NVIDIA-Nsight-Compute-2024.3/host/linux-desktop-glibc_2_11_3-x64/ncu-ui: строка 26: 2032536 Прервано (дамп памяти) "$NV_AGORA_PATH/CrashReporter" "NVIDIA Nsight Compute" "NVIDIA Nsight Compute" "2024.3.2.0 (сборка 34861637) (публичный релиз)" "$NV_AGORA_PATH/ncu-ui.bin" "$@"
Эта библиотека там есть, однако я использую xrdp для доступа к машине, может быть, это причина этой ошибки?
Ответ или решение
Проблема с запуском NVIDIA Nsight Compute под root в Alma Linux 9
Вы столкнулись с двумя основными ошибками при попытке профилирования CUDA-программы с использованием инструмента NVIDIA Nsight Compute на Alma Linux 9. Сначала, вы получаете ошибку, указывающую на отсутствие разрешений на доступ к счетчикам производительности GPU, а затем, при запуске от имени пользователя root, происходит сбой из-за проблем с инициализацией Qt.
1. Ошибка ERR_NVGPUCTRPERM
Первая ошибка ERR_NVGPUCTRPERM
свидетельствует о том, что у вашего пользователя недостаточно прав для доступа к счетчикам производительности Nvidia GPU. Эта проблема характерна для современных систем, где безопасность имеет приоритет, и доступ к ресурсам GPU может быть ограничен.
Решение:
Чтобы разрешить эту ошибку, вы можете использовать следующее решение:
-
Добавление пользователя в группу
nvidia
: Для этого выполните команду:sudo usermod -aG video $USER
После добавления в группу, вам потребуется выйти из системы и снова войти, или перезагрузить машину, чтобы изменения вступили в силу.
-
Настройка прав доступа: Вы также можете установить глобальные права для устройств GPU, выполнив следующую команду:
sudo chmod 666 /dev/nvidia*
2. Проблемы со сбоями при запуске от имени root
Когда вы пытаетесь запустить Nsight Compute от имени root, возникает ошибка инициализации Qt, связанная с загруженным плагином платформы xcb
, сообщающая о том, что приложение не может открыть дисплей.
Основные причины этой ошибки включают:
-
Отсутствие доступа к X-серверу: Запуск графического приложения от имени root может быть проблематичным, так как Qt требует доступа к текущему сеансу X11, но пользователь root может не иметь необходимых прав.
-
Использование xrdp: Вы упомянули, что используете xrdp для доступа к машине. Это также может вызвать проблему, так как X-сервер может быть настроен таким образом, чтобы не позволять root-пользователям подключаться к нему.
Решение:
Вот несколько способов обойти эту проблему:
-
Запуск приложения от имени обычного пользователя: Рекомендуется выполнять профилирование от имени пользователя, имеющего необходимые права, а не от имени root.
-
Настройка доступа к X-серверу: Если вам необходимо запустить приложение от имени root, попробуйте добавить пользователя root в список разрешенных пользователей дисплея, используя команду:
xhost +SI:localuser:root
-
Проверка переменной окружения
DISPLAY
: Убедитесь, что переменная окруженияDISPLAY
установлена правильно. Вы можете проверить текущие настройки, выполнив:echo $DISPLAY
Она должна иметь значение, соответствующее вашему сеансу X, например
:0
.
Заключение
Ошибки, с которыми вы столкнулись, часто возникают в системах с повышенными требованиями к безопасности и конфигурации X-сервера. Следуя предложенным решениям, вы сможете избежать этих проблем и успешно использовать NVIDIA Nsight Compute для профилирования ваших CUDA-программ. Не забывайте обращаться к официальной документации NVIDIA для получения дополнительной информации и рекомендаций по настройке прав доступа.