(Часть 2. Часть 1 – здесь)

В современных вычислительных системах узким местом является полоса пропускания между СХД и процессором. Вычислительная система с традиционной архитектурой Фон-Ноймана вынуждена постоянно играть в «информационный пинг-понг», перегоняя данные из процессора в СХД и обратно. Это приводит к задержкам и расходу энергии. Поэтому появляются технологии и решения, нацеленные на повышение ёмкости оперативной памяти и сохранности данных в ней (Persistent Memory).

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

Новая архитектура вычислительных систем получила название In-Memory Computing – «вычисления в оперативной памяти». Эта концепция не нова, однако, до недавнего времени попытки её реализовать особого успеха не имели. Да и затраты на реализацию такой идеи явно не окупали получаемые при этом преимущества.

В последнее время, в связи с появлением новых компьютерных архитектур и технологий обучаемых нейросетей интерес к In-Memory Computing снова возрос.

Основная цель технологий Persistent Memory и архитектур In-Memory Computing состоит в том, чтобы расположить память как можно ближе к процессору или даже интегрировать память в него.

Что такое In-memory computing?

Традиционная иерархия «память-СХД» довольно проста. Статическая память SRAM (Static RAM) обычно встроена в чип процессора в виде регистров и кэш-памяти. В ней хранятся промежуточные данные вычислений, которые нужны «прямо сейчас». Но эта память очень дорогая и больших объёмов данных в ней достичь невозможно, поскольку она изготавливается в едином технологическом цикле с процессором.

Оперативная память DRAM выполняется в виде отдельных модулей, расположенных на главной плате компьютера. Твердотельные накопители SSD тоже могут располагаться на главной плате компьютера, но могут устанавливаться и отдельно. А вот жёсткие диски HDD всегда устанавливаются отдельно от главной платы, то есть требуют шин передачи данных, буферов и интерфейсов. Последние и вносят существенные задержки, даже если сам диск относительно скоростной.

Рис. 1. Соотношение различных параметров памяти и СХД.

Рис. 1. Соотношение различных параметров памяти и СХД.

В свою очередь, память класса СХД сочетает в себе достоинства SSD и HDD (ёмкость и стоимость), а также памяти DRAM и SRAM (скорость работы). Причём, разрыв в ёмкости, размерах быстродействии и выносливости между SSD/HDD и DRAM весьма велик. Именно этот разрыв и заполняет собой SCM.

Рис. 2. Соотношение времени записи в ячейку и выносливости различных видов памяти.

Рис. 2. Соотношение времени записи в ячейку и выносливости различных видов памяти.

Такое решение способно справиться со всё возрастающим сетевым трафиком, который в 2022 году должен, по прогнозам компании Cisco, превысить 400 эксабайт в месяц (в 2017 году было 12 эксабайт в месяц).

Кроме того, многие современные приложения, такие как искусственный интеллект на телефонах, распознавание лиц и т.п., требуют гораздо более быстрой обработки данных, чем может обеспечить традиционная компьютерная архитектура, без технологий вычислений в памяти. Перекачка данных между традиционными SSD/HDD и DRAM не только вносит дополнительные задержки, требует дополнительного пространства хранения для буфера и резервирования, но также и влечёт дополнительные энергозатраты. Использование SCM и In-memory computing может значительно их снизить.

Интеграция

Одна из технологических тенденций последних лет – гиперконвергентная инфраструктура HCI, в которой сервер, СХД и сетевые интерфейсы конструктивно выполняются в одном модуле, из которых можно строить вычислительные инфраструктуры, как из кубиков.

Нечто подобное, по все видимости, ожидает в ближайшем будущем и сами вычислительные узлы. Процессоры, память и другие устройства будут интегрироваться в модули с архитектурой Фон-Ноймана.

Рис. 3. Традиционная архитектура Фон-Ноймана.

Рис. 3. Традиционная архитектура Фон-Ноймана.

В традиционной архитектуре Фон-Ноймана «память» представляет собой наиболее проблемное место, ограничивающее производительность вычислительных систем. Архитектура с In-memory computing устраняет это «бутылочное горлышко». Масштабирование вычислительной мощности и объёма памяти в такой архитектуре будет выполняться простым наращиванием количества модулей.

Технология In-memory computing может использоваться для различных приенений, которым могут относиться:

  • Базы данных, использующие вычисления в памяти для кэширования, и т.п. приложения
  • Нейросети и машинное обучение
  • Инновационные области, в том числе т.н. «нейроморфные вычисления»

Например, в нейросетях происходят различные виды матричных вычислений. Как правило, такие вычисления производятся на нескольких слоях вычислительных узлов (нейронов), из которых пользователю видны только входной и выходной. В промежуточных слоях нейронов выполняются некие математические функции f, а число нейронов в каждом слое может быть разным, что выражается в коэффициентах сходимости слоёв W. На входной слой подаётся набор входных сигналов (например, это могут быть пикселы битового изображения), а результат распознавания (ответ) снимается с набора узлов выходного слоя.

Рис. 4. Типовая структура нейросети.

Рис. 4. Типовая структура нейросети.

На рисунке 4 показана простейшая нейросеть с машинным обучением. В реальности, как число слоёв, так число нейронов в них, может быть довольно большим, особенно в сетях с глубоким обучением DNN (Deep Neural Network). Эти нейросети могут использоваться, например, для распознавания образов, в метеорологических или медицинских системах в системах помощи водителю и пр.

Вот, например, как может выглядеть нейросеть для прогнозирования содержания в воздухе частиц загрязнения диаметром менее 2.5 микрон (в мг на м3), которые могут вызывать различные заболевания (в т.ч. рак лёгких) по 270 входным параметрам: день года, день недели, время года, высота над уровнем моря, температура воздуха, точка росы, влажность, прозрачность воздуха, скорость ветра и пр.

Рис. 5. Нейросеть для прогнозирования содержания вредных частиц в воздухе, могущих вызывать рак лёгких.

Рис. 5. Нейросеть для прогнозирования содержания вредных частиц в воздухе, могущих вызывать рак лёгких (Источник: https://www.researchgate.net).

То есть, число промежуточных результатов вычислений в скрытых слоях может быть довольно большим. Если для хранения их использовать традиционные СХД (HDD, или даже SSD), то такая нейросеть вряд ли окажется работоспособной в реальном масштабе времени.

Промежуточные результаты могут занимать объем в гига- и терабайты данных, которые нужно очень быстро обрабатывать и хранить в течение коротких промежутков времени. Кроме однократного выполнения внутренних операций распознавания образов, или другой промежуточной логики, они не нужны. Передавать их через традиционные, довольно медленные интерфейсы (IDE, SCSI и пр.) и недолго хранить в небыстрых накопителях – бессмысленная задача, как в пословице «за семь вёрст киселя хлебать».

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

Поэтому для таких задач также стали активно использоваться методы вычислений в памяти. Конечно, широкое их внедрение может занять достаточно длительное время, поскольку эта задача связана с пересмотром принципов построения традиционных компьютерных систем.

Нейроморфные компьютеры

Нейроморфные вычисления – новая область информационных технологий, в которой будут активно использоваться вычисления в памяти. Их архитектура строится по образцу строения и работы мозга человека, когда информация перемещается от одной группы нейронов к другой при помощи точно скоординированных тактовых импульсов.

При этом используется сразу несколько решений памяти следующих поколения, таких как память с изменением фазы PRAM (Phase-change Random Access Memory), FeRAM (ferroelectric RAM), MRAM (magnetoresistive RAM) и другие.

Нейроморфные системы могут быть весьма перспективны, например, для применения в областях, связанных с обработкой полезного сигнала при высоких уровнях шума. Вполне возможно, что первые граммофонные записи после обработки на нейроморфном компьютере зазвучат с качеством современных звуковых систем Hi-End, а первые киносъёмки можно будет посмотреть в цвете и с качеством 4K.

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

Языки программирования тоже нужно будет переделывать практически заново. С точки зрения оборудования также возникает много проблем, требующих своего решения. Для того, чтобы реализовать все преимущества нейроморфных вычислений, потребуются новые поколения памяти, систем хранения и сенсоров. Принципы интеграции элементов оборудования также потребуется переосмыслить.

Есть уже и первые ласточки в этом направлении. Компания Intel недавно разработала нейроморфный чип Loihi и построила систему на шестидесяти четырёх таких чипах, смоделировав в ней 8 миллионов нейронов. В ближайшем будущем планируется довести число нейронов в такой системе до 100 млн.