ARM догоняет Intel?

  • Категория: Железо
  • Дата: 15-09-2013, 00:30
  • Просмотров: 7 774
ARM догоняет Intel?

Система обнаружения пешеходов отвечает на этот вопрос. Сравнение характеристик смартфонов и управляющих ими систем на кристалле и процессорных ядер в последнее время стало горячо обсуждаемой темой. В особенности теперь, когда Intel пытается потеснить ARM в пространстве маломощных мобильных устройств процессором Atom, а ARM, в свою очередь, бросает вызов Intel в серверном пространстве с процессорами Cortex-A53 и A57. Уже написано достаточно статей, в которых сопоставлялись характеристики смартфонов, использующих ARM и Atom, но, возможно, не было ни одной, в которой сравнивались бы Cortex-A15, A9 и Intel Core i3 с точки зрения практического применения разработчиками. В этой статье я попытаюсь поделиться своим опытом работы по оптимизации алгоритмов компьютерного зрения и, в частности, систем обнаружения пешеходов, и сравнить эффективность реализации алгоритмов на этих трех процессорах.

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

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

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

Система обнаружения пешеходов - профессиональный термин, обозначающий выделение людей из потока видеоизображения - одна из актуальных проблем, над решением которой работают производители автомобилей, создавая основанные на видеокамерах системы безопасности следующего поколения. Наиболее популярным алгоритмом обнаружения пешеходов на сегодня является HOG (Histogram of Oriented Gradients - гистограмма направленных градиентов), предложенный Нэвнитом Дэлэлом (Navneet Dalal) и Биллом Триггсом (Bill Triggs). Он предлагается в качестве части OpenCV - достаточно хорошо оптимизированной свободно распространяемой библиотеки компьютерного зрения с разрешительной лицензией. Однако алгоритм пока недостаточно быстр, чтобы в реальном времени выполняться на процессорах большинства архитектур.

Например, при полном поиске людей в минимальном окне 64x128 пикселей на картинке формата VGA быстродействие работающего на максимальной частоте и одном ядре процессора Core i3 оказывается в 13 раз ниже требуемого. Что еще хуже, из-за большой потребляемой мощности процессоры Core i3 использоваться в автомобильной промышленности не могут. По этой причине в большинстве случаев применяют процессоры с ядром ARM (Cortex-A8, A9 и, теперь, A15), дополненные ЦСП и ПЛИС. Таким образом, самой насущной потребностью сегодняшнего дня стала глубокая оптимизация алгоритма HOG. Для оптимизации мы выбрали ядро ARM из-за его повсеместной распространенности.

Оптимизация алгоритма, в основном, состоит из двух этапов. На первом этапе выполняется то, что мы называем Си-оптимизацией, и то, что в наименьшей степени зависит от типа процессора. Вторым шагом мы фокусируемся, главным образом, на архитектуре ARM, в первую очередь, на инструкциях Neon, и, аналогично, на инструкциях SSE для архитектуры x86. Однако базовый алгоритм остается одним и тем же, что позволяет получить корректные результаты сравнения.

ARM догоняет Intel?

Для наших измерений мы выбрали следующие ядра:

• Cortex-A15 - 1.2 ГГц, кэш 2 МБ, ОС Android на плате Exynos 5250 Arndale

• Cortex-A9 - 1.2 ГГц, кэш 1 МБ, ОС Android на плате OMAP 4430 Panda

• Core-i3 - 2.99 ГГц, кэш 4 МБ, ОС Linux Ubuntu

• Core-i3 - 1.2 ГГц, кэш 4 МБ, ОС Linux Ubuntu

Кроме того, мы включили дополнительное измерение того же ядра Core i3 на пониженной частоте 1.2 ГГ ц, чтобы получить еще одну точку на одной частоте с ARM. Мы не тестировали i5 и i7, отличающиеся, в основном, количеством ядер, гипер поточностью, более высокой тактовой частотой и большими объемами кэшей, и в гораздо меньшей степени набором инструкций и самой архитектурой, которые, собственно, мы и хотели сравнить.

Оптимизация потребляемой мощности была отключена, чтобы быть уверенным, что ядра тактируются одной частотой. Приложение HOG оставалось однопоточным, так как должно было выполняться на одном ядре. Коды всегда компилировались с высшим уровнем оптимизации и с разрешенными флагами SSE и Neon.

Результаты

Краткая сводка результатов, полученных при использовании алгоритма HOG, приведена ниже. Обнаружились некоторые довольно любопытные детали.

HOG OpenCV Cortex-A9 - 2320 мс

Cortex-A15 - 1265 мс Core i3 (1.2 ГГц) - 1107 мс Core i3 (2.99 ГГ ц) - 439 мс

HOG с Си-оптимизацией

Core i3 (1.2 ГГц) - 152 мс Core i3 (2.99 ГГц) - 74 мс

HOG с Neon и Си-оптимизацией

Cortex-A9 - 340 мс Cortex-A15 - 138 мс

О чем говорит статистика

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

Более интересный аспект этих цифр заключается в том, когда Cortex-A15 и Core i3 работают на одинаковой тактовой частоте

1.2 ГГц, разница в производительности этих двух процессоров для оригинальной OpenCV HOG оказывается незначительной. В данном случае производительность Cortex-A15 (1265 мс) всего на 14% ниже, чем Core-i3 (1107 мс). Однако было бы ошибкой обобщать этот вывод на все алгоритмы.

Так действительно ли ARM догоняет Intel?

Чтобы быть справедливым к Intel, отметим, что Core-i3 на частоте 1.2 ГГц при использовании только Си-оптимизации практически удалось не отстать от A15 с полностью оптимизированным кодом, хотя мы полагали, что компилятор, возможно, уже проделал большую работу, подстраиваясь под инструкции SSE с использованием дружественного параллелизму данных кода Си. Кроме того, процессоры Intel отличаются более высокой тактовой частотой (ядро i7 в турбо режиме может работать на частоте 3.8 ГГц) и гиперпоточностью, которые могли бы оказаться полезными в многопоточной среде.

Возможно, самым интересным выводом из полученной статистики является тот факт, что полностью оптимизированной версии HOG при выполнении на Cortex-A15 (139 мс) удалось почти втрое превзойти оригинальную версию HOG из OpenCV, выполнявшегося на Core i3 с тактовой частотой 2.99 ГГц (439 мс), несмотря на в 2.5 раза более низкую частоту и вдвое меньший размер кэша. Этот результат показывает, что при определенной программной оптимизации Cortex-A15 может бросить вызов Core i3 и, возможно, даже победить его в этой игре.



  • Комментарии
  • ВКонтакте
  • Facebook
Andreychru
VIP | 15 сентября 2013 12:38
  • 0
интересная статья
что в очередной раз доказывает
прогресс не стоит на месте.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Пользователи онлайн
Всего на сайте: 51
Пользователей: 0
Гостей: 51
Роботы: Yandex Google
+0  
Новостей: 15204
+0  
Комментариев: 39469
+0  
Пользователей: 10103
ремонт ноутбуков