Обработка видеоданных в системах специального назначения средствами вычислительной техники с ограниченными ресурсами
Бесплатный доступ
Рассматриваются особенности обработки видеоданных в среде вычислительной техники с ограниченными ресурсами. Для реализации параллельной многопоточной схемы обработки видеоданных и ускорения их обработки предлагается использовать HTT-технологию и ресурсы потоковых команд ЭВМ.
Обработка изображений, htt-технология, графические процессоры, потоковые команды
Короткий адрес: https://sciup.org/14967045
IDR: 14967045
Текст обзорной статьи Обработка видеоданных в системах специального назначения средствами вычислительной техники с ограниченными ресурсами
В некоторых центрах специального назначения задача обработки видеоданных [1] может быть одной из многих задач центра и для своей работы получать ограниченные вычислительные ресурсы. Цена оборудования для обработки видеоданных в виде отдельного многоядерного микропроцессора с интегрированными в него графическими процессорами пока еще высока для массового тиражирования. Однако реализацию современных многопоточных задач обработки видеоданных и ускорение их работы можно проводить средствами параллельной обработки данных современных микропроцессоров с использованием аппарата потоковых команд и НТТ-технологии.
Многопоточность - характерное свойство приложений обработки видеоданных, состоящее в том, что процесс обработки разделяется на нескольких параллельных программных потоков. Такие приложения реализуются обычно на SMP системах – многоядерных и мультитредовых микропроцессорах. Однако работу многопоточные приложений на SMP можно выполнять также на обычных микропроцессорах с применением гиперпоточной технологии. Гиперпоточность, а точнее Hyper-Threading Technology (HTT) -это торговая марка фирмы Intel для реализованной в архитектуре Pentium IV, а затем в процессорах Intel Xeon и многих других технологии «одновременной мультипоточности». При этом процессор Pentium IV определяется операционной системой как два логических, работающих параллельно. Информация о состоянии, требуемая для поддержки работы каждого логического процессора, копируется при совместном использовании или разделении ресурсов физического ядра процессора. Поскольку ресурсы обычного процессора, как правило, недостаточно полно используются большинством приложений, то процессоры, использующие гиперпоточную технологию, позволяют повысить общую производительность приложений, по заявлению фирмы Intel, на 30%. Показано, например в [2], как многопоточные приложения, работающие на системах SMP, можно эффективно выполнять
JI ^,^, ^,^,^ ^ ^
также на микропроцессорах с применением гиперпоточной технологии.
Однако следует различать вычислители, использующие гиперпоточную технологию, и системы SMP. Все физические ресурсы каждого процессора в системе SMP доступны работающему на нем вычислительному процессу, в то время как логические процессоры в Pentium IV разделяют общий пул ресурсов ядра, например, кэш-памяти команд и данных.
Процессоры с применением гиперпоточной технологии не увеличивают размер кэшей. Если приложение было оптимизировано для работы с кэш-па-мятью определенного размера на системе SMP, то в системе с гиперпоточной технологией, производительность приложения упадет. Это произойдет потому, что каждый из логических процессоров будет пытаться полностью использовать кэш, в результате чего будут возникать конфликты. Поэтому в приложениях как на системах SMP, так и на процессорах, использующих гиперпоточную технологию, необходимо обеспечивать балансировку числа логических и физических процессоров, уровней и размера кэша для достижения максимальной производительности приложений.
Для ускорения обработки видеоданных широко используются потоковые команды ЭВМ с архитектурой Single Instruction Multiple Data - это одна команда, много данных. Одной из первых серий таких команд была SSE (Streaming SIMD Extension) процессора Pentium III. В архитектуре ЭВМ добавились 8 новых регистров размером в 128 байт, в которых можно записать 4 числа с плавающей точкой стандартной длины в 32 бита. С парой этих регистров возможны арифметические действия (сложение, вычитание, умножение, деление) как с четырехмерными векторами, то есть операции производятся поэлементно. Основа оптимизации программы под SSE – это такая организация кода, при которой происходило бы частое выполнение одной арифметической операции над четырьмя независимыми парами чисел. Использование команд SSE позволяет получать ускорение работы программ из области обработки видеоданных на порядок. В работе [3] исследовалась реализация типичной задачи обработки видеоданных: когерентная трассировка лучей с использованием возможностей команд SSE. Они позволяют трассировать несколько лучей параллельно одним потоком команд, причем лучи одного набора, трассируемые одновременно, выбираются так, чтобы при работе с ними в большинстве случаев требовались одни и те же (или отстоящие недалеко друг от друга) данные сцены. Реализовано несколько SIMD-расширений команд, например: 3DNow! - SIMD-расширение от AMD. Регистры 3DNow! двухэлементные, а не четырехэлементные, как в SSE. 3DNowProfessional -продолжение 3DNow! в процессорах AMD – AthlonXP, AthlonMP, в это расширение включено и SSE. Добавлены также команды, облегчающие работу с регистрами 3DNow! в случае их интерпретации как комплексные числа. Комплексные числа используются в преобразованиях Фурье, а преобразования Фурье - в кодировании звука и изображения. Расши- рение MMX (Multi Media Extensions) стало стандартным для персональных компьютеров. Это расширение, предназначенное для работы с мультимедийными данными, изображением и звуком. В процессорах с технологией MMX есть 8 MMX-регистров, каждый размером в 64 бит, поддерживаются данные размером в 1, 2, 4 или 8 байт. Данные в MMX-регистрах можно поэлементно складывать, умножать, вычитать, производить логические операции с битами, а также выполнять специфические операции: сложение без переполнения, вычисление среднего арифметического. Многие операции при этом будут выполняться на порядок быстрее, чем на штатном АЛУ. Под MMX оптимизируются разнообразные кодеки аудиофайлов, алгоритмы которых хорошо сочетаются с MMX.
Итак, современные микропроцессоры могут обеспечить эффективную адаптацию параллельных алгоритмов обработки видеоданных в рамках ресурсов своего физического ядра. НТТ-технология позволяет имитировать работу многопоточной среды обработки видеоданных. При этом для обработки изображений или видеосигнала, где возможна обработка части изображения или видеокадра, можно обеспечить очень эффективное использование кэш-памяти первого уровня.
Механизм потоковых команд, позволяющий выполнять одновременно до 8 бинарных операций одной командой ЭВМ, входит в состав всех современных микропроцессоров; он востребован в ряде характерных алгоритмов обработки видеоданных ■
Список литературы Обработка видеоданных в системах специального назначения средствами вычислительной техники с ограниченными ресурсами
- В.А.Сойфер и др. Методы компьютерной обработки изображений. -М.: Физматлит, 2003. -874 с.
- А. Айдинец. Применение SSE для вычисления значений ДФОС в когерентном трассировщике лучей./Сетевой журнал. Компьютерная графика и мультимедиа, 2005. -Выпуск №3 (2).