Computational storage – хранилища с возможностью обработки данных – не только ускоряют объемные вычисления с интенсивным использованием подсистемы хранения, но и повышают энергоэффективность компьютера в целом.
По мере того, как снижается средняя цена 1 Тбайт емкости условного полупроводникового накопителя, расширяется функциональность SSD, как коммерческих, так и ориентированных на пользовательский сегмент ИТ-рынка. Речь идет о computational storage – хранилищах с возможностью обработки данных, пример которых являет выпускающийся серийно SmartSSD с интерфейсом NVMe, уже второе поколение такого рода накопителей разработки Samsung Electronics.
Учитывая высокие скорости обработки информации современными процессорами, при повышении общей производительности вычислительных систем все более узкими местами становятся внутренние шины данных, по которым информация циркулирует между накопителем, оперативной памятью, ЦП и ГП. Использование computational storage не только ускоряет объемные вычисления с интенсивным задействованием подсистемы хранения, но и повышает энергоэффективность компьютера в целом – для SmartSSD, по оценке самого разработчика, до 70%.
Понятно, что оснащать накопитель высокопроизводительным процессором бессмысленно: бóльшую часть времени тот будет просто простаивать. Однако даже несложная вычислительная СБИС общего назначения в составе SmartSSD гарантирует заметное ускорение относительно простых операций (таких как взвешенное суммирование, выборки по базе данных на основе заданного шаблона, массовое шифрование и/или сжатие и т. п.), которые необходимо выполнять над огромными массивами чисел, хранящихся в ячейках памяти. А ведь именно к таким операциям сводятся чрезвычайно актуальные сегодня задачи из сфер машинного обучения и искусственного интеллекта.
И хотя SmartSSD построен на закрытой проприетарной архитектуре, новейшие логические интерфейсы внутрикомпьютерных коммуникаций – такие, как активно развивающийся сегодня протокол CXL, – делают возможным применение разнородных computational storage внутри классических x86-систем с помощью «умных» контроллеров на портах, к которым подключены соответствующие шины.