Попрощайтесь с HD Caton, уловкой для лечения болезней видеооблака

искусственный интеллект глубокое обучение облачные вычисления Архитектура

Править | Дебра

Содержимое, представленное в этом выпуске, взято из официального документа «Как поставщики облачных услуг (CSP) получают преимущества от платформы Intel® Xeon® Skylake для облачных мультимедийных приложений», написанного г-ном Лу Янгом из корпорации Intel. Чтобы прочитать полный текст, см. пожалуйста, посетите общедоступную учетную запись AI Frontline. Ответьте на ключевое слово «Intel» внутри, чтобы получить полный PDF-документ официального документа.

В этом выпуске, посвященном передовому сообществу ИИ, мы очень рады пригласить Лу Янга, старшего архитектора отдела маркетинга центров обработки данных Intel, поделиться с нами «Созданием и улучшением высокопроизводительных облачных видеосервисов».

Прежде всего, позвольте мне представить сегодняшнего лектора: Лу Янг, старший архитектор отдела маркетинга Intel Data Center, в основном отвечающий за интернет-клиентов в Китае. Он имеет более чем десятилетний опыт разработки и работы в Интернете в Intel и тесно сотрудничает с независимыми поставщиками программного обеспечения/заказчиками первой линии в Азиатско-Тихоокеанском регионе, уделяя особое внимание архитектуре Intel IA, помогая клиентам с оценкой производительности системы и настройкой платформы. миграция и обновление, а также углубленное техническое сотрудничество. Этот обмен будет в основном сосредоточен на следующих шести аспектах:

  • Текущая ситуация в индустрии медиаоблачных вычислений

  • Влияние обновлений набора инструкций

  • традиционные приложения для обработки видео

  • Приложения HEVC/H.265

  • приложение для обработки изображений

  • Приложения глубокого обучения для видео и изображений

Текущая ситуация в индустрии медиаоблачных вычислений

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

В этом сообщении рассказывается о новой технологии новой платформы Intel Xeon и повышении ее производительности для облачных медиа-вычислений, а также объясняется, как новый набор инструкций SIMD (Single Instruction Multiple Data Stream) AVX-512 помогает повысить производительность приложений обработки видео, изображений и глубокого обучения видео. .

В последние годы приложения и услуги облачных медиа-вычислений быстро растут. К 2020 году видеотрафик будет составлять 82% всего трафика, потребляемого пользователями Интернета.

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


Чем сложнее сценарии облачных вычислений и бизнес-требования, тем выше проблемы, связанные с вычислительной мощностью внутренних серверов, особенно когда видеоформаты 4K/8K появляются и развиваются. Форматы видео 4K и 8K обеспечивают более высокое качество видео и удобство для конечного пользователя, но также требуют более высокой вычислительной мощности и большего объема ресурсов хранения и пропускной способности сети.


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

Влияние обновлений набора инструкций

Базовый модуль облачных медиа-вычислений включает транскодирование видео, редактирование, извлечение признаков и анализ. Среди них транскодирование видео потребляет большую часть вычислительных ресурсов и является основой для другой дальнейшей обработки и анализа. А технология векторизации SIMD от Intel является ключом к оптимизации этих ресурсоемких операций.

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

  • Эффективные решения для обработки видео для поставщиков облачных услуг. Базовое кодирование и перекодирование видео в 2–4 раза быстрее, что может значительно увеличить вычислительную мощность кластера обработки мультимедиа.

  • Высокопроизводительные решения для обработки изображений для различных онлайн-приложений. Уменьшите задержку и пропускную способность онлайн-обработки изображений.

  • Ускоряет алгоритмы глубокого обучения, помогая устранить узкие места производительности в новых приложениях поставщиков облачных услуг.

Набор инструкций AVX-512 эволюционировал из MMX, SSE, AVX, AVX2 на нескольких поколениях разных платформ x86, а ширина вектора выросла с 64b до 512b.

MMX: 8x 64-битных регистров (MM0…MM7)

SSE: 8x 128-битных регистров (XMM0…XMM7), 4x регистра FP/XMM одинарной точности

SSE2: более широкая целочисленная ширина вектора, 128 байт, регистры двойной точности FP/XMM

SSE3: обновленные векторные инструкции

SSE4 (4.1 и 4.2): 16x 128-битных регистров (XMM0-XMM15) и новые инструкции (47 + 7 новых инструкций)

AVX: SIMD шириной 256 бит для вычислений с плавающей запятой и шириной 16x256 бит (ymm0-ymm16)

AVX2: 256-битный SIMD для целочисленных вычислений, новые инструкции для FMA (смешанный умножение-сложение) и расширенные инструкции

AVX-512: 512-битные SIMD-инструкции для вычислений с целыми числами и числами с плавающей запятой, 2x 512-битных FMA

В новой платформе Xeon реализована технология 512-битной векторизации, позволяющая повысить пиковую производительность до 2 раз по сравнению с AVX2. Повышение производительности на уровне микроархитектуры (особенно настройка векторизации SIMD) может значительно повысить производительность обработки видео и изображений.

традиционные приложения для обработки видео

Так как же использование технологии AVX-512 повышает производительность медиаоблачных вычислений? При традиционной обработке видео офлайн-приложения для перекодирования видео обычно интенсивно используют ЦП и память, а их наиболее трудоемкий основной код можно оптимизировать с помощью методов векторизации SIMD.

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

Взяв в качестве примера традиционную программу транскодирования видео H.264, показанную на рис. 3, с использованием инструкций SIMD (SSE/AVX2), большинство функций точек доступа были векторизованы и оптимизированы, но AVX до сих пор не использовался -512 Технологии.


Рисунок 5.8*4 Расчет блока и его диаграмма оптимизации SIMD

Взяв в качестве примера базовую функцию вычисления блока 8x4, чтобы облегчить понимание функции x264_pixel_satd_8x4, мы разработали графическую модель на рисунке 5. Мы видим, что расчет SATD блока 8x4 требует использования двух преобразований Адамара (сначала строка, затем столбец). Кроме того, мы замечаем, что преобразование Адамара имеет 4 входа, поэтому нам нужно хранить данные в 4 отдельных модулях SIMD для параллельных вычислений. Мы можем загрузить все 128-битные данные (то есть 8x16-битных целых чисел в каждом черном ящике) вm128i, образуя в общей сложности 4*m128i в качестве входных данных для первого преобразования Адамара. Кроме того, транспонирование матрицы необходимо, чтобы помочь сформировать второе преобразование Адамара (по столбцам). Чтобы проверить производительность реализации векторизации SIMD, мы сначала случайным образом генерируем элементы в двухпиксельных матрицах, используя rand()% 10 . Для обеспечения точности здесь мы тестируем функции по отдельности, а не в пакетах, а результаты производительности показаны в таблице 2.

Из таблицы 2 видно, что оптимальная реализация векторизации SIMD в каждой строке (выделена и показана красным шрифтом) обеспечивает повышение производительности от 3 до 5 раз по сравнению с исходной версией. В частности, в примере блочного вычисления 8x4 код SSE достигает повышения производительности в 3,26 раза по сравнению с исходной версией и превосходит две другие реализации SIMD.

Причина в том, что блоки 8x4 полностью используют 128-битные регистры SSE, в то время как AVX2 и AVX-512 занимают немного места. Но важно то, что код AVX-512 достигает наилучшей производительности при блочных вычислениях 8x16 и 16x16, где блок 16x16 является целевой функцией в нашей начальной конфигурации (т. е. x264_pixel_satd_16x16).

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

Приложения HEVC/H.265

Стандарты кодирования видео в основном разрабатываются и развиваются на основе знакомых стандартов ITU-T и ISO/IEC. Представленный в 2013 году H.265/HEVC (High Efficiency Video Coding) — это новейший стандарт видеокодека от ISO/IEC и ITU-T, обеспечивающий максимальное сжатие и минимальную потерю данных. Технология HEVC/H.265 помогает поставщикам облачных видеосервисов предоставлять высококачественное видео с меньшей пропускной способностью, а также поддерживает видеосервисы сверхвысокого разрешения 4k (4096×2160) и 8k (7680×4320).

Вычислительная сложность кодека H.265/HEVC более чем в 4 раза выше, чем у предыдущего H.264/MPEG, что предъявляет беспрецедентные требования к возможностям обработки видео серверной платформы, и оказывается, что технология векторизации SIMD x86 Может значительно улучшить производительность кодирования HEVC.

Как показано на рисунке 6, инструкции SIMD (SSE/AVX2) были интегрированы в исходный код H.265/HEVC. Однако AVX-512 не был включен. Далее мы возьмем DCT (дискретное косинусное преобразование) в качестве примера, чтобы проиллюстрировать, как использовать набор инструкций AVX-512 для ускорения приложений обработки видео HEVC, включая 4x4, 8x8, 16x16 (восьмая-горячая функция) и 32x32 (четвертая-горячая функция). горячая функция).

Чтобы найти исходный код DCT, мы сначала устанавливаем «--disable asm» в конфигурации x265 ccmake, а затем используем VTune для просмотра исходного кода. Исходный код dct32 показан на рисунке 7.

Давайте сначала покажем, как использовать SIMD для базовых блочных вычислений 4*4 на новой платформе Intel Xeon, а затем поговорим о том, как использовать AVX-512 для дальнейшего ускорения вычислений.

На рис. 8 показаны основные концепции dct4. Мы видим, что основной операцией в dct4 является матричное произведение. Таким образом, мы можем загрузить все 128-битные данные (то есть 4x 32-битных целых числа в каждом черном ящике) в mm128i и выполнить над ними SIMD-операции, такие как _mm_mullo_epi32, _mm_add_epi32 и _mm_srai_epi32. В отличие от оптимизации SATD в x264, AVX2 и AVX-512 могут еще больше ускорить dct4 за счет уменьшения количества циклов. В частности, AVX2 может уменьшить количество циклов с 4x до 2x и загружать каждые 2x8x32 бита = 256 бит данных в m256i, в то время как AVX-512 может дополнительно уменьшать количество циклов до 1x и загружать каждые 4x8x32 бита = 512-битные данные. загружается в __m512i. Вычисления блоков 8x8, 16x16 и 32x32 также можно оптимизировать, используя подход, аналогичный приведенному выше примеру 4x4, где SSE сначала ускоряет матричное произведение внутри цикла, а AVX2 и AVX-512 можно дополнительно ускорить за счет уменьшения количества циклов. .

Чтобы проверить производительность реализации SIMD, мы используем rand()%40 — rand()%40 для случайной генерации элементов в исходной матрице. Результаты испытаний представлены в таблице 3.

Из таблицы 3 видно, что для наборов данных 4x4/8x8/32x32/ код AVX-512 является наиболее эффективным выбором, способным обеспечить повышение производительности на 44,46%, 70,45% и 37,60% по сравнению с исходным кодом соответственно. Теоретически AVX-512 должен быть наиболее эффективным выбором во всех случаях, включая dct4, dct8, dct16 и dct32.

Однако операции инициализации, такие как _mm512_set_epi32, занимают довольно много времени, поэтому некоторые преимущества сводятся на нет. В dct16 SSE может использовать постоянные операции инициализации (такие как _mm_set1_epi32) и достигать наилучшей производительности, на 43,50% быстрее, чем исходный код. Приложения для обработки изображений Чтобы оптимизировать производительность платформы x86 и облегчить клиентам использование и развертывание передовых технологий архитектуры Intel, корпорация Intel разработала полный набор высокопроизводительных библиотек для клиентских и серверных платформ и различных доменов, таких как инструмент анализа производительности системы Vtune, компилятор Intel icc, математическая основная библиотека MKL, кластерный анализ, комплект для разработки графики и изображений MediaSDK, инструменты многопоточного программирования TBB и так далее.

IPP разработала оптимальные решения для оптимального параллелизма на уровне потоков и реализаций векторизации для следующих приложений и алгоритмов:

  1. Обработка изображений, видео и аудио

  2. передача данных

  3. Сжатие и шифрование данных

  4. обработка сигналов и т.д.

GraphicsMagick — это широко используемая библиотека обработки изображений, которая широко используется во многих приложениях облачной обработки. Чтобы лучше поддерживать существующие приложения для обработки изображений, IPP2018 реализовал множество подключаемых модулей и исправлений для повышения производительности в ряде функций от библиотеки IPP до GraphicsMagick API, чтобы добиться повышения производительности с минимальным ручным вмешательством, таким образом Оптимизация различных функций обработки изображений, таких как resizeImage, scaleImage, GaussianBlurImage, flipImage и flopImage. Здесь мы берем масштабирование изображения в качестве примера для оценки производительности технологии IA SIMD, особенно вклада векторизованного набора инструкций AVX-512 на новой платформе Xeon.

Рисунок 9 — результат оптимизации исходной функции GraphicsMagick с использованием API масштабирования изображений IPP. Поскольку библиотека IPP реализовала и интегрировала множество SIMD-инструкций, она добилась ускорения производительности более чем в 4 раза в приложениях масштабирования этих 5 стандартных изображений, а производительность AVX-512 также более чем на 20% выше, чем у AVX-512. что AVX2.

Приложения глубокого обучения для видео и изображений

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

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

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

Для многомерной и высокопараллельной обработки видео и изображений, таких типичных ресурсоемких приложений, извлечение и анализ видеоданных потребляет много вычислительных ресурсов, в то время как векторизованные SIMD-инструкции x86 могут значительно повысить производительность вычислений и эффективность выполнения программ.

Intel разработала набор высокопроизводительных библиотек для оптимизации производительности приложений глубокого обучения. Библиотека Intel Math Library (Intel MKL) используется для ускорения математических функций для таких приложений, как машинное обучение, наука, инженерные финансы и проектирование, таких как плотная и разреженная линейная алгебра (BLAS: основные подпрограммы линейной алгебры, LAPACK: линейная алгебра, PARDISO: решение разреженных матриц), БПФ, векторная математика, сводная статистика, глубокие нейронные сети и многое другое. Эти традиционные программы глубокого обучения обеспечивают максимальную производительность процессора благодаря оптимальной многопоточности и SIMD-векторизации.

На примере программы подсчета очков и обучения caffe, как показано на рисунке ниже, инструкции Intel AVX2/AVX-512 ускоряют процесс подсчета очков в 2–9 раз и процесс обучения в 2–4 раза, в то время как используются инструкции AVX-512. в новой версии Intel. Производительность, предлагаемая на платформах Xeon, на 10-40% выше, чем у AVX2.


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

В этой презентации подробно рассказывается о новой технологии AVX-512 и наборе инструкций для новой платформы Intel Xeon, а также демонстрируется, как ее можно использовать для оптимизации мультимедийных облачных приложений. С постоянным появлением новых бизнес-моделей и моделей использования, а также постоянным обновлением интеллектуальной платформы IA высокопроизводительные и высоконадежные технологии, несомненно, принесут больше преимуществ все большему количеству приложений для обработки мультимедиа.

Сессия вопросов и ответов

Q1: Будет ли улучшение AVX-512 по сравнению с AVX2 иметь какое-либо интуитивное влияние на пользовательском уровне?

A1: Г-н Лу Ян: Как упоминалось в статье, улучшение AVX-512 по сравнению с AVX2 заключается в эффективности выполнения программы.Интуитивное ощущение заключается в сокращении времени выполнения программы и повышении пропускной способности.

Q2: Оптимизирован ли исходный код caffe с открытым исходным кодом AVX512? Как разработчики могут использовать его эффективно?

A2: Г-н Лу Ян: кафе, оптимизированное для Intel, имеет открытый исходный код, вы можете обратиться к клону git.

https://github.com/intel/caffe.git

На самом деле Intel оптимизировала многие проекты DL/ML с открытым исходным кодом, о чем можно узнать на сайте software.intel.com.

Q3: MKL, IPP теперь бесплатны? Это все еще с открытым исходным кодом?

A3: Г-н Лу Ян: IPP можно загрузить с https://software.intel.com/en-us/intel-ipp.

Адрес загрузки MKL: https://software.intel.com/en-us/mkl. Его можно загрузить бесплатно, кодовая часть не вся с открытым исходным кодом.

Q4: Инструкции AVX-512, упомянутые в совместном использовании, обеспечивают на 10–40 % более высокую производительность, чем AVX2, на новой платформе Intel Xeon В чем основная причина такого улучшения?

A4: Г-н Лу Ян: Улучшение AVX512 по сравнению с AVX2 заключается в том, что разрядность векторного регистра удвоена.

Вопрос 5. Как в глубоком обучении должны сочетаться аппаратное и программное обеспечение и какова роль аппаратного обеспечения?

A5: Г-н Гао Мин из Intel: Модернизация чипов и модернизация сети в первую очередь зависят от спроса.Какая рабочая нагрузка требует Gigabit, 10 Gigabit, 25G или 100 Gigabit, и требуется ли RDMA, это должно быть ясно. Вычислительная мощность чипа должна соответствовать соответствующей производительности сети.Кроме того, оптимизация сети также очень важна.Использование DPDK может значительно улучшить вычислительную мощность ЦП в сети и снизить затраты. Конечно, только использование DPDK требует инвестиций в соответствующие технические возможности, что увеличивает трудозатраты и требует всесторонней оценки для достижения оптимальной совокупной стоимости владения.

Преподаватель Intel Лу Ян: На ​​самом деле, будь то глубокое обучение или другие интернет-приложения, наилучшая производительность может быть достигнута только путем обновления программного и аппаратного обеспечения. Обновите аппаратную архитектуру, чтобы получить более мощный ЦП и более новые улучшения микроархитектуры, включая частоту ЦП, количество ядер, архитектуру регистров, обновление кэш-линии, обновление памяти и сети и т. д. Роль программного обеспечения состоит в том, чтобы ощущать и активировать эти новые возможности, иначе нельзя будет использовать все преимущества и технологии аппаратной платформы.