Могут ли несколько процессов использовать один контекст CUDA?
Этот вопрос является продолжением комментария Джейсона Р. к ответу Роберта Кровелласа на этот исходный вопрос ("Несколько контекстов CUDA для одного устройства - какой смысл?"):
Когда вы говорите, что несколько контекстов не могут выполняться одновременно, ограничивается ли это только запусками ядра или также относится к передаче памяти? Я рассматривал многопроцессорный дизайн на одном и том же графическом процессоре, который использует IPC API для передачи буферов от процесса к процессу. Означает ли это, что фактически только один процесс одновременно имеет монопольный доступ ко всему графическому процессору (а не только к отдельным SM)? [...] Как это взаимодействует с асинхронно поставленными в очередь ядрами / копиями в потоках в каждом процессе в плане планирования?
Роберт Кровелла предложил задать этот вопрос в новом вопросе, но ответа не последовало, поэтому позвольте мне сделать это здесь.
1 ответ
Многопроцессорная служба - это альтернативная реализация CUDA от Nvidia, которая заставляет несколько процессов использовать один и тот же контекст. Это, например, позволяет ядрам из нескольких процессов работать параллельно, если каждый из них не заполняет весь графический процессор сам по себе.