Гетерогенная память, ее применение и оптимизация в системах машинного обучения

машинное обучение

Компания Fourth Paradigm активно работает в области искусственного интеллекта и обладает как широтой, так и глубиной понимания алгоритмов, приложений, систем и базовой архитектуры, связанных с искусственным интеллектом.

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

Fourth Paradigm взяла на себя ведущую роль в компоновке гетерогенной архитектуры памяти и провела ряд инновационных исследований, разработок и методов внедрения, таких как серверы параметров. система восстановления уровня:Woohoo.163.com/specialties/art ICL…], база данных в памяти и т. д. [Результаты совместных исследований Intel и Fourth Paradigm были выбраны для участия в международном саммите VLDB Optane™, посвященном постоянной памяти, для оптимизации системы онлайн-прогнозирования для функций триллиона измерений:newsroom.Intel.talent/news-hot Артур…].

В этой статье будут представлены технические основы гетерогенных архитектур памяти и технические практики автоматизированных систем машинного обучения.

Гетерогенная архитектура памяти

Традиционно то, что мы подразумеваем под памятью, обычно относится к динамическому хранилищу с произвольным доступом или DRAM. Кроме того, в ЦП также есть быстродействующие запоминающие устройства небольшой емкости, которые мы обычно называем кэш-памятью ЦП (т. е. кэш-памятью L1/L2). Постоянные медленные запоминающие устройства представляют собой внешнюю память, например диски. Таким образом, внешняя память, память и кэш-память ЦП составляют всю пирамиду архитектуры хранения. Однако с коммерциализацией революционной технологии энергонезависимой памяти память в этой пирамиде больше не состоит только из DRAM, а представляет собой гетерогенную архитектуру памяти, состоящую из DRAM и энергонезависимой памяти.

Кроме того, появление энергонезависимой памяти также стирает функциональную границу между памятью и внешней памятью, что делает возможным сохранение данных в памяти. Сегодня технология энергонезависимой памяти полностью отработана, и энергонезависимая память Intel® Optane™ (Persistent Memory или PMem), выпущенная Intel в 2019 году, является типичным продуктом этой технологии.
在这里插入图片描述

Рисунок 1. Пирамида архитектуры хранения на основе гетерогенной памяти

На рис. 1 показана пирамида архитектуры хранения с гетерогенной памятью. Видно, что, по сути, энергонезависимая память находится между DRAM и внешней памятью в пирамиде, а ее емкость, производительность и стоимость — между ними. Даже функционально это гибрид DRAM и внешней памяти. Его можно использовать либо непосредственно как память (режим памяти), либо как постоянное устройство (режим App Direct, сокращенно режим AD).

В режиме памяти постоянная память прозрачна для операционной системы, а ее емкость напрямую отражается как общая доступная емкость памяти; в режиме AD открывается уровень хранения и полностью контролируется разработчиками. Поэтому из-за особого существования постоянной памяти современная архитектура памяти не только усложняется по уровню, но и имеет революционные изменения в функциях.Разработчикам необходимо больше думать о том, как эффективно использовать разнородную архитектуру памяти. :

  • Оптимизация многоуровневого хранилища. Постоянная память обеспечивает решение памяти с производительностью, близкой к DRAM, но с более низкой стоимостью, что очень выгодно для приложений, потребляющих много памяти. Однако внедрение многоуровневой архитектуры хранения также создает дополнительные трудности для оптимизации производительности. Мы знаем, что высокопроизводительные кэши имеют большое значение для настройки производительности. С одной стороны, в реальных данных часто есть горячие точки, и кэширование может эффективно повысить производительность доступа к горячим данным;
    сознательный) для того, чтобы сжать производительность оборудования, часто есть гениальные конструкции. Затем появление постоянной памяти усложняет этот уровень хранения и выдвигает более высокие требования к проектированию механизма многоуровневого кэширования, структуры данных и алгоритма.
  • Использование механизма персистентности. Постоянная память делает внешнюю память более не единственным вариантом для хранения данных. Постоянная память обеспечивает гораздо более высокую производительность по сравнению с традиционными внешними запоминающими устройствами, но ее емкость относительно невелика. Как эффективно использовать характеристики высокопроизводительного сохранения в некоторых сценариях, стало новой проблемой, которую необходимо учитывать при реализации приложения. Например, для онлайн-сервисных приложений, которым необходимо круглосуточно обеспечивать качество обслуживания, сохраняемость данных в памяти может обеспечить быстрое восстановление после автономной работы; кроме того, в сценарии, где дисковый ввод-вывод является узким местом производительности, постоянная память также может быть используется в качестве носителя для повышения общей производительности системы.

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

Оптимизация систем автоматического машинного обучения на гетерогенной памяти

在这里插入图片描述
На рис. 2 показан типичный полный поток автоматического машинного обучения (AutoML) в продукте четвертой парадигмы. Его основная часть включает в себя автономное исследование и онлайн-рассуждения. Исследование в автономном режиме Благодаря автоматическому проектированию признаков и обучению моделей создаются сценарии проектирования признаков и модели, которые можно запускать в режиме онлайн. После получения запроса пользователя онлайн-сервис рассуждений получает результат прогноза посредством извлечения признаков в реальном времени и рассуждений модели. В то же время очередь сообщений играет ключевую роль в сборе и распространении данных во всей системе.

Как видно из таблицы 1, в гетерогенной архитектуре памяти постоянная память имеет разные методы использования в разных компонентах для достижения разных целей оптимизации. В целом, режим памяти можно использовать для быстрого и недорогого увеличения емкости памяти, в то время как режим AD дает больше преимуществ, включая возможности быстрого восстановления и улучшенную производительность хранения данных.
在这里插入图片描述

Четвертая парадигма отделила ключевые технологические компоненты на основе гетерогенной оптимизации памяти и внесла свой вклад в сообщество открытого исходного кода.В настоящее время она в основном включает два проекта: высокопроизводительную систему очереди сообщений Pafka (GitHub.com/4paradigm/боюсь…Пмемсторе (GitHub.com/4paradigm/боюсь…. Далее в основном представлена ​​Пафка.

Pafka: высокопроизводительная система очередей сообщений, основанная на оптимизации гетерогенной памяти

Kafka — это распределенная система очередей потоков событий/сообщений с открытым исходным кодом для эффективной и надежной обработки потоков данных в реальном времени, имеющая широкий спектр сценариев применения в отрасли. Однако из-за его логики постоянства его производительность (пропускная способность и задержка) часто ограничивается внешними устройствами хранения (HDD/SSD). В реальных сценариях использования, чтобы увеличить общую пропускную способность кластера Kafka, предприятию необходимо увеличить размер кластера, что увеличивает общую стоимость предприятия.

Постоянная память обладает характеристиками высокоскоростной сохраняемости, которая может в несколько раз или даже в десятки раз повысить производительность сохраняемости по сравнению с традиционными жесткими дисками и твердотельными накопителями. Таким образом, Pafka, оптимизированная версия Kafka, основанная на гетерогенной архитектуре памяти, использует преимущества высокоскоростных характеристик постоянства для значительного повышения пропускной способности отдельного узла, тем самым оптимизируя общие инвестиционные затраты на кластер. В целом, по сравнению с традиционными решениями Kafka, Pafka имеет следующие преимущества:

  • По сравнению с распространенной конфигурацией SATA SSD в современных центрах обработки данных, Pafka на основе гетерогенной памяти улучшает пропускную способность узла и латентность в 20 раз.
  • Благодаря значительному увеличению пропускной способности узла Pafka может снизить стоимость инвестиций в оборудование более чем в 10 раз по сравнению с Kafka с точки зрения общих инвестиций в масштабирование кластера.
  • Pafka напрямую оптимизирована на основе Kafka, а исходный бизнес-код пользователей на основе Kafka не требует модификации и может быть перенесен в систему Pafka без затрат на преобразование кода.

Наши оптимизации для Kafka сосредоточены на той части потери данных, которая вызывает узкие места в производительности. В исходной архитектуре Kafka сохраняемость данных происходила только на уровне внешней памяти (диск/SSD); оптимизированная версия Pafka основана на гетерогенной архитектуре памяти и использует постоянную память и внешнюю память для сохранения данных.

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

Из-за модели использования очередей сообщений производителем/потребителем доступ к данным в большинстве сценариев происходит в высокопроизводительной энергонезависимой памяти.

在这里插入图片描述
Рисунок 3. Архитектура кластера Pafka
Как показано на рис. 3, кластер серверов Kafka состоит из нескольких или сотен брокеров. Брокеры внутренне разделены на разные разделы и дополнительно разделены на сегменты для хранения сообщений. Наше преобразование Kafka в основном сосредоточено на преобразовании структуры данных хранения сегмента. Исходный сегмент можно хранить только на внешних устройствах хранения, таких как HDD/SSD.Мы используем PMDK для выполнения постоянных операций на основе гетерогенной памяти и вводим концепцию MixChannel, чтобы понять, что сегменты могут храниться на внешних устройствах хранения, таких как HDD/ SSD Также в постоянной памяти.

В частности, MixChannel единообразно управляет общими файловыми интерфейсами и интерфейсами постоянной памяти, а его основной носитель данных прозрачен для компонентов верхнего уровня. Чтобы поддерживать постоянное хранилище на основе памяти, мы представили структуру данных PMemChannel для MixChannel.Ее основная функция заключается в инкапсуляции объекта MemoryBlock постоянной памяти в интерфейс, который удовлетворяет API FileChannel, так что MixChannel может легко выбрать традиционный файл- на основе интерфейса FileChannel или PMemChannel на основе постоянной памяти. Здесь мы используем PersistentMemoryBlock из pmdk llpl, который будет автоматически сохранять данные, записываемые каждый раз. В то же время для поддержки нулевого копирования мы также реализовали интерфейс ByteBuffer с нулевым копированием для MemoryBlock llpl, напрямую сопоставив адрес постоянной памяти с ByteBuffer, тем самым избегая множественных копий памяти и повышая производительность.

Чтобы поддерживать соответствие между сегментами и данными в постоянной памяти, мы выделяем MemoryBlock постоянной памяти для каждого сегмента, а отношение отображения поддерживается ObjectDirectory из pmdk pcj.

Кроме того, чтобы избежать накладных расходов на динамическое выделение MemoryBlock при нормальной работе Pafka, мы предварительно выделим фиксированный процент пространства пула памяти во время инициализации для быстрого выделения MemoryBlock при записи данных.

Сравнение производительности
在这里插入图片描述

На рис. 4 показано, что по сравнению с Kafka, который обычно используется в центрах обработки данных для обеспечения персистентности на базе SATA SSD, Pafka на основе гетерогенной оптимизации памяти позволяет добиться 20-кратного улучшения показателей пропускной способности и задержки.

сравнение стоимости

Предполагая, что наша цель — обеспечить общую пропускную способность 20 ГБ/с, мы сравним Pafka с гетерогенной постоянной памятью с Kafka на основе SATA SSD. На рис. 5 показано, что для достижения общей пропускной способности 20 ГБ/с количество серверов на основе SATA SSD и гетерогенных серверов на основе памяти составляет 45 и 3 соответственно. Кроме того, с точки зрения стоимости оборудования традиционная Kafka (SATA SSD) стоит 450 000 долларов, а наше решение Pafka — всего 40 500 долларов. Решение Pafka значительно снижает стоимость оборудования до 9% по сравнению с традиционным решением Kafka.
在这里插入图片描述

Рис. 5. Сравнение стоимости решений Pafka и Kafka при пропускной способности 20 ГБ/с

Дополнительная информация

Pafka — это проект с открытым исходным кодом Четвертой парадигмы. Вы можете узнать больше о конкретном использовании, технической поддержке и полных отчетах о производительности по следующим каналам:
- Репозиторий кода Github:GitHub.com/4paradigm/боюсь…
-Слабый канал:join.slack.com/he/me отметить меня р…
-Форум по гетерогенным технологиям хранения данных MemArk:discuss.memark.io/