Как включить cuda на видеокарте nvidia

Обновлено: 06.07.2024

CUDA всем хороша, пока под рукой есть видеокарта от Nvidia. Но что делать, когда на любимом ноутбуке нет Nvidia видеокарты? Или нужно вести разработку в виртуальной машине?

Я постараюсь рассмотреть в этой статье такое решение, как фреймворк rCUDA (Remote CUDA), который поможет, когда Nvidia видеокарта есть, но установлена не в той машине, на которой предполагается запуск CUDA приложений. Тем, кому это интересно, добро пожаловать под кат.

rCUDA (Remote CUDA) — фреймворк, реализующий CUDA API, позволяющий использовать удалённую видеокарту. Находится в работоспособной бета-версии, доступен только под Linux. Основная цель rCUDA — полная совместимость с CUDA API, вам не нужно никак модифицировать свой код, достаточно задать специальные переменные среды.

Что такое rCUDA

rCUDA (Remote CUDA) — фреймворк, реализующий CUDA API, позволяющий использовать для CUDA вычислений видеокарту, расположенную на удалённой машине, не внося никаких изменений в ваш код. Разработан в политехническом университете Валенсии (rcuda-team).

Ограничения

На данный момент поддерживаются только GNU/Linux системы, однако разработчики обещают поддержку Windows в будущем. Текущая версия rCUDA, 18.03beta, совместима с CUDA 5-8, то есть CUDA 9 не поддерживается. Разработчиками заявлена полная совместимость с CUDA API, за исключением графики.

Возможные сценарии использования

  1. Запуск CUDA приложений в виртуальной машине тогда, когда проброс видеокарты неудобен или невозможен, например, когда видеокарта занята хостом, или когда виртуальных машин больше одной.
  2. Ноутбук без дискретной видеокарты.
  3. Желание использовать несколько видеокарт (кластеризация). Теоретически, можно использовать все имеющиеся в команде видеокарты, в том числе совместо.

Краткая инструкция

Тестовая конфигурация

Тестирование проводилось на следующей конфигурации:

Сервер:
Ubuntu 16.04, GeForce GTX 660

Клиент:
Виртуальная машина с Ubuntu 16.04 на ноутбуке без дискретной видеокарты.

Получение rCUDA

Cамый сложный этап. К сожалению, на данный момент единственный способ получить свой экземпляр этого фреймворка — заполнить соответствующую форму запроса на официальном сайте. Впрочем, разработчики обещают отвечать в течение 1-2 дней. В моём случае мне прислали дистрибутив в тот же день.

Установка CUDA

Важно! На клиенте следует отказаться от установки nvidia драйвера. По умолчанию CUDA Toolkit будет доступен по адресу /usr/local/cuda/. Установите CUDA Samples, они понадобятся.

Установка rCUDA

Распакуем полученный от разработчиков архив в нашу домашнюю директорию на сервере и на клиенте.

Проделать эти действия нужно как на сервере, так и на клиенте.

Запуск демона rCUDA на сервере

Замените < XXX> на имя вашего пользователя. Используйте ./rCUDAd -iv, если хотите видеть подробный вывод.

Настройка клиента

Откроем на клиенте терминал, в котором в дальнейшем будем запускать CUDA код. На стороне клиента нам необходимо "подменить" стандартные библиотеки CUDA на библиотеки rCUDA, для чего добавим соответствующие пути в переменную среды LD_LIBRARY_PATH. Также нам необходимо указать количество серверов и их адреса (в моём примере он будет один).

Сборка и запуск

Попробуем собрать и запустить несколько примеров.

Пример 1

Начнём с простого, с deviceQuery — примера, который просто выведет нам параметры CUDA совместимого устройства, то есть в нашем случае удалённого GTX660.

Важно! Без EXTRA_NVCCFLAGS=--cudart=shared чуда не получится
Замените <YYY> на путь, который вы указали для CUDA Samples при установке CUDA.

Запустим собранный пример:

Если вы всё сделали правильно, результат будет примерно таким:

Самое главное, что мы должны увидеть:

Отлично! Нам удалось собрать и запустить CUDA приложение на машине без дискретной видеокарты, использовав для этого видеокарту, установленную на удалённом сервере.

Важно! Если вывод приложения начинается со строк вида:

значит необходимо добавить на сервере и на клиенте в файл "/etc/security/limits.conf" следующие строки:

Таким образом, вы разрешите всем пользователям (*) неограниченное (unlimited) блокирование памяти (memlock). Еще лучше будет заменить * на нужного пользователя, а вместо unlimited подобрать менее жирные права.

Пример 2

Теперь попробуем что-то поинтереснее. Протестируем реализацию скалярного произведения векторов с использованием разделяемой памяти и синхронизации ("Технология CUDA в примерах" Сандерс Дж. Кэндрот Э. 5.3.1).

В данном примере мы рассчитаем скалярное произведение двух векторов размерностью 33 * 1024, сравнивая ответ с результатом, полученным на CPU.

Сборка и запуск:

Такой результат говорит нам, что всё у нас хорошо:

Пример 3

Запустим еще один стандартный тест CUDA- matrixMulCUBLAS (перемножение матриц).

[Matrix Multiply CUBLAS] — Starting…
GPU Device 0: "GeForce GTX 660" with compute capability 3.0

MatrixA(640,480), MatrixB(480,320), MatrixC(640,320)
Computing result using CUBLAS. done.
Performance= 436.24 GFlop/s, Time= 0.451 msec, Size= 196608000 Ops
Computing result using host CPU. done.
Comparing CUBLAS Matrix Multiply with CPU results: PASS

NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.

Performance= 436.24 GFlop/s,
Comparing CUBLAS Matrix Multiply with CPU results: PASS

Безопасность

Я не нашёл в документации к rCUDA упоминания о каком-либо способе авторизации. Думаю, на данный момент самое простое, что можно сделать, это открыть доступ к нужному порту (8308) только с определённого адреса.


Купили и подключили видеокарту, а теперь ваша рука тянется к запуску Red Dead Redemption 2 с DLSS или Control с RTX? Не торопитесь! Сначала вас ждёт ещё более увлекательная игра, которая позволит сэкономить много времени в будущем. И эта игра называется — «настрой свою видюху».

Установка драйвера видеокарты

У любой видеокарты есть драйвер. Это специальная программа с настройками, которая позволяет операционной системе распознать устройство, а самой видеокарте работать как следует в играх. В отличие от многих других комплектующих компьютера, драйвер видеокарты обновляется с завидной периодичностью. Это происходит потому, что в драйвер также встраиваются настройки для определённой видеоигры. Например, в июле 2021 года видеокарты NVIDIA поддерживающие DLSS (технологию масштабирования изображения с помощью искусственного интеллекта) получили обновленный драйвер для того, чтобы можно было запустить эту настройку в Red Dead Redemption 2 и позволить геймерам насладиться высоким разрешением с повышенной производительностью.

Хорошо, мы немного отвлеклись. Как найти драйвер для видеокарты? Это можно сделать на официальном сайте.

Пройдите на сайт, найдите в выпадающем меню вашу модель видеокарты и версию операционной системы, после чего нажмите скачать. Далее пройдите в папку со скачанным файлом и установите программу. Уже давно вместе с драйвером в комплекте идет программа поддержки видеокарты — NVIDIA Expirience или Radeon Software. Эта программа в будущем будет сама сканировать сервера компании на предмет выхода новых драйверов и сообщать вам об обновлении.

Динамический диапазон и формат цвета

Чтобы ваша картинка была сочнее, нужно настроить цветопередачу. Важно: это работает только в том случае, если ваш монитор подключен через HDMI. Конечно, большинство уже выбралось из доисторической эпохи VGA-кабелей. Но наше дело — предупредить.

Полный диапазон цвета — это ширина спектра оттенков от полностью черного до полностью белого. Установка правильных значений позволит насладиться более яркими и «живыми» цветами как в видео, так и в играх.

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

Щелкните правой кнопкой мыши по рабочему столу и найдите пункт в меню «Панель управления NVIDIA». Запустите программу.

Найдите раздел «Дисплей». Пункт 3 — использовать параметры NVIDIA. Главное, чтобы у вас стояло значение «Выходной динамический диапазон — Полный». Это позволит использовать весь спектр и подарить вам красивые и яркие цвета.



Формат цвета — это указание видеокарте использовать определенное цветовое семейство. Этот параметр может быть представлен RBG, YCbCr422 или YCbCr444. В данном случае лучше выбирать RGB, потому что семейство YCbCr является лишь способом кодирования информации сигналов RGB.

Управление параметрами 3D

Далее мы подскажем, как настроить видеокарту NVIDIA для 3D-программ. Зачастую под этим воспринимаются видеоигры. Обратите внимание, что мы будем говорить о конкретном пункте меню программы для настройки работы видеокарты NVIDIA.

Щелкните правой кнопкой мыши по рабочему столу и найдите пункт в меню «Панель управления NVIDIA». Запустите программу.

Найдите пункт «Параметры 3D» — Управление параметрами 3D.



Рассмотрим некоторые значения и проведем тонкую настройку.

CUDA — графические процессоры

CUDA — это специальная технология, придуманная инженерами NVIDIA. Она необходима для увеличения производительности. Скорее всего, у вас не будет большого выпадающего списка при выборе данного пункта настроек. Поэтому выбирайте «все». Это позволит повысить производительность (увеличить частоту кадров, что приведёт к более плавной игре).

DSR-Плавность и DSR-Степень

Dynamic Super Resolution (DSR) или DSR — это динамическое суперразрешение. Оно позволяет рассчитывать картинку в более высоком разрешении, после чего масштабирует изображение до разрешения монитора. То есть ваш монитор поддерживает только 1080p (1920×1080 пикселей), а с помощью этой программной настройки можно вывести изображение в 4K (3840×2160 пикселей).

Нужна ли эта настройка? Геймеры сходятся во мнении, что она создаёт дополнительную нагрузку на видеокарту. В особо требовательных играх, например, RDR 2, Cyberpunk 2077, Control, Death Stranding — включать данную настройку не имеет смысла. Скорее всего вы ощутите значительное снижение частоты кадров. NVIDIA демонстрирует работу DSR в старых или графически не требовательных играх, например, первой Dark Souls.

Включать или не включать настройки DSR — ваш выбор. Если вы решитесь включить — проставьте все галочки в DSR-степень, выставите DSR-плавность на значение близкое к 100%. Затем пройдите в настройки монитора и выведите изображение в удобном для вас разрешении, например, 4K. Далее запустите игру и установите настройки.

Однако геймеры и профессиональные компьютерные мастера (не те, чьи объявления висят у вашего подъезда) советуют не включать данную настройку ввиду того, что она негативно влияет на FPS.

Анизотропная фильтрация

Эта настройка отвечает за улучшение качества игровых текстур, находящихся под наклоном относительно камеры игрока. Чаще всего они довольно размыты. Алгоритм фильтрации делает текстуры четче. Чем выше значение настройки, тем четче будут текстуры.

В данном случае рекомендуется либо выключить данный параметр, если вы преследуете цель повысить FPS, либо поставить настройку «управление от приложения». Так видеоигра сама будет отвечать за параметр фильтрации текстур.

Вертикальный синхроимпульс

При резком повороте камеры может возникнуть небольшой разрыв изображения (на долю секунды вы увидите небольшую полоску). Настройка (также известная как вертикальная синхронизация) может повысить плавность изображения. Ультимативного ответа, что лучше, так и нет. Вы можете либо доверить выбор игре (параметр «использовать настройку 3D-приложения), либо выставить «адаптивный», либо отключить функцию. Многие просто отключают для того, чтобы снизить задержку синхронизации для игры в шутеры.

Заранее подготовленные кадры виртуальной реальности

Параметр, который зависит от центрального процессора и деятельности геймера. Отвечает за количество кадров, которые подготавливает ЦП для отправки на обработку видеокартой. Если вы играете в многопользовательские шутеры, то лучше выставить значение 1. Так у вас будет меньше задержка, а значит больше шансов победить врага. Если вы играете в графически насыщенные игры, а у вас хороший, производительный процессор (например, Intel Core 9 поколения и выше, или Ryzen с архитектурой Zen+), то можете выставить значение на 4. Может повысить частоту кадров. Если у вас слабый процессор, то рекомендуется оставить на значении 1.

Затенение фонового освещения

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

Кэширование шейдеров

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

Многокадровое сглаживание (MFAA)

Иногда в видеоиграх можно заметить, что предметы, которые должны быть гладкими как кожа младенца, пугают своей «зубчатостью». Данный параметр исправляет этот недостаток, делая предметы более реалистичными. Настройка потребляет большое количество ресурсов, поэтому для оптимизации видеокарт среднего уровня (например, GTX 1060), рекомендуется отключить.

Потоковая оптимизация

Данная настройка позволяет играм использовать сразу несколько графических процессоров, что хорошо влияет на производительность игры. Нюанс в том, что поддерживается эта настройка не всеми играми, даже современными. А про «олдскул» и говорить не стоит. Лучше всего выставить «Авто».

Режим управления электропитанием

Чтобы добиться максимальной производительности, необходимо выбрать режим… максимальной производительности. Не переживайте, видеокарта не улетит в космос к одному из спутников Илона Маска. Если стоит «адаптивный» — то это значит, что видеокарта не работает в полную мощь, экономя электроэнергию.

Сглаживание — FXAA, гамма-коррекция, параметры, прозрачность, режим

Сразу несколько параметров отвечают за сглаживание. Если кратко, то большинство объектов, которые представлены в игре, не обладают идеально ровными поверхностями. Если это какая-то фигура с наклонными линиями, то эта линия может «ломаться», в результате конус будет не конусом, а какой-то страшной чертовщиной, что приснится в кошмарах.

По умолчанию данный параметр выключен. Это же рекомендуют делать и эксперты по настройке видеокарты.



Тройная буферизация

Данный параметр работает только в связке с «вертикальным синхроимпульсом». Он служит для уменьшения количества артефактов при включенной синхронизации. В данном руководстве мы советовали вам отключить синхроимпульс. Поэтому и буферизацию тоже следует отключить.

Ускорение нескольких дисплеев/смешанных ГП

Данный параметр нужен для тех, у кого несколько мониторов или видеокарт, работающих в паре (SLI). Обратите внимание, что данная опция была удалена из настроек несколько лет назад. Если вы её ещё видите, то вам лучше обновить драйвер и программу настроек NVIDIA.

Фильтрация текстур — анизотропная оптимизация фильтрации

Анизотропная фильтрация текстур делает изображение более четким, но потребляет ресурсы. Рекомендуется отключить.

Фильтрация текстур — качество

Добиться хорошего эффекта сглаживания текстур и повышения качества можно с помощью этого параметра. Рекомендуется выставить «Высокая производительность».

Фильтрация текстур — отрицательное отклонение уровня детализации и трилинейная оптимизация

Оба параметра позволяют добиться высокой производительности без потери качества. Рекомендуется включить.

Надеемся, что помогли вам настроить вашу видеокарту или разобраться в параметрах NVIDIA. Не забывайте, что вы можете экспериментировать с настройками в зависимости от того, какая у вас система. Может быть, у вас настолько мощный компьютер, что даже при выставлении всех параметров на максимум, игра не будет тормозить? Удачи на виртуальных полях сражений и приключений.

cuda-nvidia

В верси драйверов выше 337.88 Nvidia сменила API аппаратного ускорения. Теперь это NVENC и на чипах выше GM20x эта технология называеся HEVC. NVIDIA изменила nvcuvenc.dll уже в драйвере GeForce 340.43 и выше. Поэтому ускорение на старых видеокартах с новыми драйверами во многих программах перестало быть доступным.

На видеокарах до линейки 6ХХ поддерживается множество всяких полезных штук типа PhysX и, конечно же, CUDA.

nvidia cuda

Когда нужно конвертировать видео, и нужно аппаратное ускорение и кодек от Nvidia - можно воспользоваться хаками. Читать тему про это можно тут.

Если в Bandican отсутсвует "H.264 (Nvidia® CUDA™)" ипользуем следущие патчи.

Обратите только на битность ситемы (патчи разные)

Можно скачать файлы с этого сайта:

Если у вас GTX 600 серия карт и выше, используте Nvidia NVENC H264 encoder.

nvidia nvenc

PS. API NVIDIA NVENC позволяет разработчикам ПО получать доступ к высокопроизводительному кодировщику видео H.264 на NVIDIA GPU поколения Kepler и Maxwell NVENC обеспечивает высококачественную кодировку видео, которая быстрее и энергоэффективнее по сравнению с аналогичными кодировщиками на базе CPU.

Используя специальное аппаратное обеспечение для осуществления кодировки видео, ядра GPU с поддержкой CUDA и/или CPU свободны для выполнения других задач, требующих больших вычислительных ресурсов. NVENC на видеокартах GeForce может поддерживать не больше 2 одновременных потоков.

NVENC на GRID GPU и Quadro K4000 и выше могут поддерживать столько потоков, сколько позволяет предел скорости кодировщика NVENC и свободная память.

Всем привет. Сегодня мы хотим рассказать вам, как включить CUDA в Adobe Premiere Pro, а также что это такое и для чего оно нужно. Забежим немного вперед и скажем, что данная функция обязательно вам пригодится.

Что такое CUDA

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

Что касается непосредственно Premiere Pro – благодаря CUDA вам будут доступны некоторые функции обработки видео. К тому же, сама программа сможет работать куда быстрее.

Включаем CUDA

Открывайте ваш Adobe Premiere Pro.

premiere pro cuda

В разделе общее – вы увидите пункт видео и воспроизведение, где у вас будет недоступен тип рендеринга. Пример этого вы можете посмотреть на скрине выше.

Пока отложите программу в сторону, т.к. сперва нужно покопаться в файлах. Для этого зайдите в корневую папку с программой. Это: Мой компьютер/локальный диск С/Program Files/Adobe/Adobe Premiere Pro.

adobe premiere pro cuda

В этой папке вы найдете файл cuda_supported cards. Откройте его блокнотом. В этом текстовом файле вы не найдете свою видеокарту (т.к. это единственная причина, по которой у вас не будет работать рендеринг Премьера).

premiere pro cc cuda

Если вы не знаете название своей видеокарты, то посмотрите ее в командной строке вашего ПК, либо же просто откройте крышку системника и посмотрите там. Теперь, в этом файле, нужно дописать вашу видеокарту. В нашем примере это GeForce GTS 450.

adobe premiere pro cc cuda

Вот, собственно, и все. Остается только сохранить файл и перезайти в Премьер. Там, где рендеринг – вы сможете выбрать обработку при помощи CUDA, что позволит вам, в значительной степени, ускорить работу вашей программы.

Читайте также: