(К написанному выше: долгое время не было простого способа распределить модель по нескольким GPU. Фреймворки наподобие Horovod и Distributed Tensorflow решали задачу параллелизации вычислений, когда в процессе тренировки в каждом GPU размещалась полная копия модели. Это ускоряло обучение модели, однако никак не помогало в случае, если памяти одного GPU не хватало для размещения переменных модели, оптимизатора и пр. Необходимость использовать GPU с большим объемом памяти приводила к дополнительным расходам; такие алгоритмы, как gradient checkpointing, отчасти помогали решать эту проблему, экономя память, зачастую за счет производительности. И сейчас наконец-то появились более-менее универсальные решения (Deepspeed), которые за счет распределения компонентов одной копии модели по всем доступным устройствам, позволяют тренировать очень большие модели, не требуя узкоспециализированного железа) #AI #Hardware