adblock check

VRAM видеокарт NVIDIA превратили в swap для Linux — без отдельного kernel module и с поддержкой GeForce

Данный подход можно использовать на ноутбуках с распаянной оперативной памятью, или когда не хватает ресурсов для запуска инструментов разработчика
Обложка: NVIDIA

На просторах репозитория GitHub появился необычный проект NBD-VRAM от пользователя с никнеймом c0deJedi Sean — с его помощью можно использовать часть видеопамяти NVIDIA GPU как swap-пространство в операционной системе Linux.

Автор разработки описал свою идею довольно просто: когда Linux начинает использовать часть памяти на твердотельном или жёстком диске в качестве swap-пространства, можно перед ними поставить ещё один слой в виде видеопамяти.

В качестве примера выбран ноутбук с видеокартой RTX 3070 Laptop с 8 ГБ памяти. Благодаря использованию 7 ГБ видеопамяти, суммарный объём адресуемой памяти вместе с RAM, zram и SSD swap составил 46 ГБ. Сценарий использования выглядит следующим образом: сначала система задействует оперативную память, далее идёт видеопамять графического ускорителя, после чего вход вступают быстрый swap, zram и SSD.

Подобный подход можно использовать в следующих сценариях:

  • на ноутбуках с распаянной RAM, где объёма оперативной памяти не хватает для решения тех или иных задач;
  • для ресурсоёмкого рабочего окружения разработчика, включая Docker-контейнеры, локальные базы данных, сборки больших проектов и так далее;
  • при необходимости снизить нагрузку на SSD при частом его использовании в качестве swap-пространства;
  • для создания домашних рабочих станций, когда графический ускоритель часто простаивает без дела.

Автор проекта отметил, что подобный подход выбран из-за ограничений в потребительских картах NVIDIA. Попытка прямого использования NVIDIA P2P API, как говорит c0deJedi Sean, упирается в ошибку Invalid argument, так как такие возможности доступны исключительно на профессиональных моделях GPU. Если же напрямую обращаться к BAR1 (регистру базового кода), система видит только крохотную область, а чтение из остальной части возвращает нули.

Одним из главных достоинств метода является работа без собственного модуля ядра, то есть от пользователя не требуется писать, собирать и сопровождать отдельный kernel module. NBD-VRAM ориентирован на потребительские видеокарты NVIDIA, а при недостатке необходимой памяти VRAM пытается уменьшить его блоками по 512 МиБ.

Более подробную информацию можно получить на странице проекта в GitHub.

Источник

Linux Linux
9,6K участников
Вступить
1 комментарий
Оставьте комментарий...
Оставьте комментарий...
Limows
Есть мысль, что на ноутах с маленьким количеством распаянной ОЗУ и видеокарта будет не дискретная