Использование встроенной графики для безголового рендеринга внутри контейнера облачного докера

Укороченная версия

Как я могу получить безголовый X-дисплей со встроенным графическим ускорением, работающий внутри модуля Google Cloud Kubernetes Engine?

Задний план

Я работаю над проектом обучения с подкреплением, в котором параллельно работает большое количество смоделированных сред. Я выполняю моделирование с помощью Google Cloud Kubernetes Engine с рендерингом панда3d на виртуальный дисплей Xvfb.

Однако я заметил, что симуляция на моем Macbook работает в 2 раза быстрее, чем на Kubernetes, и профилирование показывает, что разница полностью связана с рисование рамы. Другие операции, такие как линейная алгебра, выполняются не более чем на 30 % медленнее. Моя теория заключается в том, что на моем Macbook panda3d может использовать встроенную графику, в то время как Xvfb использует программный рендеринг.

Я подозреваю, что сбор информации по приведенным ниже ссылкам заключается в том, что хитрость заключается в том, чтобы запустить безголовый X-сервер с аппаратным ускорением, а затем использовать Virtual GL для разветвления его на втором дисплее Xvfb. Но, господи, я здесь совсем не в себе.

Неопределенности

  • Действительно ли аппаратный или программный рендеринг является причиной моего замедления?
  • Имеют ли экземпляры Google Cloud встроенную графику?
  • Может ли модуль Kubernetes использовать встроенную графику без модификации хоста?

Полезные источники

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
Как создать PHP Image с нуля
Как создать PHP Image с нуля
Сегодня мы создадим PHP Image from Scratch для того, чтобы легко развернуть базовые PHP-приложения. Пожалуйста, имейте в виду, что это разработка для...
0
0
885
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Отвечу на ваши вопросы по порядку:

  • Скорее всего да, но по предоставленной вами информации трудно определить наверняка. Это зависит от того, как ваше программное обеспечение и библиотека, которую вы используете (panda3d), обрабатывают рендеринг.

  • Экземпляры Google Cloud Compute Engine не имеют встроенной графики, но вы всегда можете использовать графические процессоры (поддерживаемые графические процессоры и связанные зоны перечислены здесь). Вы можете включить виртуальные дисплеи для определенных экземпляров, как описано в этом документ.

  • Вы можете настроить кластеры Kubernetes или пулы узлов в Google Cloud, где узлы оснащены графическими процессорами Nvidia, как объясняется здесь.

Вы можете посмотреть в здесь некоторые примеры того, как использовать Kubernetes с графическими процессорами на Google Cloud Platform.

GCE-не-имеет-интегрированную-графику решает все остальное — полные графические процессоры слишком дороги для моего приложения по сравнению с простой арендой большего количества процессоров. Спасибо!

Andy Jones 31.05.2019 10:39

Другие вопросы по теме