4

Я использую некоторое программное обеспечение, которое использует CUDA для запуска некоторых вещей на GPU.

Если я использую ssh для подключения к устройству или даже vnc и пытаюсь запустить программу, я получаю сообщение об ошибке, что никакое устройство CUDA не включено. Я должен перейти к машине и физически войти в систему, и набрать "startx", чтобы он обнаружил устройство. Это также может быть другое использование на боксе с использованием сеанса X, но его нужно запустить где-то на боксе, чтобы заставить CUDA работать. Есть ли способ "startx" через сеанс SSH, чтобы это работало, и мне не нужно было заходить и входить в систему?

Спасибо

3 ответа3

2

Если у вас есть root-доступ к коробке с CUDA или вы можете получить кого-то, кто сделает это изменение, вы можете настроить его таким образом, чтобы X не использовал CUDA.

Для этого создайте файл с именем 85-cuda.rules в /etc/udev/rules.d со следующим содержимым:

SUBSYSTEM=="module", KERNEL=="nvidia", RUN+="/lib/udev/cuda.sh"

Затем создайте файл с именем cuda.sh в /lib/udev со следующим содержимым:

#!/bin/sh

mknod -m 660 /dev/nvidia1 c 195 1
chown root:video /dev/nvidia1
mknod -m 660 /dev/nvidiactl c 195 255
chown root:video /dev/nvidiactl

Если на машине установлено несколько графических процессоров, повторите первые две строки, изменив nvidia1 на nvidia2 в обеих строках и изменив последнюю 1 в первой строке на 2 . Повторите это для каждой карты повторного набора в машине. Как только вы сохраните это, вам нужно сделать его исполняемым:

chmod +x /lib/udev/cuda.sh

Наконец, запустите /lib/udev/cuda.sh один раз, чтобы он заработал без перезагрузки.

-1

X (xorg) по своей конструкции является моделью клиент-сервер. При использовании SSH ... ваш "x-сервер" по умолчанию НЕ является x-сессией удаленной машины. Он попытается подключиться к сеансу x, проходящему через туннель. Во многих приложениях на основе x у вас есть возможность указать, какой x-сервер отображать, и, как таковой, вы можете указать своему приложению запускаться на x-сервере удаленной машины. http://www.x.org/archive/X11R6.8.0/doc/Xorg.1.html

Что касается VNC, все зависит от того, как он настроен. В большинстве случаев при подключении vnc создает новый сеанс, в котором не используется x-сервер с поддержкой gpu. Таким образом, он также не позволит вам запускать приложения с поддержкой gpu под x-сервером без поддержки gpu. Честно говоря, я не использую VNC, поэтому я не тот, кто спрашивает, как перенастроить его для работы с x-сервером с поддержкой gpu.

-1

При использовании ssh включите опцию -X. Это позволит графическим приложениям работать по SSH. Просто запустите программу из командной строки, как обычно, и вы должны увидеть ее открытой.

ssh -X user@host

Это позволит вам не начинать весь сеанс только для запуска одного или двух приложений.

В противном случае, вы могли бы запустить x как фоновый процесс? (Использование & в конце).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .