Память загрузчика в PyTorch
Загрузчик пакетов может складывать выборки в закреплённую память хоста. Тогда копирование на видеокарту идёт быстрее, когда обучение действительно идёт на карте.
Флаг включают при создании загрузчика. На процессоре приём остаётся тем же, а признак можно прочитать у готового объекта:
import torch
from torch.utils.data import DataLoader, TensorDataset
rows = torch.tensor([[1.0], [2.0], [3.0]])
dataset = TensorDataset(rows)
loader = DataLoader(
dataset, batch_size=2, pin_memory=True
)
print(loader.pin_memory) # выведет True
Имеет смысл включать закреплённую память только вместе с переносом пакетов на карту. На одном процессоре выигрыш обычно не заметен.
Соберите набор из трёх
чисел 1, 2
и 3, оберните его
в загрузчик с размером
пакета 2 и
закреплённой памятью.
Выведите, включена ли
закреплённая память.
Для таблицы из двух рядов
[[0.0], [1.0]] создайте
загрузчик с пакетом 1
и закреплённой памятью
и выведите признак
закрепления.
Сравните два загрузчика
на одном наборе из
4 строк: у одного
включите закреплённую
память, у другого нет.
Выведите оба признака
закрепления через пробел.