Детализированное планирование ядра с помощью MPS

Я работаю над использованием многопроцессорной службы NVIDIA CUDA (MPS) для запуска нескольких заданий вывода TensorFlow с использованием одного и того же графического процессора. В моем случае использования, когда графический процессор используется более чем одним процессом, мне иногда нужно установить приоритет выполнения ядер одного процесса над другим. Это поддерживается?

Чтобы объяснить проблему более подробно, рассмотрим пример, в котором у нас есть два процесса, p1 и p2 (каждый с одним потоком выполнения ядра), совместно использующие графический процессор.

Сценарий: когда есть одно или несколько ядер в очереди готовности как для p1, так и для p2.

Поведение MPS по умолчанию (насколько я понимаю):

Если ресурсов достаточно, запускайте несколько ядер одновременно из p1 и p2.

Желаемое поведение: способность решать на основе приоритета, если:

  • Сначала выполните ядро ​​p1, затем p2.
  • Сначала выполните ядро ​​p2, затем p1.
  • Если ресурсов достаточно, запускайте несколько ядер одновременно с p1 и p2.

Если такой вид настраиваемого расписания не поддерживается, будет здорово, если кто-нибудь сможет указать, какие изменения кода потребуются, чтобы заставить его работать.

1 ответ

Решение

Иногда мне нужно установить приоритет выполнения ядер одного процесса над другим. Это поддерживается?

Нет это не так.

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