Виртуальная машина с поддержкой видеокарты
Проброс GeForce GPU в Windows VM теперь официально поддерживается
Удивительное дело, что такие новости пролетели мимо Хабра, однако, наверстывая, хочу обратить внимание сообщества на то, что 30 марта 2021 года компания NVidia сообщила, что проброс GPU GeForce из Linux хоста в Windows гостя теперь официально поддерживается (пока что в Beta режиме) начиная драйверов версии R465.
Естественно, чтобы это работало, GPU придется пробрасывать целиком и, необходимо будет иметь вторую видеокарту для операционной системы хоста.
Уточняется, что необходимо использовать Windows 10 в качестве гостя, и, поддерживаются все GPU линеек GeForce и TITAN.
В качестве целевой аудитории для этой функциональности указываются:
Пользователи, которые используют ОС Linux, но хотят играть в игры на Windows VM.
Разработчики, которые хотят тестировать свой код в различных ОС (Linux/Windows)
Обновление драйверов должно исправлять широко известную в узких кругах ошибку «Code 43», которая возникает при загрузке ОС в случаях, когда GPU GeForce/драйверы обнаруживают виртуальное окружение.
Как пользователь игровых Windows-VM с проброшенным GPU без официальной поддержки со стажем около 10-ти лет, скажу, что чтобы такое кардинальное изменение в политике произошло, наверно, где-то должна была случиться катастрофа воистину космических масштабов.
«Не процессором единым»: Виртуальные GPU
Объемы данных, накапливаемых в мире, растут, поэтому появляются все новые способы их обработки. Один из способов повышения скорости вычислений – совместное использование центрального (CPU) и графического процессора (GPU). Вычисления с GPU-ускорением были придуманы еще в 2007 году компанией Nvidia, но теперь технология вышла на новый уровень и применяется в дата-центрах крупнейших научных лабораторий и предприятий.
Мы уже затрагивали тему виртуализации в своем блоге, когда говорили о том, как и кем используется виртуальная инфраструктура. Сегодня нам бы хотелось рассказать вам, как работают виртуальные графические процессоры и какие GPU-технологии существуют на рынке.
Вычисления на GPU используются не только в компьютерных играх и при работе с видеоконтентом. Например, NASA, по заявлению одного из ученых-метеорологов, использует GPU в моделях GEOS-5 для увеличения эффективности численного моделирования атмосферных явлений. Это позволяет повысить доступность системы для большего числа людей, гарантируя разрешение 100–200 км/пиксель.
Вычисления с GPU-ускорением применяются и в бизнес-аналитике. Так, по словам старшего научного сотрудника HP Labs Рена Ву (Ren Wu), GPU позволили увеличить производительность используемых аналитических систем в 5–20 раз.
Сравнение центрального и графического процессоров
Архитектуры CPU и GPU изначально «заточены» под решение разных задач. Центральный процессор решает задачи общего назначения: исполнение набора последовательных инструкций, управление периферийными устройствами и так далее, поэтому обычно он содержит от 2 до 18 ядер, имеющих сложную структуру.
GPU же изначально проектировался для работы с графикой, потому состоит из большего числа энергоэффективных ядер, способных обрабатывать до нескольких тысяч потоков одновременно. При этом на GPU выполняется лишь часть самых ресурсоемких вычислений, а остальное отдается CPU.
Использование подобного рода вычислений актуально в научной сфере, поэтому для выполнения объемных научных расчетов создаются суперкомпьютеры, «начиненные» GPU. Однако несмотря на все преимущества подобного рода вычислений, закупка физического оборудования выливается в серьезные денежные траты. Более того, «железо» имеет тенденцию к устареванию, потому его приходится регулярно обновлять.
Технология vGPU
Эти проблемы призвана решить технология виртуальных графических процессоров (vGPU), представленная Nvidia, которая дает пользователям возможность удаленно запускать графикоемкие приложения. Здесь стоит отметить, что до появления vGPU применялись другие методы ускорения обработки графики:
Такой решение, как показало тестирование, проведенное сотрудниками компании VMware, оказалось достаточно состоятельным. В своей работе они описали результаты тестов приложений с использованием продуктов VMware: Workstation 6.5 и Fusion 2.0. Им удалось установить, что производительность Half-Life 2: Episode 2 и Civilization 4 при использовании виртуальных GPU была близка к фактической (как если бы игры запускали на физической машине).
Но технология vGPU находит применение в самых разных сферах: архитекторы и инженеры используют её в системах автоматизированного проектирования (например в Autodesk BIM), а дизайнеры работают с цифровым фото- и видеоконтентом (например в Adobe Photoshop). Она также применяется работниками из сферы здравоохранения, которые пользуются системами передачи и архивации медицинских изображений и документов обследованных пациентов (PACS), такими как GE Centricity EMR.
Стоит отметить, что до недавних пор невозможно было организовать доступ множества пользователей к одному GPU. Если 32 человека хотели обратиться к чертежам в AutoCAD со своих ВМ, то приходилось приобретать 8 дорогих видеокарт с 4 GPU. Эту проблему решила технология Nvidia GRID. Её суть заключается в совместном использовании vGPU несколькими виртуальными десктопами, к которым предоставляется прямой доступ с помощью драйверов Nvidia.
Фактически последняя версия Nvidia GRID 2.0 позволяет перенести всю работу в виртуальное пространство. Обновленная технология поддерживает до 128 пользователей на сервере и значительно увеличивает производительность приложений. Также GRID 2.0 позволяет запускать виртуальные десктопы на блейд-серверах и поддерживает не только ОС Windows, но и Linux.
Настройка режима vGPU для карт Nvidia в VMware vSphere 6
/ фото ChrisDag CC
Компания VMware ввела функцию виртуальных GPU в обновлении своей платформы виртуализации vSphere 6.0. Технология vGPU от Nvidia при использовании с продуктами VMware подразумевает использование в качестве платформы VMware vSphere 6, а в качестве средства управления виртуальными ПК – VMware Horizon 6.
vGPU поддерживается для графических адаптеров Nvidia GRID K1 и K2, для каждого из которых определены 4 профиля использования ресурсов видеокарты. Вот таблица их вариантов:
В данной таблице приведены три типа пользователей:
После того как Nvidia vGPU Manager настроен на хост-серверах ESXi, нам нужно подготовить виртуальные машины. Это делается через vSphere Web Client, где выбираются аппаратные характеристики ВМ в зависимости от типа рабочей нагрузки.
Затем в настройках ВМ нужно добавить Shared PCI Device, а также выбрать тип Nvidia GRID vGPU и профиль в соответствии с приведенной выше таблицей. После этого можно устанавливать гостевую ОС (Windows 7 и более поздние версии).
Теперь остается установить драйвер Nvidia GRID и настроить пул виртуальных ПК в VMware Horizon View: просто указываем протокол PCoIP и тип 3D-рендера Nvidia GRID VGPU. На этом все. Виртуальные машины готовы к работе с vGPU.
Проброс видеокарты VirtualBox
Виртуальная машина: Windows XP.
Видеокарта одна, подключена через hdmi-dvi к монитору.
Можно ли получить доступ из виртуальной машины Windows 7 к реальной видеокарте?
allon925
Можно ли получить доступ из виртуальной машины Windows 7 к реальной видеокарте?
allon925
Можно ли получить доступ из виртуальной машины Windows 7 к реальной видеокарте?
Ненужно. Пробрасывается как обычное pci устройство. Достаточно иметь подходящую конфигурацию. Все есть по приведущей ссылки.
Видел года 3 назад как на проброшенной видеокарте запускали первый crysis
akorop
Что-то я там ничего на тему проброса видеокарты не вижу.
п.9.6 PCI passthrough
тык. не совсем то, я просто лучшей статьи про QXL ненашёл.
Виртуальный сервер Windows с видеокартой на борту
Виртуальный сервер уже давно перестал быть чем-то IT-шным и все чаще данной услугой интересуются люди с совершено различными и повседневными рабочими задачами: от размещения бухгалтерских программ до программ по автоматизации рутинных SEO-задач, от игровых серверов до самих игр (самых современных!), от общего файлового сервера небольшой организации до полноценных удалённых рабочих столов крупных компаний.
Вовсе не обязательно играть в игры, чтобы вам потребовалась видеокарта, сейчас ресурсы видеокарт активно используют разработчики популярного программного обеспечения: любой современный браузер будет отрисовывать страницы сайтов значительно быстрее если сможет использовать графический ускоритель, не говоря уже о том, что 3D игры могут быть в самих браузерах, которые работают на платформе WebGL.
Возможность виртуализации ресурсов видеокарт не нова и присутствует во всех популярных средах: Hyper-V, KVM, XEN, VirtualBox и собственная среда от самого популярного производителя чипсетов – NVIDIA GRID.
В данной статье мы будем говорить о RemoteFX – возможностях видеокарт на виртуальных серверах под управлением Hyper-V, именно на этой платформе они работают на VPS.house с видеокартами профессионального уровня NVIDIA Quadro P6000.
В качестве простой демонстрации поведем тест, взяв конфигурацию VPS с 2 ядрами процессора и 2 ГБ оперативной памяти с виртуальной видеокартой 256МБ памяти и без. В обоих случаях мы откроем в браузере Internet Explorer пример на WebGL одной и той же страницы.
Результат на виртуальном сервере, где установлена видеокарта:
Если видеокарту с этого же сервера убрать:
Итак, с видеокартой мы получаем 42 кадра в секунду, без нее – всего 3 кадра, которые отчаянно рендерит процессор.
В качестве гостевой операционной системы использовалась Windows 10 PRO, так как, к сожалению, в серверной версии Windows 2016 браузеры не начинают использовать графический ускоритель, несмотря на то, что он фактически присутствует.
Технология RemoteFX впервые была внедрена в Windows Server 2008 R2 SP1 и включала в себя некоторое базовые возможности:
Тест производительности видеокарты на VPS в популярном бенчмарке FurMark
Подключённая к современному VDS (виртуальному серверу) видеокарта под управлением Windows Server 2016 превращает его в полноценный домашний ПК. Данная операционная система обладает привычным пользовательским интерфейсом, мало отличимым от Windows 10. На таком сервере вы можете свободно запускать практически любое программное обеспечение и решать самые разносторонние задачи.
Без долгих ожиданий запускается самые тяжёлые графические приложения. Пример работы Autodesk 3ds Max 2019 на виртуальном сервере VPS.house:
И конечно же современные игры, в Battlefield 1 видео игры будет таким же плавным, как если бы вы запустили её на своём домашнем ПК (при хорошем интернет-соединении):
реклама
Не все из этих игр запускаются после переустановки Windows, некоторые не идут под Windows 10, как например, стратегия Majesty 2. А если вы ищете редкую игру 10-20 летней давности, которую уже нельзя купить, высок и шанс нахватать вирусов. Да даже при установке этих лицензионных игр с диска, защищенного системой StarForce, можно получить кучу проблем на новых версиях Windows.
реклама
У меня бывало и такое, что после установки древней игры Windows настолько повреждалась и глючила, что оставалось только переустанавливать ее.
Теперь, я думаю, вы поймете мое желание засунуть кучу старых игр в виртуальную машину, что решит сразу множество проблем.
Плюсы игровой виртуальной машины
Во-первых, можно создать виртуальные машины с нужной версией Windows: 7, XP и даже 98. И игра пойдет в нужной ей версии Windows без проблем.
реклама
Во-вторых, вы не будете замусоривать основную Windows и избежите вирусного заражения. Если старые игры что и заразят, то это ОС виртуальной машины.
В-третьих, ваша виртуальная машина будет независима от основной ОС и вам не придется переустанавливать и настраивать игры после переустановки Windows.
Я давно следил за развитием виртуальных машин VMware Workstation и помню даже момент, когда у них появилось простейшее 3D ускорение. Тогда это казалось прорывом, но было не играбельно для большинства игр.
Время шло, проект развивался и сегодня версия VMware Workstation 15.5.6 Pro поддерживает API DirectX 10.1, что позволяет запустить множество замечательных игр.
реклама
А теперь я опишу пошагово, как создать игровую виртуальную машину.
Создание виртуальной машины
После запуска VMware Workstation 15.5.6 Pro вас ждет окно с предложением создать виртуальную машину.
Выбирайте «Создать новую виртуальную машину».
Обычного типа конфигурации будет достаточно.
Выбираем местоположение виртуальной машины.
Указываем место с образом ОС. Я буду ставить Windows 7.
Диска в 60 Гб будет пока достаточно.
Приступаем к настройке конфигурации виртуальной машины. Я для начала выделил ей 8 Гб ОЗУ из 32 имеющихся и два потока из 12-ти своего Ryzen 5 1600.
Видеопамяти можно выделить аж 3 Гб.
Нажимаем «Готово» и виртуальная машина создается.
Установка Windows 7
Автоматически начинается установка Windows 7 из указанного образа.Я создал виртуальную машину на SSD диске, что очень настоятельно вам рекомендую. Установка Windows 7 происходит очень быстро.
Основной ПК загружен во время установки не сильно. Но ОЗУ уже тратится прилично.
Windows 7 установлен и в простое почти не «напрягает» процессор.
Папка с виртуальной машиной весит 19.3 Гб.
Настройка и тесты
Я сразу посмотрел через dxdiag свойства графики. Версия «DirectX 11» внушила надежду, но запуск 3DMark 11 все расставил по местам.
С включенным Aero при перемещении и развертывании окон ощущалась какая-то задержка. Включение упрощенного стиля решило эту проблему.
Проблема с окнами озадачила меня я и решил посмотреть, какую задержку дает система в целом, программой LatencyMon.
Для мониторинга FPS и снятия скриншотов я установил MSI Afterburner.
К сожалению, разогнать видеокарту VMware SVGA 3D не получится.
Оценить графическую производительность я решил с помощью 3DMark Vantage, рассчитанного как раз на системы с DirectX 10.
3DMark Vantage будет запускаться с пресетом High.
Результаты очень неплохие.
Это уровень производительности процессора AMD FX-8350 с видеокартой GeForce GTX 1060. А наша виртуалка крутится, напомню, на одном ядре Ryzen 5 1600!
Тесты в играх
Игры я подобрал учитывая требования DirectX 10 и небольшого размера на диске.
Первым под руку попался Portal.
Игра выдает 300 кадров. Играется нормально, но иногда проскакиваю фризы, которые почти целиком убираются фиксацией кадровой частоты на 60.
Очень удивил факт отсутствия «тиринга».
Sid Meier’s Civilization V идет гладко, неотличимо от настоящего ПК.
Стратегия про викингов Northgard тоже отлично играется.
Добавляем еще два потока процессору и тестируем дальше
После успешных тестов игр я решил добавить виртуальной машине процессорной мощи. Я добавил еще одно ядро Ryzen 5 1600, получив аналог Core i3-2100, два ядра и четыре потока. Перетест в 3DMark Vantage дает уже более 30000 очков.
Это уровень производительности Core i5-3570K и GeForce GTX 1060. Очень недурно, но учтите, что мой Ryzen 5 1600 работает на 4000 МГц, а память разогнана до 3400 МГц с настройкой всех таймингов.
После этого мне стало интересно протестировать процессорную производительность в AIDA64.
Сведения о системе, обратите внимание на название чипсета.
Тест кеша и памяти выдает вот такие результаты. Латентность отличная для виртуальной машины.
Очень высокий результат в тесте CPU PhotoWorxx.
Итоги
Результаты получились обнадеживающими. Теперь вполне можно создать виртуальную машину, наполнить ее кучей игр и держать обособленно от основной системы. Учитывая возможность создания «слепков» виртуальной машины, можно держать ее в «свежеустановленном» состоянии в «облаке». И даже если произойдет какой-нибудь сбой, восстановить ее можно будет за пару часов.
Очень порадовала производительность VMware Workstation 15.5.6 Pro даже на моем, не особо мощном процессоре. А на Ryzen 7 3700X, к примеру, и с более мощной видеокартой, все будет просто «летать».
Пишите, используете ли вы виртуальные машины? И для каких целей?
- Виртуальная машина с gpu
- Виртуальная машина с прокси сервером