Как я могу уменьшить очень длительную задержку инициализации CUDA?

Инициализация CUDA во вновь созданном процессе может занять довольно много времени - полсекунды или более на многих современных машинах серверного уровня. Как объясняет@RobertCrovella, инициализация CUDA обычно включает создание модели унифицированной памяти, которая включает в себя гармонизацию карт памяти устройства и хоста. Это может занять довольно много времени для машин с большим объемом памяти; и могут быть другие факторы, способствующие этой длительной задержке.

Этот эффект становится довольно раздражающим, когда вы хотите запустить последовательность процессов, использующих CUDA, которые не используют сложные отображения виртуальной памяти: каждый из них должен ждать своего долгого ожидания - несмотря на то, что "по сути", они могут просто повторно использовать ли инициализации CUDA в последний раз (возможно, с небольшим количеством кода очистки).

Теперь, очевидно, если вы как-то переписали код для всех этих процессов для выполнения в одном процессе - это сэкономит вам эти долгие затраты на инициализацию. Но разве нет более простого подхода? Как насчет:

  • Передача одинаковой информации о состоянии / контекста CUDA между процессами?
  • Сказать CUDA полностью игнорировать память хоста?
  • Делать гармонизацию унифицированной памяти более ленивой, чем сейчас, чтобы это происходило только в той степени, в которой это действительно необходимо?
  • Запуск CUDA с отключенной объединенной памятью?
  • Держать какой-нибудь процесс демона на стороне и привязать его к уже инициализированному состоянию CUDA?

1 ответ

То, о чем вы спрашиваете, уже существует. Он называется MPS (MULTI-PROCESS SERVICE) и в основном поддерживает постоянную работу одного контекста GPU с помощью процесса демона, который эмулирует API драйвера. Исходное целевое приложение - MPI, но оно делает то, что вы задумали.

Узнайте больше здесь:

https://docs.nvidia.com/deploy/pdf/CUDA_Multi_Process_Service_Overview.pdf

http://on-demand.gputechconf.com/gtc/2015/presentation/S5584-Priyanka-Sah.pdf

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