> > > > VRAMFS: использование памяти видеокарты для файловой системы

VRAMFS: использование памяти видеокарты для файловой системы

Опубликовано:

nvidia-pascal-logoRAM-диски можно назвать популярным средством использования доступной оперативной памяти для определенных приложений. Преимущество такой памяти кроется в том, что она намного быстрее любых SSD. С помощью VRAMS для RAM-диска можно использовать не оперативную память, а видеопамять – через ядро Linux, FUSE и OpenCL. В зависимости от подключения видеокарты к интерфейсу PCI Express обеспечивается скорость чтения или записи до 2 Гбайт в секунду. Те же SSD PCI Express сегодня могут дать до 1.200/800 Мбайт/с. При подключении флэш-накопителя через SATA скорость не превышает 500/500 Мбайт/с. Конечно, существуют SSD серверного уровня, которые подключаются через PCI Express и обеспечивают скорость чтения до 6,7 Гбайт/с и скорость записи до 4,4 Гбайт/с. Но цена таких решений составляет десятки тысяч евро.

Модуль NVIDIA Pascal с 3D Memory
Модуль NVIDIA Pascal с 3D Memory

Но вернемся к VRAMFS: пока система находится на раннем этапе разработки. Современные видеокарты в потребительском сегменте оснащаются уже 4 или 6 Гбайт видеопамяти, так что выигрыш от VRAMFS в будущем будет только увеличиваться, между тем разработчики планируют увеличить производительность. Текущий уровень производительности порядка 2 Гбайт/с значительно уступает классическим RAM-дискам, которые обеспечивают до 6 Гбайт/с. Тем более что пропускная способность PCI Express даёт достаточный запас. В случае PCI Express 3.0 и 16 линий она составляет до 15,754 Гбайт/с. А у грядущего стандарта PCI Express 4.0 пропускная способность составляет до 31,508 Гбайт в секунду.

В качестве инструмента для организации VRAMFS используется Linux с FUSE. Система Linux организует пользовательское пространство, которое можно адресовать за пределами ядра на внешней файловой системе. Видеокарта должна поддерживать, как минимум, OpenCL 1.1. FUSE используется только для работы с файловой системой, сам по себе доступ к памяти выполняется через интерфейс OpenCL. Операции записи выполняются асинхронно, для чтения поддерживается синхронный режим.

Если вы хотите попробовать VRAMFS самостоятельно, то можете скачать код на Github под лицензией MIT.