Как я могу получить безголовый X-дисплей со встроенным графическим ускорением, работающий внутри модуля Google Cloud Kubernetes Engine?
Я работаю над проектом обучения с подкреплением, в котором параллельно работает большое количество смоделированных сред. Я выполняю моделирование с помощью Google Cloud Kubernetes Engine с рендерингом панда3d на виртуальный дисплей Xvfb.
Однако я заметил, что симуляция на моем Macbook работает в 2 раза быстрее, чем на Kubernetes, и профилирование показывает, что разница полностью связана с рисование рамы. Другие операции, такие как линейная алгебра, выполняются не более чем на 30 % медленнее. Моя теория заключается в том, что на моем Macbook panda3d может использовать встроенную графику, в то время как Xvfb использует программный рендеринг.
Я подозреваю, что сбор информации по приведенным ниже ссылкам заключается в том, что хитрость заключается в том, чтобы запустить безголовый X-сервер с аппаратным ускорением, а затем использовать Virtual GL для разветвления его на втором дисплее Xvfb. Но, господи, я здесь совсем не в себе.
Отвечу на ваши вопросы по порядку:
Скорее всего да, но по предоставленной вами информации трудно определить наверняка. Это зависит от того, как ваше программное обеспечение и библиотека, которую вы используете (panda3d), обрабатывают рендеринг.
Экземпляры Google Cloud Compute Engine не имеют встроенной графики, но вы всегда можете использовать графические процессоры (поддерживаемые графические процессоры и связанные зоны перечислены здесь). Вы можете включить виртуальные дисплеи для определенных экземпляров, как описано в этом документ.
Вы можете настроить кластеры Kubernetes или пулы узлов в Google Cloud, где узлы оснащены графическими процессорами Nvidia, как объясняется здесь.
Вы можете посмотреть в здесь некоторые примеры того, как использовать Kubernetes с графическими процессорами на Google Cloud Platform.
GCE-не-имеет-интегрированную-графику решает все остальное — полные графические процессоры слишком дороги для моего приложения по сравнению с простой арендой большего количества процессоров. Спасибо!