Однокристальная система Qualcomm Snapdragon 820: новые возможности грядущей топовой SoC компании


snapdragon.jpg

Содержание

Введение

Компания Qualcomm решила делиться с публикой новостями о грядущей топовой однокристальной системе Snapdragon 820 порционно, выкладывая информацию о различных ее составляющих по кусочкам. О части новых возможностей графической подсистемы Adreno 530 и сигнального процессора Spectra ISP они рассказали на ежегодной конференции по вопросам компьютерной графики Siggraph 2015, а другую порцию информации о сигнальном цифровом процессоре Hexagon 680, также входящем в состав топовой SoC, они выдали на конференции Hot Chips, посвященной вопросам, связанным с разработкой и производством высокопроизводительных микроэлектронных чипов.

siggraph_01_small.jpg

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

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

siggraph_04_small.jpg

На конференции Siggraph 2015, прошедшей в Лос-Анджелесе в августе, компания продолжила череду анонсов, представив графические процессоры нового поколения под маркой Adreno 5xx, и цифровой сигнальный процессор для обработки статических и динамических изображений Spectra ISP. Эти составляющие однокристальной системы Snapdragon 820 обеспечивают увеличение производительности и энергетической эффективности, вместе с улучшением характеристик и возможностей.

Составляющие однокристальной системы Snapdragon 820

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

Snapdragon 820 — это весьма сложная однокристальная система, единый кристалл, содержащий практически все необходимое для работы мобильного устройства. Как и любой современный микроэлектронный чип подобного назначения, Snapdragon 820 имеет гетерогенный дизайн, сочетая в себе несколько вычислительных ядер различного назначения: универсальные ядра и блоки, предназначенные для строго определенного круга задач. Такое решение обеспечивает высокую итоговую производительность при сохранении приемлемого потребления питания и тепловыделения, что крайне важно для компактных мобильных устройств, вроде смартфонов и планшетов.

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

soc_die.jpg

С точки зрения обработки визуальной информации, Snapdragon 820 содержит несколько ядер: графическое ядро Adreno 530, блок вывода видеоданных Adreno DPU (Display Processing Unit), блок обработки видеоданных Adreno VPU (Video Processing Unit), а также процессор обработки изображений Spectra ISP — все они занимаются своими задачами, и только GPU может исполнять какие-то универсальные вычисления в том числе. Кстати, на самом деле, в состав Spectra ISP входит еще кое-что, но об этом мы поговорим ниже.

В Snapdragon 820 компания Qualcomm постаралась улучшить свои продукты с точки зрения обработки визуальной информации сразу по нескольким направлениям: фотоснимки и видеозаписи с мобильных устройств должны быть всегда правильно сфокусированными, четкими и не размытыми в любых условиях освещения и активного передвижения снимаемых объектов, а получаемые цвета должны быть натуральными — причем, точность цветопередачи должна обеспечиваться во всем конвейере обработки визуальных данных: фотоснимки, видеозаписи, отрендеренное на GPU изображение и финальный результат, выведенный на дисплей.

Кроме этого, качество воспроизведения видеороликов и 3D-рендеринга в играх должно быть максимальным, то есть производительность и функциональность блоков обработки видео и графического процессора должны быть высочайшими. А отзывчивость пользовательского интерфейса (в операционной системе, браузере, системных и сторонних приложениях) должна быть мгновенной и как можно более плавной — пользователь не должен видеть никаких дерганий и тормозов. Не забывает Qualcomm и о поддержке технологий следующего поколения, которые только начинают свой путь на рынке: вычислительная фотография, виртуальная и дополненная реальность и т. д.

Графическое ядро Adreno 530

Для всех указанных выше задач требуются производительные вычислительные блоки, которые специализируются на выполнении их части. Так, 3D-рендерингом и некоторыми неграфическими задачами в Snapdragon 820 занимается встроенное видеоядро Adreno 530 — верхнее решение нового поколения GPU компании Qualcomm, предназначенное для обеспечения работы пользовательского 2D-интерфейса, 3D-игр, рендеринга и отображения веб-страниц и приложений виртуальной и дополненной реальности.

Графическое ядро Adreno 530 обеспечивает увеличение производительности и эффективности, по сравнению с и так весьма неплохим топовым GPU предыдущего поколения Adreno 430. Первыми двумя видеоядрами, анонсированными Qualcomm, стали Adreno 530 и Adreno 510, которые впервые появятся в составе будущих моделей однокристальных систем Snapdragon 820 и Snapdragon 620/618.

Как и предыдущие решения, новые графические ядра архитектуры Adreno 5xx хорошо масштабируются, и на момент выхода Adreno 530 станет самым высокопроизводительным GPU компании Qualcomm, обеспечивая 40% прироста в скорости рендеринга и неграфических вычислений, и одновременно с этим — на 40% меньшее потребление энергии, по сравнению с Adreno 430.

Новый графический процессор поддерживает виртуальную 64-битную адресацию памяти, что позволяет организовать разделяемую виртуальную память (shared virtual memory — SVM) и эффективное взаимодействие с 64-битными универсальными ядрами CPU, что важно в гетерогенных вычислениях. Также были улучшены система управления питанием, внедрены новые техники и алгоритмы рендеринга, сортировки и сжатия, помогающие снизить энергопотребление и требовательность к полосе пропускания памяти.

Компания не особенно подробно распространяется на тему функциональных улучшений в новом поколении своей графики, говоря лишь о поддержке всех современных мобильных графических и вычислительных API, таких как OpenGL ES 3.1 вместе с AEP (Android Extension Pack), Renderscript, OpenCL 2.0, а также перспективного Vulkan — нового поколения графического API от Khronos Group, известных по стандартам OpenGL.

Этот новый стандарт все еще находится в стадии разработки и обеспечивает более высокую производительность при меньшей нагрузке на CPU-ядра, минимизируя затраты времени, проводимого в видеодрайвере, аналогично таким графическим API, как Microsoft DirectX 12 и AMD Mantle. Также Vulkan отличается лучшим использованием мощности многоядерных мобильных CPU, обеспечивая лучшее масштабирование в современных системах, имеющих большое количество CPU-ядер.

Почему поддержка Vulkan важна для современной индустрии, и особенно в мобильных устройствах? Во-первых, это единственный мультиплатформенный графический API нового поколения, работающий в различных операционных системах и с разным аппаратным обеспечением. Если DirectX 12 работает только в Windows 10, Metal — только на устройствах компании Apple, Mantle — только на GPU компании AMD, то Vulkan может работать где и на чем угодно: поддерживаются все системы Windows от версии XP до 10, Linux, SteamOS и Android. Кроме этого, в Vulkan появилась родная поддержка тайлового рендеринга, что особенно полезно для мобильных GPU.

Немудрено, что инициатива Vulkan получила поддержку от многих компаний, производящих программное и аппаратное обеспечение. Среди производителей «железа» можно выделить Qualcomm, Intel, Nvidia, ARM, AMD, Samsung, Imagination, MediaTek, Sony и других, а с программной стороны в новом API заинтересованы такие известные компании, как Pixar, Epic Games, Unity, Valve, Oculus VR, ubuntu, Blizzard, EA, LucasFilm и другие (список неполный).

Чтобы показать некоторые из возможностей своих новых мобильных графических процессоров, компания Qualcomm предлагает несколько специальных демонстрационных версий. В частности, демо-программу под названием «Paris Apartment», использующую известный и весьма популярный игровой движок Unreal Engine 4 компании Epic Games.

demo_paris.jpg

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

На выставке Siggraph 2015 компания Qualcomm показывала еще несколько демонстрационных версий, использующих многие современные функции Adreno, вроде аппаратной тесселяции, HDR-рендеринга, расчета качественного освещения и отражений, а также временно́го полноэкранного сглаживания (temporal antialiasing).

siggraph_3d_02_small.jpg

В частности, на стенде показывали программы, использующие движки Unreal Engine и Unity 5 и работающие, в том числе, на уже продаваемых устройствах, использующих предыдущие модели Snapdragon. Для мобильных устройств эти демки выглядят действительно неплохо, в них используется качественная геометрия, полученная с применением тесселяции и карт смещения (displacement mapping) — возможность, которая появилась в мобильных однокристальных системах не так давно: начиная с OpenGL ES 3.1 c Android Extension Pack.

siggraph_skin_01_small.jpg

Увидели мы и уже знакомую нам демо-программу с рендерингом лица девушки, показывающую продвинутые техники визуализации человеческой кожи с имитацией подповерхностного рассеивания света (subsurface scattering), отражением и преломлением в глазах, HDR-рендерингом и мягкими тенями с самозатенением. Впрочем, эта программа выполняется еще на Adreno 430, и качество визуализации могло бы быть и повыше — надеемся, что с Adreno 530 это станет возможным.

На стенде Qualcomm на графической конференции показывали и возможности нового графического API Vulkan. Как мы писали выше, этот API позволяет вызывать гораздо большее количество функций отрисовки без падения производительности, по сравнению с OpenGL. В демо-программе как раз и показывалась эта возможность — в ней используется до 5000 вызовов функций Draw Call, при этом частота кадров была около 44–45 FPS.

siggraph_vulkan_01_small.jpg

Но это все показывали еще на старых GPU. А что касается производительности именно Adreno 530, то компания Qualcomm утверждает, что новое видеоядро обеспечивает и бо́льшую производительность, и меньшее энергопотребление, что немудрено, учитывая будущее производство новой однокристальной системы с использованием FinFET-техпроцесса (предположительно — 14 нм на фабриках компании Samsung).

Для начала давайте рассмотрим среднюю производительность и потребление нового GPU в нескольких общепринятых мобильных 3D-бенчмарках, по сравнению с ядром Adreno 430, принятым за единицу. Как видите на следующей диаграмме, новое графическое ядро в среднем на 40% быстрее предыдущего топового, и требует настолько же меньше энергии при этом. Получается, что энергоэффективность нового Adreno 530 почти вдвое выше!

perf_gpu.png

Также новый Adreno 530 обеспечивает высочайшую производительность и в неграфических вычислительных задачах (GPGPU). Инженеры компании Qualcomm улучшили эффективность вычислительных блоков для неграфических вычислений, а поддержка 64-битной виртуальной адресации позволяет использовать разделяемую виртуальную память, общую для CPU и GPU — для оптимизации гетерогенных вычислений.

Новый графический процессор полностью поддерживает как уже давно нам известный стандарт OpenCL 2.0, так и Renderscript — еще один API для интенсивных гетерогенных вычислений на мобильных устройствах, являющийся компонентом операционной системы Android.

perf_gpgpu.png

Вычислительное ядро Adreno 530 обеспечивает большую скорость в вычислительных задачах, в том числе при обработке видеоданных, да еще и при меньшем потреблении энергии. Выше представлены лишь несколько подобных задач, подробности которых, впрочем, не раскрываются. Видно, что новый GPU может быть быстрее ядра предыдущего поколения и всего лишь на 20%, и в 2,5 раза — в зависимости от задачи.

Adreno 530 — универсальный вычислительный процессор, и при помощи OpenCL может многое. Например, компания Qualcomm разрабатывает несколько новых программных решений, которые используют GPU в неграфических вычислениях (точнее, связанных с изображением, но использующих GPU-вычисления как неграфические). Приведем в качестве примера алгоритм выделения фона («виртуального зеленого фона»), часто используемого в видеоиндустрии:

siggraph_opencl_01_small.jpg

Данный алгоритм отделяет задний фон от основного объекта (человека) и размывает его, используя возможности CPU и GPU-ядер в однокристальных системах Snapdragon. Использование GPGPU-возможностей при помощи OpenCL 1.2 и FastCV более чем вдвое ускоряет выполнение алгоритма исключительно на CPU, а одновременное использование этих двух типов вычислительных ядер снижает уровень энергопотребления до 40%.

siggraph_pano_01_small.jpg

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

siggraph_profiler_01_small.jpg

Для повышения удобства разработки 3D-приложений, в компании Qualcomm разработали специальное ПО для профилирования трехмерных приложений, имеющее все необходимые возможности, аналогичные лучшим решениям, принятым в качестве стандартных при разработке игровых и профессиональных 3D-приложений в «старшей» индустрии настольных ПК.

Процессор обработки изображений Spectra ISP

Для обеспечения высокого качества изображения нужно улучшать его обработку во всем конвейере: от камеры мобильного решения до вывода изображения на экран. И в каждом случае есть свои узкие места. Для камеры это физические ограничения мобильных устройств по размеру сенсора и оптики (невысокое качество изображения с большим количеством шумов при недостатке света), а для экрана — физические же ограничения нынешних LCD- и LED-экранов (частичное отображение цветовой палитры, ограниченные контрастность и яркость).

visual_quality.jpg

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

Старшая модель однокристальной системы Snapdragon 820 отличается внедрением нового 14-битного процессора по обработке изображений Spectra ISP (image signal processing), который должен обеспечить серьезное улучшение в возможностях и производительности специальной обработки фотографий (вычислительная фотография), компьютерного зрения, виртуальной реальности и т. п.

В возможности Spectra ISP входят: улучшенный de-mosaic фильтр, предназначенный для новых сенсоров с мелкими чувствительными элементами, новые методы аппаратного шумоподавления и коррекции цветовых артефактов, фильтры предварительной обработки видеопотока, улучшенные алгоритмы гибридной автофокусировки (фазовая/контрастная/лазерная), использование GPGPU-вычислений в алгоритмах сшивки панорам и при качественном цифровом увеличении изображения. И все это — с одновременным снижением энергопотребления.

visual_spectra_isp.jpg

Применение Spectra ISP позволяет получить улучшенное качество изображений — снимки с расширенным диапазоном яркости, улучшенными цветами и натуральным цветом человеческой кожи. Специалисты Qualcomm уверяют, что новый Spectra ISP в составе Snapdragon 820 обеспечивает лучшую энергоэффективность и большую производительность при обработке изображений, по сравнению с предыдущими решениями. 14-битный сдвоенный сигнальный процессор поддерживает до трех камер одновременно (одна фронтальная и пара основных) с разрешением до 25 мегапикселей при скорости съемки в 30 кадров в секунду с почти отсутствующей задержкой перед получением снимка.

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

visual_refocus.jpg

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

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

visual_low_light_01.jpg
visual_low_light_02.jpg

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

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

Были дополнительно улучшены и уже известные нам по предыдущим решениям технологии компании: EcoPix и TruPalette, улучшающие общее качество изображения посредством осветления темных областей и исправления цветового баланса. На Siggraph были показаны весьма наглядные демонстрации работы этих технологий:

siggraph_ecopix_01_small.jpg
siggraph_ecopix_02_small.jpg

Технологии действительно неплохо работают, автоматически изменяя неидеальные динамические изображения, приводя их к лучшему виду. Кстати, многие из указанных выше функциональных возможностей Spectra ISP выполняются при помощи Hexagon DSP, к рассмотрению которого мы и переходим.

Цифровой сигнальный процессор Hexagon 680

В состав однокристальной системы Qualcomm Snapdragon 820 входит новый цифровой сигнальный процессор (DSP) под названием Hexagon 680. Этот процессор специализируется на высокопроизводительных вычислениях, типичных для мобильных устройств, а гетерогенные вычисления (когда используются возможности и CPU-ядер и специализированного DSP одновременно) способны обеспечить необходимую гибкость и предназначены для повышения производительности мобильной однокристальной системы при снижении энергопотребления и тепловыделения.

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

dsp_three.jpg

Главное отличие специализированных DSP от универсальных вычислителей вроде ядер CPU и графического процессора GPU в том, что цифровые сигнальные процессоры «заточены» под определенные задачи, и исполняют их с максимальной эффективностью с наименьшими затратами энергии. Так, «модемными» задачами в составе Snapdragon 820 занимается специальный модемный DSP, задачами, требующими невысокой, но постоянной вычислительной нагрузки — выделенный DSP, потребляющий очень мало энергии, а самой универсальной является совершенно новая разработка компании Qualcomm — цифровой сигнальный процессор Hexagon 680.

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

Новая архитектура Hexagon обеспечивает куда больше возможностей и гибкости в таких задачах, как продвинутая обработка фотографий (вычислительная фотография), машинное зрение, виртуальная реальность и машинное обучение. При всем этом, требовательность к питанию у однокристальной системы даже уменьшается, так как многие вычислительно-интенсивные операции с CPU передаются на исполнение в Hexagon 680, который справляется с ними куда эффективнее.

Hexagon 680 — это уже третий по счету высокопроизводительный вычислитель в составе Snapdragon, после CPU и GPU. В отличие от других DSP в составе чипа, он является многопоточным вычислительным блоком, предназначенным для более широкого круга задач, обеспечивая весьма эффективное исполнение операций над звуком и изображением. Нужно особенно отметить, что для работы Hexagon 680 используются специальные векторные расширения HVX (Hexagon Vector eXtensions) — первые в индустрии wide vector SIMD-расширения для DSP, специально предназначенные для мультимедийных операций над звуком и изображениями.

При помощи этих расширений можно использовать имеющуюся мощь интегрированного Hexagon 680 для того, чтобы применить новые алгоритмы и техники при обработке фотоснимков и видеороликов, в задачах виртуальной и дополненной реальности, а также машинном зрении: определении и опознавании различных объектов. Один из примеров таких вычислений компания Qualcomm показывала на Siggraph 2015:

siggraph_detect_01_small.jpg

Специальным образом «обученное» (см. машинное обучение) программное обеспечение, использующее возможности современных однокристальных систем компании, умеет определять характер изображений и изображенные на них объекты. В случае мобильного ПО Qualcomm оно может понять, на улице было снято фото или в помещении, определять наличие людей на фото и находить на нем известные ему категории объектов: самолеты, люди, часы, животные, кошки и т. д.

siggraph_detect_02_small.jpg

Разработкой подобного ПО сейчас занимаются почти все крупные компании. В случае программы Qualcomm очень важно, что она полностью работает на мобильном устройстве с однокристальной системой Snapdragon, не используя подключение к интернету и внешние серверы. В теории, при помощи обработки большого количества фотографий ее можно «научить» опознавать ваших друзей, членов семьи и т. д.

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

siggraph_detect_03_small.jpg

Совместная работа анонсированного DSP с ядром Spectra ISP позволяет серьезно улучшить возможности по обработке видеоданных в условиях недостаточного освещения и обрабатывать HDR-видео в реальном времени, ведь в таких задачах новый DSP в несколько раз быстрее предыдущих решений.

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

Для этой задачи используется ускоренный при помощи HVX локальный процесс преобразования диапазона яркостей (tone mapping). И так как при этом появляется большое количество шумов на изображении, к этим же участкам применяется специальный шумоподавляющий фильтр, быстро и эффективно справляющийся со всеми артефактами. Результат работы алгоритма, исполняемого на Hexagon 680, был проиллюстрирован чуть выше, в разделе Spectra ISP, так как эти два блока взаимодействуют друг с другом при обработке изображений.

По данным компании Qualcomm, применение Hexagon 680 в задачах улучшения изображений, полученных в условиях недостатка освещения, обеспечивает ускорение до трехкратного при вдесятеро меньшем энергопотреблении, по сравнению с теми же задачами, исполняемыми на мощных многоядерных CPU (в данном случае — четырех ядрах Krait, да еще со специальной оптимизацией для SIMD-ускорителя NEON). То есть главное достижение даже не в увеличении производительности самом по себе, а в серьезном улучшении энергоэффективности, столь важном для мобильных устройств.

hvx_low_light_perf.png

Сравним специализированный DSP с применением HVX, работающий на частоте в 725 МГц, с четырехъядерным процессором Krait, работающим на частоте 2,65 ГГц и полной оптимизацией для NEON, в задачах по обработке изображений чуть подробнее — на следующей диаграмме приведен более широкий круг задач, с которыми Hexagon 680 легко справляется:

perf_imaging.png

Хотя преимущество нового DSP не всегда получается впечатляющим, но он в любом случае быстрее четырех ядер Krait, работающих на более высокой частоте, и обеспечивает значительное улучшение скорости даже по сравнению с мощным CPU — различные фильтры приносят от 90% до 320% прироста производительности. Еще более интересно сравнение энергоэффективности этих вычислительных устройств:

perf_imaging_power.png

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

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

visual_detail_enh.jpg

Посмотрите на еще один пример улучшения резкости изображения — в данном случае, для видеоролика сравнительно низкого разрешения в 1920×1080 пикселей, отмасштабированного при помощи высококачественного фильтра на экран 4K-разрешения. На наш взгляд, улучшение качества масштабирования и четкости налицо:

siggraph_upscale_02_small.jpg

Вероятно, и в этом случае применение Hexagon 680 отличается меньшим энергопотреблением и/или увеличением производительности, хотя Qualcomm не приводит конкретные цифры. В любом случае, понятно, что специализированный сигнальный процессор, «заточенный» под обработку изображений, способен делать эту работу куда эффективнее, чем универсальные ядра CPU или графические ядра GPU, которые затратят куда больше энергии, что неприемлемо для мобильных чипов.

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

Если современные CPU имеют суперскалярную архитектуру и внеочередное исполнение команд (out-of-order execution), то DSP довольствуется выполнением инструкций по порядку (in-order) и имеет VLIW-архитектуру — уже одно это серьезно упрощает вычислительные блоки и снижает потребление энергии. Более того, CPU имеют сравнительно короткие векторные команды с большими накладными расходами, а широкие векторы в DSP их сглаживают.

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

Еще одной причиной того, что задачи обработки изображений было решено переложить на Hexagon DSP, является сырость большинства алгоритмов вроде HDR-фото и видео, улучшения качества фотоснимков, полученных при недостаточном освещении и других подобных — они требуют постоянной доработки и обновления, и поэтому их нецелесообразно перекладывать на непрограммируемое fixed-function аппаратное обеспечение. Да, подобные задачи можно за

Полный текст статьи читайте на iXBT