Устройство в PyTorch
Тензоры и модули можно держать на процессоре или переносить на видеокарту, если среда её видит. Сначала имеет смысл понять, доступна ли карта для вычислений в текущей установке.
Перенос делают явно, чтобы данные и операции оказались на одном месте. При загрузке пакетов из памяти хоста закреплённая память ускоряет копирование на карту, когда она есть.
На видеокарте часто считают в половинной точности, а масштаб ошибки защищает обратный проход от слишком малых градиентов. Отдельно модуль можно обернуть компилятором для более быстрого вызова на том устройстве, где он работает.
Обучение на нескольких процессах или картах опирается на общую группу процессов, обёртку модели с синхронизацией градиентов и сэмплер, который делит индексы набора по рангам.
Со всем этим мы и будем разбираться в рамках данного раздела.