2

У меня довольно уникальная ситуация, когда у меня есть сервер с установленной видеокартой NVIDIA, на котором нам нужно запустить X-сервер, однако сервер находится в стойке без монитора. Причиной запуска X является рендеринг операций с программой, использующей Qt. Есть огромные преимущества в эффективности благодаря использованию рендеринга на GPU, а не на CPU. Всякий раз, когда я startx x, X не запускается, потому что экран не прикреплен. Каков наилучший метод для запуска x с поддельным монитором? ОС RHEL 6

1 ответ1

4

Я не знаю, является ли это «лучшим способом», но это то, как я это делаю.

Используйте графический интерфейс nvidia-settings для создания edid-файла для экрана

Затем в терминале по вашему выбору вставьте или напишите:

sudo nvidia-xconfig -a --allow-empty-initial-configuration \
--use-display-device="DFP-0" --connected-monitor="DFP-0" \
--custom-edid="DFP-0:/home/$USER/edid.txt" 

sudo reboot

Добавить графические процессоры и экраны в xorg.conf.

Если вы хотите иметь возможность разгона и управления вентиляторами, добавьте «--cool-bits = 12» (или то, что в документации NVIDIA указано для вашего драйвера) в строку «nvidia-xconfig» на Топ.

Если у вас нет способа создать файл edid, или вы не можете найти его здесь, я воспользуюсь:

00 ff ff ff ff ff ff 00 1e 6d f5 56 71 ca 04 00 05 14 01 03 80 35 1e 78 0a ae c5 a2 57 4a 9c 25 12 50 54 21 08 00 b3 00 81 80 81 40 01 01 01 01 01 01 01 01 01 01 1a 36 80 a0 70 38 1f 40 30 20 35 00 13 2b 21 00 00 1a 02 3a 80 18 71 38 2d 40 58 2c 45 00 13 2b 21 00 00 1e 00 00 00 fd 00 38 3d 1e 53 0f 00 0a 20 20 20 20 20 20 00 00 00 fc 00 57 32 34 35 33 0a 20 20 20 20 20 20 20 01 3d 02 03 21 f1 4e 90 04 03 01 14 12 05 1f 10 13 00 00 00 00 23 09 07 07 83 01 00 00 65 03 0c 00 10 00 02 3a 80 18 71 38 2d 40 58 2c 45 00 13 2b 21 00 00 1e 01 1d 80 18 71 1c 16 20 58 2c 25 00 13 2b 21 00 00 9e 01 1d 00 72 51 d0 1e 20 6e 28 55 00 13 2b 21 00 00 1e 8c 0a d0 8a 20 e0 2d 10 10 3e 96 00 13 2b 21 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26

Сохраните файл edid.txt в домашнем каталоге вашего пользователя или измените местоположение в строке конфигурации.

Если вы включили разгон и хотите использовать экран на своем основном графическом процессоре:

sudo nano /etc/X11/xorg.conf

Удалить строки:

Option         "UseDisplayDevice" "DFP-0"
Option         "CustomEDID" "DFP-0:/home/nv/edid.bin"
Option         "ConnectedMonitor" "DFP-0"

из раздела "Экран", в котором указан ваш GPUID с прикрепленным к нему экраном.

Разгон!

Предел мощности:

sudo nvidia-smi -i GPUID -pl WATTLIMIT

Основные часы:

nvidia-settings -c :0 -a [gpu:GPUID]/GPUGraphicsClockOffset[3]=16

:0 - это экран X, назначенный для GPU, GPUID - это угаданный номер GPU (считая от 0).

16 == смещение.

Используйте отрицательные числа для разгона.

Часы памяти:

nvidia-settings -c :0 -a [gpu:GPUID]/GPUMemoryTransferRateOffset[3]=1200

Если вы привыкли к Afterburner и т.д., Вы должны удвоить значения смещения в Linux(около).

Я всегда получаю больше сока из своих карт в системе Linux (для моего использования)

Включить и контролировать вентилятор (ы) вручную:

nvidia-settings -c :0 -a [gpu:GPUID]/GPUFanControlState=1
nvidia-settings -c :0 -a [fan:GPUID]/GPUTargetFanSpeed=85

Установите GPUFanControlState обратно на 0, чтобы отключить ручное управление.

GPUTargetFanSpeed принимает целое число от 0 до 100 в качестве входных данных.

Проверьте температуру, энергопотребление и т.д .:

nvidia-smi

Если процесс заблокирован в состоянии пониженного энергопотребления с помощью графического процессора, единственный найденный мной обходной путь состоял в создании профиля приложения, и не было никакого способа контролировать состояние P. По крайней мере, на потребительских картах.

Вот процесс:

cd ~/.nv
cat > nvidia-application-profiles-rc

Вставьте этот шаблон:

{
"rules": [
    {
        "pattern": {
            "feature": "procname",
            "matches": "NameOfRunningProcessThatWantsMorePriority"
        },
        "profile": "ProfileNameWhatever"
    }
],
"profiles": [
    {
        "name": "ProfileNameWhatever",
        "settings": []
    }
]
}

Нажмите ввод, затем CTRL + C, прежде чем редактировать с любым вкусом.

Запустите свой процесс и введите nvidia-smi, чтобы получить имя процесса для использования в профиле приложения.

Кроме того, если у вас есть доступ к графическому интерфейсу, вы можете создать там профиль приложения.

Для сохранения пользовательских ограничений мощности при перезагрузках должен быть включен "Режим постоянства".

Чтобы включить его на всех графических процессорах:

sudo nvidia-smi -pm 1

Чтобы включить его на определенном графическом процессоре:

sudo nvidia-smi -i GPUID -pm 1

Режим постоянства поможет с быстротой, если запускать без головы и запускать несколько небольших процессов друг за другом, так как графический процессор не переходит в спящий режим между заданиями, это сократит время на обработку многих небольших задач.
Поднимет потребление холостого хода при активации!

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ПРИ ИСПОЛЬЗОВАНИИ lightdm !!
Обычные методы порождают проблемы в новых системах Ubuntu

Как и все остальное на самом деле настройка вещей, используйте учетную запись root или sudo

Управление вентилятором:

# DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [gpu:GPUID]/GPUFanControlState=1
# DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [fan:GPUID]/GPUTargetFanSpeed=70

Над /underclock:

# DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [gpu:GPUID]/GPUGraphicsClockOffset[3]=64
# DISPLAY=:0 XAUTHORITY=/var/run/lightdm/root/:0 nvidia-settings -c :0 -a [gpu:GPUID]/GPUMemoryTransferRateOffset[3]=1100

# == root или sudo

Если проблемы возникают, когда все работает (или нет), NVIDIA опубликовала несколько хороших запросов для устранения неполадок:

Полезные nvidia-smi запросы

Другой;

Советы и подсказки ArchLinux Wiki по NVIDIA

Приложение xconfig NVIDIA драйвер 384.98

Просто измените версию драйвера в URL на версию вашего драйвера, и вы будете на правильном пути.

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