Научная статья на тему 'ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНАЯ ОБРАБОТКА ВИДЕОИНФОРМАЦИИ В МНОГОПРОЦЕССОРНЫХ ГЕТЕРОГЕННЫХ СИСТЕМАХ НА КРИСТАЛЛЕ'

ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНАЯ ОБРАБОТКА ВИДЕОИНФОРМАЦИИ В МНОГОПРОЦЕССОРНЫХ ГЕТЕРОГЕННЫХ СИСТЕМАХ НА КРИСТАЛЛЕ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
101
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМЫ НА КРИСТАЛЛЕ / ОБРАБОТКА ВИДЕОИНФОРМАЦИИ / ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ / ПРОБЛЕМНО ОРИЕНТИРОВАННЫЕ ЯДРА / ГЕТЕРОГЕННЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ / ПРОЦЕССОР 1892ВМ248

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Янакова Елена Сергеевна, Мачарадзе Георгий Тамазьевич, Гагарина Лариса Геннадьевна, Швачко Артем Андреевич

Переход от гомогенных архитектур к гетерогенным позволяет добиться преимущества в производительности, размере, весе и потребляемой мощности, что особенно важно для встраиваемых решений. Однако разработка параллельного программного обеспечения для гетерогенных вычислительных систем - достаточно сложная задача ввиду требований высокой производительности, легкой программируемости и масштабируемости. В работе исследована эффективность параллельно-конвейерной обработки видеоинформации в многопроцессорных гетерогенных системах на кристалле (СнК). Описана математическая модель используемых структур, сформулированы критерии достижения эффективной обработки видеоданных, на основе которых построена целевая функция. Приведена типовая схема параллельно-конвейерной обработки видеоданных с использованием различных ускорителей поточной обработки видеоинформации (DSP, GPU, ISP, VDP, VPU и др.). Разработана схема параллельно-конвейерной обработки видеоданных на гетерогенной СнК 1892ВМ248. Предложена методика эффективной параллельно-конвейерной обработки видеоинформации в гетерогенных вычислительных СнК, включая стек программного обеспечения, состоящий из уровня операционной системы, уровня технологий программирования и уровня приложений. Проведен сравнительный анализ наиболее распространенных технологий программирования гетерогенных СнК, таких как OpenCL, OpenMP, MPI, OpenAMP. Результаты анализа показали, что в зависимости от назначения конечного устройства следует применять две парадигмы программирования: на основе технологии OpenCL (для встраиваемых систем) и технологию MPI (для межъядерного и межпроцессорного взаимодействий). Полученные результаты параллельно-конвейерной обработки в рамках задачи распознавания лиц подтвердили эффективность выбранных решений.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Янакова Елена Сергеевна, Мачарадзе Георгий Тамазьевич, Гагарина Лариса Геннадьевна, Швачко Артем Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PARALLEL-PIPELINED VIDEO PROCESSING IN MULTICORE HETEROGENEOUS SYSTEMS ON CHIP

A turn from homogeneous to heterogeneous architectures permits to achieve the advantages of the efficiency, size, weight and power consumption, which is especially important for the built-in solutions. However, the development of the parallel software for heterogeneous computer systems is rather complex task due to the requirements of high efficiency, easy programming and the process of scaling. In the paper the efficiency of parallel-pipelined processing of video information in multiprocessor heterogeneous systems on a chip (SoC) such as DSP, GPU, ISP, VDP, VPU and others, has been investigated. A typical scheme of parallel-pipelined processing of video data using various accelerators has been presented. The scheme of the parallel-pipelined video data on heterogeneous SoC 1892VM248 has been developed. The methods of efficient parallel-pipelined processing of video data in heterogeneous computers (SoC), consisting of the operating system level, programming technologies level and the application level, have been proposed. A comparative analysis of the most common programming technologies, such as OpenCL, OpenMP, MPI, OpenAMP, has been performed. The analysis has shown that depending on the device finite purpose two programming paradigms should be applied: based on OpenCL technology (for built-in system) and MPI technology (for inter-cell and inter processor interaction). The results obtained of the parallel-pipelined processing within the framework of the face recognition have confirmed the effectiveness of the chosen solutions.

Текст научной работы на тему «ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНАЯ ОБРАБОТКА ВИДЕОИНФОРМАЦИИ В МНОГОПРОЦЕССОРНЫХ ГЕТЕРОГЕННЫХ СИСТЕМАХ НА КРИСТАЛЛЕ»

ИНФОРМАЦИОННО-КОММУНИКАЦИОННЫЕ

ТЕХНОЛОГИИ INFORMATION-COMMUNICATION TECHNOLOGIES

УДК: 004.02 DOI: 10.24151/1561-5405-2021-26-2-172-183

Параллельно-конвейерная обработка видеоинформации в многопроцессорных гетерогенных системах на кристалле

1 2 3 1 3

Е.С. Янакова , Г.Т. Мачарадзе ' , Л.Г. Гагарина , А.А. Швачко

1 Национальный исследовательский университет «МИЭТ», г. Москва,

Россия

2

Национальный исследовательский университет «МЭИ», г. Москва, Россия

3АО НПЦ «ЭЛВИС», г. Москва, Россия gagar@bk.ru

Переход от гомогенных архитектур к гетерогенным позволяет добиться преимущества в производительности, размере, весе и потребляемой мощности, что особенно важно для встраиваемых решений. Однако разработка параллельного программного обеспечения для гетерогенных вычислительных систем - достаточно сложная задача ввиду требований высокой производительности, легкой программируемости и масштабируемости. В работе исследована эффективность параллельно-конвейерной обработки видеоинформации в многопроцессорных гетерогенных системах на кристалле (СнК). Описана математическая модель используемых структур, сформулированы критерии достижения эффективной обработки видеоданных, на основе которых построена целевая функция. Приведена типовая схема параллельно-конвейерной обработки видеоданных с использованием различных ускорителей поточной обработки видеоинформации (DSP, GPU, ISP, VDP, VPU и др.). Разработана схема параллельно-конвейерной обработки видеоданных на гетерогенной СнК 1892ВМ248. Предложена методика эффективной параллельно-конвейерной обработки видеоинформации в гетерогенных вычислительных СнК, включая стек программного обеспечения, состоящий из уровня операционной системы, уровня технологий программирования и уровня приложений. Проведен сравнительный анализ наиболее распространенных технологий программирования гетерогенных СнК, таких как OpenCL, OpenMP, MPI, OpenAMP. Результаты анализа показали, что в зависимости от назначения конечного устройства следует применять две парадигмы программирования: на основе технологии OpenCL (для встраиваемых систем) и технологию MPI (для межъядерного и межпроцессорного взаимодействий). Полученные результаты параллельно-конвейерной обработки в рамках задачи распознавания лиц подтвердили эффективность выбранных решений.

© Е.С. Янакова, Г.Т. Мачарадзе, Л.Г. Гагарина, А.А. Швачко, 2021

Ключевые слова: системы на кристалле; обработка видеоинформации; технологии программирования; проблемно ориентированные ядра; гетерогенные вычислительные системы; процессор 1892ВМ248

Для цитирования: Янакова Е.С., Мачарадзе Г.Т., Гагарина Л.Г., Швачко А.А. Параллельно-конвейерная обработка видеоинформации в многопроцессорных гетерогенных системах на кристалле // Изв. вузов. Электроника. 2021. Т. 26. № 2. С. 172-183. DOI: 10.24151/1561-5405-2021-26-2-172-183

Parallel-Pipelined Video Processing in Multicore Heterogeneous Systems on Chip

1 2 3 * 1 3

E.S. Yanakova , G.T. Macharadze ' , L.G. Gagarina , A.A. Shvachko

1National Research University of Electronic Technology, Moscow, Russia 2National Research University «MPEI», Moscow, Russia 3JSC SPC «ELVEES», Moscow, Russia

gagar@bk.ru

Abstract: A turn from homogeneous to heterogeneous architectures permits to achieve the advantages of the efficiency, size, weight and power consumption, which is especially important for the built-in solutions. However, the development of the parallel software for heterogeneous computer systems is rather complex task due to the requirements of high efficiency, easy programming and the process of scaling. In the paper the efficiency of parallel-pipelined processing of video information in multiprocessor heterogeneous systems on a chip (SoC) such as DSP, GPU, ISP, VDP, VPU and others, has been investigated. A typical scheme of parallel-pipelined processing of video data using various accelerators has been presented. The scheme of the parallel-pipelined video data on heterogeneous SoC 1892VM248 has been developed. The methods of efficient parallel-pipelined processing of video data in heterogeneous computers (SoC), consisting of the operating system level, programming technologies level and the application level, have been proposed. A comparative analysis of the most common programming technologies, such as OpenCL, OpenMP, MPI, OpenAMP, has been performed. The analysis has shown that depending on the device finite purpose two programming paradigms should be applied: based on OpenCL technology (for built-in system) and MPI technology (for inter-cell and inter processor interaction). The results obtained of the parallel-pipelined processing within the framework of the face recognition have confirmed the effectiveness of the chosen solutions.

Keywords: systems on chip; video processing; programming tools; application-specific cores; heterogeneous systems; processor 1892VM248

For citation: Yanakova E.S., Macharadze G.T., Gagarina L.G., Shvachko A.A. Parallel-pipelined video processing in multicore heterogeneous systems on chip. Proc. Univ. Electronics, 2021, vol. 26, no. 2, pp. 172-183. DOI: 10.24151/1561-5405-2021-26-2-172-183

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

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

Обработка видеоданных по сравнению с другими видами сигнальной обработки имеет особенности [1], влияющие на характеристики аппаратно-программных платформ:

- частота поступления задач 30 (или 60) раз в секунду, определяющая максимально допустимое время обработки 33 мс (или 16 мс соответственно);

- огромный поток входной информации и сложность алгоритмов видеообработки налагает ограничения на производительность вычислительной системы;

- высокоинтенсивное развитие алгоритмов обработки видеоданных с развитием алгоритмов машинного обучения.

Цель настоящей работы - анализ и разработка методики эффективной параллельно-конвейерной обработки видеоинформации в гетерогенных вычислительных системах на кристалле (СнК).

Формализация задачи обработки видеоинформации в гетерогенных СнК. Для

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

Гетерогенная вычислительная система описывается выражением

S = Кс, Sk , Sp , Sy },

где £в.с - вычислительная подсистема СнК, представляющая собой процессорные ядра (вычислительные узлы); Sk - среда взаимодействия; Sp - протоколы передачи данных и интерфейсы взаимодействия между вычислительными узлами СнК в процессе обработки задач; Sy - система управления СнК.

Вычислительные узлы СнК представляют собой множество Р = {Р1,...,Рп} и могут

являться процессорами общего назначения, процессорами специального назначения (например, цифровыми сигнальными процессорами), сопроцессорами, ускоряющими логику, - интегральными схемами специального назначения или программируемыми логическими интегральными схемами. Средой взаимодействия S для гетерогенных СнК с архитектурой NUMA (Non-Uniform Memory Architecture, неоднородная архитектура памяти) является общая память. В качестве интерфейсов взаимодействия рассматриваются библиотеки, реализующие схему работы с общей памятью, например ShMem, или стандарты, например MPI. Входной поток задач определяется как множество

/ = {/1з...,/п}задач (процессов), подлежащих исполнению на СнК с заданным набором ресурсов. Каждая задача из потока задач I е I описывается выражением I = {SI, /, R}. Здесь S - источник задачи; t - момент времени поступления задачи в систему; R - ре-

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

Задача параллельно-конвейерной обработки видеоинформации в многопроцессорных гетерогенных СнК заключается в формировании совокупности программно-аппаратных решений и методики управления ресурсами СнК при реализации конвейера

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

В качестве критериев эффективности обработки видеоинформации используются такие показатели, как минимум среднего времени обработки задания 4; минимум среднего времени на запуск задания 4ап; минимум среднего времени на синхронизацию многопоточных процессов 4инх.

Специфика задач обработки видеоинформации налагает ряд ограничений: суммарное время обработки задания, включая затраты на запуск и синхронизацию, не должно превышать 33 мс в случае, если частота поступления кадров равна 30 кадр/с, и 16 мс при частоте 60 кадр/с. Предположим, что накладные расходы на запуск заданий не должны быть более 3 % от суммарного времени, а накладные расходы на синхронизацию - 1 % от суммарного времени. Исходя из этого, целевая функция определяется следующими условиями:

T(t3, t^, ¿синх ) ^ min,

Гээ мс при Ff = 30 кадр/c,

T <\ 7

116 мс при F = 60 кадр/c, (1)

tсинх < 0,01 T,

t < 0,03 T.

зап

Таким образом, разработка методики организации параллельно-конвейерной обработки видеоинформации сводится к решению следующих задач:

- анализ способов использования проблемно ориентированных ядер для решения поставленной задачи;

- анализ существующих программных моделей для вычислительных систем и их адаптация на гетерогенные СнК;

- анализ и разработка алгоритмов синхронизации многопоточных процессов;

- анализ производительности на примере системы распознавания лиц.

Применение проблемно ориентированных ядер для решения задач видеообработки. Последовательность обработки видеоинформации зависит от источника исходных данных и приемника обработанной информации. Типовая схема процесса обработки видеоинформации состоит из трех этапов (рис.1).

На первом этапе при приеме видеокадров по сети Ethernet или из памяти проводится их декодирование с помощью видеокодека [2]. Если источником видеоинформации является камера, то выполняется предобработка данных с целью коррекции шума и дефектных пикселей, подстройки яркости, контрастности и т.д. На втором этапе осуществляется аналитическая обработка видеокадра для выделения объектов или признаков на кадре (например, распознавание лиц, прогнозирование событий). На третьем этапе выполняется кодирование кадра, вывод результатов обработки на экран или анализ результатов в системах более высокого уровня. Перечисленные этапы могут выполняться

-> Ethernet

-> Память

+ Ethernet/ Память

■* Дисплей

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

В настоящее время для обработки видеоинформации существует множество специализированных ускорителей, среди которых можно выделить цифровые сигнальные процессоры (DSP), графические процессоры (GPU), процессоры обработки изображений (ISP), процессоры обработки видео (VPU), процессоры видеодисплеев (VDP) и др.

В качестве целевой платформы выбрана СнК серии «Мультикор» (процессор 1892ВМ248), разрабатываемая российской компанией АО НПЦ «ЭЛВИС» [3]. Гетерогенный процессор 1892ВМ248 предназначен для решения задач компьютерного зрения, в состав которого входят вычислительные узлы, приведенные в табл. 1. Все устройства в рамках процессора 1892ВМ248 объединены высокопроизводительной сетью на кристалле NoC (Network оп Chip) и имеют общую память в качестве разделяемого ресурса.

Таблица 1

Вычислительные узлы процессора 1892ВМ248

Table 1

Computing nodes of 1892VM248 processor

Вычислительный Краткое описание

узел

CPU Центральный процессор MIPS64r6 I6500, 8 ядер

DSP Кластер VELcore3 из 16 сигнальных процессоров ELcore-50, 4 TFlops fp32

GPU Графический процессор PowerVR Dutton, 600 GFlops fp32

ISP Процессор обработки изображений PowerVR Felix, 4K@60 FPS

Encoder/Decoder 16 потоков 1080p@60 FPS; кодирование HEVC, H.264; декодирование HEVC, H.264, VP8, VP9, MPEG4, MPEG2

Pixel Display Pipeline (PDP) Процессор вывода кадров на дисплей Chimera, 4K@60 FPS

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

Трети и этап

Рис.1. Типовая схема процесса обработки видеоинформации Fig. 1. Typical diagram of the video information processing

Организация параллельно-конвейерной обработки видеоинформации. Для

эффективной реализации конвейерной обработки видеоинформации в процессоре 1892ВМ248 разработана многоуровневая иерархия программных средств (рис.2).

Рис. 2. Стек программного обеспечения Fig.2. Software stack

ОС отвечает за взаимодействие с аппаратным обеспечением процессора 1892ВМ248. Драйверы, являясь частью ОС, реализуют механизм постановки вычислительных задач на процессорные ядра и предоставляют программный интерфейс (API, Application Programming Interface) высокоуровневому ПО. Драйверы реализуют механизм dmabuf [4] во избежание дополнительных копирований данных между различными подсистемами.

Предложена двухуровневая модель программирования с использованием стандартных технологий. Низкоуровневые технологии обеспечивают высокий уровень производительности СнК, но требуют более высокого уровня компетенций разработчика ПО. Высокоуровневые средства имеют высокую гибкость при программировании, что негативно сказывается на производительности. Критериями для сравнительного анализа технологий программирования с целью организации параллельно-конвейерной обработки видеоинформации являются: поддержка крупноблочных, блочных и мелкозернистых алгоритмов; поддержка единого виртуального адресного пространства; наличие механизма управления памятью; универсальность технологии для различных конфигураций СнК; возможность быстрого запуска существующего ПО. В рамках сравнительного анализа рассматриваются технологии OpenMP, MPI, OpenCL и OpenAMP.

OpenMP [5] (Open Multi-Processing) - стандарт директивного программирования для систем с общей памятью. Поддерживает параллелизм на уровне как задач, так и данных, что позволяет реализовывать блочные и мелкозернистые алгоритмы. В стандарте отсутствуют явные механизмы управления памятью.

MPI [6] (Message Passing Interface) - стандарт, описывающий межпроцессное взаимодействие путем отправки сообщений в рамках многопроцессорной системы. Отсутствуют механизмы управления памятью и поддержка единого виртуального адресного пространства. Стандарт не поддерживает параллелизм на уровне данных, поэтому возможна реализация только блочных алгоритмов.

OpenCL [7] (Open Computing Language) - стандарт для гетерогенных вычислений. Поддерживает параллелизм уровня задач и данных, явные механизмы управления памятью и единое адресное пространство, что делает процесс разработки параллельных приложений более гибким, но при этом он существенно усложняется. Универсальность достигается за счет унификации различного класса устройств.

OpenAMP [8] (Open Asymmetric Multi-Processing) - новый стандарт для асимметричных многопроцессорных систем. Он определяет master- и remote-устройства. Устройство master (управляющий процессор асимметричной системы) должен работать под управлением ОС Linux, remote - либо под управлением ОС FreeRTOS, либо без ОС (bare metal). Взаимодействие между master- и remote-устройствами осуществляется с помощью протоколов virtIO и rpmsg. Управление процессами происходит через протокол remoteproc. Стандарт поддерживает параллелизм только на уровне задач, реализация мелкозернистых алгоритмов невозможна. Отсутствуют явные механизмы управления памятью. Стандарт предъявляет ряд требований к аппаратному обеспечению, а именно наличие когерентности памяти, поддержка виртуализации и т.д.

Программирование нескольких вычислительных ядер с моделью общей памяти сводится к синтезу технологий: MPI + OpenCL, OpenMP + OpenCL и OpenCL + OpenMP + MPI. Параллельная обработка в СнК обеспечивается на уровне ядер по MIMD-типу, конвейерная - за счет алгоритмического обеспечения, межпроцессорное взаимодействие строится на уровне MPI-сообщений, включая межпроцессное взаимодействие.

Таким образом, параллельно-конвейерная обработка видеоинформации заключается в следующем:

- определяется назначение системы: встраиваемое решение, сервер для вычисления в составе кластера;

- для встраиваемых решений применяется технология OpenCL-парадигма. CPU-ядра взаимодействуют с вычислительными ядрами (GPU, DSP) с помощью интерфейса OpenCL. Для серверных решений применяется MPI-парадигма для межъядерного и межпроцессорного взаимодействия;

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

- барьерная синхронизация между вычислительными ядрами выполняется аппаратными средствами, доступ к разделяемым ресурсам (память, порты ввода-вывода) -программно-аппаратными средствами, такими как атомарные операции и спин-блокировка, обеспечивающими высокую скорость работы [9].

Разработанная программная модель, а также стек ПО приняты к реализации в процессоре 1892ВМ248.

Результаты и их обсуждения. Экспериментальное исследование проведено на процессоре 1892ВМ248 при решении задачи распознавания лиц. В качестве вычислительных узлов SBx использовались четыре DSP-ядра ELcore-50, объединенные в кластер Quelcore, и восьмиядерный CPU MIPS64r6 I6500. Коммуникационная сеть Sk представлена высокопроизводительной сетью на кристалле NoC, которая объединяет все вычислительные узлы S^. Передача данных между вычислительными узлами Sf, выполнялась через общую память и аппаратный блок отправки сообщений. Система на основе процессора 1892ВМ248 является асимметричной, поэтому в качестве системы управления Sy выступает центральный процессор MIPS64r6 из S^.

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

Рис. 3. Схема распознавания лиц Fig.3. Face recognition scheme

Запуск заданий на DSP-ядрах осуществляется с использованием стандарта OpenCL на CPU-ядрах, который реализован поверх драйвера DSP в ОС Linux. Четыре DSP-ядра запускаются одновременно, синхронизация потоков выполняется через примитивы синхронизации. Время (мкс) запуска задания следующее:

Обработка аргументов и ELF-секций задания..........................16,7

Настройка виртуального адресного пространства......................15

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Загрузка программы в память...................................................<< 1

Настройка регистров и запуск DSP..........................................<< 1

Результаты профилирования драйвера показали, что общее время запуска 4ап задания не превышает 32 и 128 мкс для одного и четырех DSP-ядер соответственно. Это мало по сравнению с максимальной задержкой, отводимой заданию (33 мс для 30 кадр/с и 16,7 мс для 60 кадр/с).

Алгоритмы распознавания лиц оптимизированы c использованием векторных и VLIW-инструкций DSP, производительность которых приведена в табл.2.

Таблица 2

Производительность задачи распознавания лиц* на DSP-ядре процессора 1892ВМ248

Table 2

Performance of face recognition job* on the DSP-core of the 1892VM248 processor

Алгоритм Тип алгоритма Производительность

на 1*DSP, кадр/с

Детектирование лица Дерево решений 278

Подтверждение наличия лица 33 210

Определение черт лица для идентификации и верификации Нейронная сеть 168

Анализ эмоций 4232

Анализ возраста Нейронная сеть 2001

Анализ пола 4022

*Размер кадра составляет 256*384 пикселей. *Frame dimension is 256*384 pixels.

При использовании статической диспетчеризации задач в зависимости от правил балансировки обрабатывались видеокадры с двух и четырех телекамер с периодом получения результирующей информации 5 и 10 с соответственно. Временные диаграммы обработки представлены на рис.4.

Рис.4. Параллельная обработка четырех потоков видеокадров (а) и параллельно-конвейерная

обработка двух потоков видеокадров (б) Fig.4. Parallel processing of four streams of video frames (a) and parallel-pipeline processing

of two streams of video frames (b)

Время обработки одного видеокадра tp определяется выражениями для четырех и двух потоков соответственно:

tp = td + tc +1 + tf = 3,59 мс + 0,03 мс + 5,95 мс + 0,98 мс «10,6 мс, t = td + tc +1 = 3,59 мс + 0,03 мс + 5,95 мс «9,6мс,

где t - время детектирования лица; t - время подтверждения наличия лица; t - время идентификации и верификации лица; t - время анализа характеристик лица (эмоций, возраста, пола).

При параллельно-конвейерной обработке двух потоков видеокадров (см. рис.4,б) время, затраченное на получение характеристик лица, нивелируется и не учитывается в расчете. Период получения информации T для четырех и двух потоков равен соответ-

ственно 10,6 и 5,95 мс. Разная стратегия балансировки задач позволяет адаптировать системы под разные назначения с разным периодом получения информации.

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

КР = =--« 0,998(99,8%);

Р Т + ^ 10,6 мс + 0,023 мс

в случае двух потоков - выражениями

^ Р К, + К + ^ 3 59 мс _____ мс , О 98 мс

Крр = ^Р°-Р2 = * с 7 = 3—^ , с ,-с« 0,788(78,8%),

tp, p _td + tç + tf 3,59 мс + 0,03 мс + 0,98 мс T +1^ ~ T + t3an 5 , 95 мс + 0,023 мс

tp P t 5 ,95 мс

Крр = pp =-— =-2-« 0,996(99,6%),

T +1 T +1 5 ,95 мс + 0,023 мс

где -зап - накладные временные задержки, связанные с запуском задач.

Время обработки кадра соответствует заявленным требованиям в выражении (1): Т = 1 + * + * » 9,6 мс + 0,023 мс + 0,01 мс = 9,633мс < 16 мс.

з зап синх ^ ^ ^ '

Доля накладных расходов на запуск заданий не превышает 3 %:

-зап = 0,023 мс = 0,0024 (0,24 % < 3 %). Т 9,633 мс

Доля накладных расходов на синхронизацию потоков менее 1 % от Т.

I 0,01 мс

синх

T 9,633 мс

= 0,001(0,1% < 1%).

Сравнение полученных результатов с мировыми аналогами выполнено на основе анализа производительности нейросетевых алгоритмов (табл.3) и каскадных алгоритмов детектирования лиц. Алгоритм детектирования лиц основан на бинарном дереве решений, вероятность правильного детектирования лиц соответствует 96 % на базе данных FaceScrub [10]. На кадрах c разрешением FullHD достигается производительность 162 и 164 кадр/с на процессорах 1892ВМ248 и Intel XEON GOLD 6140 [11] соответственно.

Таблица 3

Производительность процессоров на нейросетевых алгоритмах, кадр/с

Table 3

Performance of processors on neural network algorithms, files per seconds

Нейросетевой NVIDIA Tesla V100 1892ВМ248, 2 x Intel Platinum

алгоритм 16 x ELcore-50

GoogleNet 5140 942 814

REsNet-50 3308 275 226

VGG-16 2044 109 150

Высокие количественные результаты соответствуют мировому уровню изделий подобного класса и показывают эффективность параллельно-конвейерной обработки видеоинформации на гетерогенной СнК и применимость разработанной методики диспетчеризации задач со статической балансировкой. Задержки драйвера, полученные при практической реализации, незначительны (менее 1 %).

Таким образом, технология OpenCL обеспечивает эффективную конвейерную обработку видеоинформации на основе крупноблочных алгоритмов с параллелизмом по MIMD-типу на гетерогенных серверных процессорах 1892ВМ248. Технология MPI или взаимодействие на основе других сетевых протоколов обеспечивает межпроцессорное взаимодействие.

Заключение. Исследование особенностей задач обработки видеоинформации и использование перспективных аппаратных ускорителей обеспечили эффективную параллельно-конвейерную обработку. Гетерогенные СнК результативно справляются с потоковыми задачами видеообработки.

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

Экспериментальное исследование с использованием российского процессора 1892ВМ248 подтвердило высокую эффективность потоковой параллельно-конвейерной обработки видеоинформации на примере задачи распознавания лиц с параллелизмом по MIMD-типу.

Литература

1. Эволюция многоядерных гетерогенных вычислительных систем в области обработки видеоданных / А.А. Беляев, С.В. Гаврилов, Д.А. Кузнецов и др. // V Всерос. науч.-техн. конф. «Проблемы разработки перспективных микро- и наноэлектронных систем - 2014 (МЭС-2014)»: сб. тр. Ч. IV. / под общ. ред. А.Л. Стемпковского. М.: ИППМ РАН, 2014. С. 129-134.

2. Comprehensive video codec comparison / T. Laude, Y.G. Adhisantoso, J. Voges et al. // APSIPA Transactions on Signal and Information Processing. 2019. Vol. 8. e30. DOI: 10.1017/ATSIP.2019.23

3. Официальный сайт АО НПЦ «ЭЛВИС». URL: https://multicore.ru (дата обращения: 19.07.2020).

4. Buffer Sharing and Synchronization. URL: https://www.kernel.org/doc/html/v4.16/driver-api/dma-buf.html (дата обращения: 19.07.2020).

5. OpenMP. URL: https://www.openmp.org/ (дата обращения: 19.07.2020).

6. MPI. URL: https://computing.llnl.gov/tutorials/mpi/ (дата обращения: 19.07.2020).

7. OpenCL. Официальный сайт Khronos group. URL: https://www.khronos.org/opencl/ (дата обращения: 19.07.2020).

8. OpenAMP. URL: https://www.openampproject.org/ (дата обращения: 19.07.2020).

9. Янакова Е.С., Мачарадзе Г.Т., Костулин Н.В., Тюрин А.А. Решение больших СЛАУ на гетерогенных СнК серии «Мультикор» // Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС). 2020. № 1. С. 70-75. DOI: 10.31114/2078-7707-2020-1-70-75

10. База данных лиц FaceScrub. URL: http://megaface.cs.washington.edu/results/facescrub.html (дата обращения: 19.07.2020).

11. Intel Xeon Gold 6140 Processor. Официальный сайт Intel. URL: https://www.intel.in/content/www/in/en/products/processors/xeon/scalable/gold-processors/gold-6140.html (дата обращения: 27.09.2020).

Поступила в редакцию 13.11.2020 г.; после доработки 13.11.2020 г.; принята к публикации 08.02.2021 г.

Янакова Елена Сергеевна - доктор технических наук, профессор Института системной и программной инженерии и информационных технологий Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), digitvesper@gmail.com

Мачарадзе Георгий Тамазьевич - аспирант кафедры вычислительных машин, систем и сетей Национального исследовательского университета «МЭИ» (Россия, 111250, г. Москва, Красноказарменная ул., 14), инженер-программист АО НПЦ

«ЭЛВИС» (Россия, 124498, г. Москва, г. Зеленоград, проезд 4922, 4/2), gmacharadze @elvees.com

Гагарина Лариса Геннадьевна - доктор технических наук, профессор, директор Института системной и программной инженерии и информационных технологий Национального исследовательского университета «МИЭТ» (Россия, 124498, г. Москва, г. Зеленоград, пл. Шокина, 1), gagar@bk.ru

Швачко Артем Андреевич - ведущий инженер-программист АО НПЦ «ЭЛВИС» (Россия, 124498, г. Москва, г. Зеленоград, проезд 4922, 4/2), ashvachko@elvees.com

References

1. Belyaev A.A., Gavrilov V.S., Kuznetsov D.A., Petrichkovich Ya.Ya., Solokhina T.V., Frolov D.S., Funkner A.A. Evolution in the area of multicore heterogeneous video data processing systems. Proceedings of the V All-Russian Scientific and Technical Conference «Problems of Advanced Micro- and Nanoelectronic Systems Development». Collection of works. Part IV. Ed. By A.L. Stempkovsky. Moscow, IPPM RAN Publ., 2014, pp. 129-134. (in Russian).

2. Laude T., Adhisantoso Y.G., Voges J., Munderloh M., Ostermann J.A. Comprehensive video codec comparison. APSIPA Transactions on Signal and Information Processing, 2019, vol. 8, e30. DOI: 10.1017/ATSIP.2019.23.

3. Official site of R&D Center ELVEES. Available at: https://multicore.ru (accessed: 19.07.2020).

4. Buffer sharing and synchronization. Available at: https://www.kernel.org/doc/html/v4.16/driver-api/dma-buf.html (accessed: 19.07.2020).

5. OpenMP. Available at: https://www.openmp.org/ (accessed: 19.07.2020).

6. MPI. Available at: https://computing.llnl.gov/tutorials/mpi/ (accessed: 19.07.2020).

7. OpenCL. Official site of Khronosgroup. Available at: https://www.khronos.org/opencl/ (accessed: 19.07.2020).

8. OpenAMP. Available at: https://www.openampproject.org/ (accessed: 19.07.2020).

9. Yanakova E.S., Macharadze G.T., Kostulin N.V., Tiurin A.A. Solving large SLE on heterogeneous SOC of «Multicore» series. Problemy razrabotki perspektivnykh mikro- i nanoelektronnykh system = Problems of Advanced Micro- and Nanoelectronic Systems Development, 2020, iss. 1, pp. 70-75. (In Russian). DOI: https://doi.org/10.31114/2078-7707-2020-1-70-75

10. MegaFace. FaceScrub Results. Available at: http://megaface.cs.washington.edu/results/facescrub.html (accessed: 19.07.2020).

11. Intel Xeon Gold 6140 Processor. Official site of Intel. Available at: https://www.intel.in/content/www/in/en/products/processors/xeon/scalable/gold-processors/gold-6140.html (accessed: 27.09.2020).

Received 13.11.2020; Revised 13.11.2020; Accepted 08.02.2021. Information about the authors:

Elena S. Yanakova - Dr. Sci. (Eng.), Prof. of Institute of Systems and Software Engineering and Information Technology, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), digitvesper@gmail.com

Georgij T. Macharadze - PhD student of the Computing Machines, Systems and Networks Department, National Research University «MPEI» (Russia, 111250, Moscow, Krasnokazarmennaya st., 14), Software-Engineer JSC SPC «ELVEES» (Russia, 124498, Moscow, Zelenograd, proezd 4922, 4/2), gmacharadze@elvees.com

Larisa G. Gagarina - Dr. Sci. (Eng.), Prof., Director of Institute of Systems and Software Engineering and Information Technology, National Research University of Electronic Technology (Russia, 124498, Moscow, Zelenograd, Shokin sq., 1), gagar@bk.ru

Artem A. Shvachko - Leading Software-Engineer, JSC SPC «ELVEES» (Russia, 124498, Moscow, Zelenograd, proezd 4922, 4/2), ashvachko@elvees.com

i Надоели баннеры? Вы всегда можете отключить рекламу.