Использование встроенной графики для безголового рендеринга внутри контейнера облачного докера - PullRequest
0 голосов
/ 28 мая 2019

Короткая версия

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

Фон

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

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

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

Погрешность

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

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

1 Ответ

1 голос
/ 30 мая 2019

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

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

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

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

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

...