Обучение с использованием распределенных данных pytorch Параллельно с world_size 4 на компьютере с несколькими графическими процессорами продолжается, даже когда запущены только два процесса графического процессора - PullRequest
1 голос
/ 22 января 2020

Я хочу запустить тест, чтобы увидеть, как работает синхронизация. Я предполагаю, что в конце каждого пакета DDP будет ожидать, пока процессы в графических процессорах world_size достигнут точки синхронизации, как обратный проход для синхронизации градиентов. Я использовал машину с 4-мя графическими процессорами и использовал переменную окружения CUDA_VISIBLE_DEVICES, чтобы убедиться, что можно запустить только 2 процесса на GPU. Если бы запускались только 2 процесса GPU, я предполагаю, что в конце первого пакета синхронизация на существующем 2 GPUS будет ждать на двух других и истечет время ожидания, так как другие два никогда не начнутся. Я заметил, что обучение продолжалось только с двумя процессорами GPU, хотя размер мира равен 4. Как это объяснить? Мое понимание не правильно?

...