Нейронки доели оперативку? Превращаем видеокарту в RAM диск

Нейронки доели оперативку? Превращаем видеокарту в RAM диск

Суть этого лютого костылестроения проста как палка. У тебя в корпусе стоит 3060 на 12 гигов или какая-нибудь древняя Tesla с Авито, которую ты взял по приколу или под майнинг, который давно умер. Тут-то анонимус и вспоминает, что память на видюхе это GDDR6 или HBM. Она быстрая, дерзкая, но находится за высоким забором шины PCIe.

В чем тут главный профит? Видеопамять по скоростям уделывает любую DDR4 и DDR5 в одни ворота, но у неё конские задержки, если процессор лезет туда напрямую. Использовать её как основную оперативку - это путь мазохиста, система будет фризить на каждом чихе. А вот сделать из неё элитный файл подкачки — идея на миллион. Это идеальный отстойник для данных, которые твоей нейронке или системе не нужны прямо в данную миллисекунду, но выгружать их на медленный SSD жалко.

Реализуется это торжество инженерной мысли преимущественно под Linux, ибо красноглазики первыми додумались монтировать видеопамять как блочное устройство. С помощью утилит вроде vramfs или экспериментальных модулей ядра ты буквально отрезаешь кусок памяти у своей видюхи и говоришь системе, что это теперь супербыстрый диск. На этот диск кидается swap файл, и ему выставляется максимальный приоритет.

На выходе мы имеем ситуацию, когда твоя RTX 3060, которая в играх уже звезд с неба не хватает, внезапно жертвует 4-6 гигабайт своего буфера на благо общего дела. Это работает в разы быстрее, чем своп на SSD, даже если он у тебя на NVMe. Система перестает вставать колом, когда ты загружаешь очередную жирную игру (локальный сервер), а ресурс твоего твердотельника перестает таять на глазах от постоянной перезаписи.

11
3
1
1
1
1
8 комментариев