Новые возможности однокристальной системы Qualcomm Snapdragon 820


Содержание

Введение

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

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

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

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

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

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

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

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

С точки зрения обработки визуальной информации, 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Главное отличие специализированных 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:

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

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

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

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

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

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

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

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

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

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

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

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

Вероятно, и в этом случае применение 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 аппаратное обеспечение. Да, подобные задачи можно запустить на гибких и программируемых CPU или GPU, но они менее энергоэффективны, а этот показатель в мобильных устройствах важнее всего.

Векторные расширения HVX

Одной из ключевых особенностей Hexagon 680 являются векторные расширения Hexagon Vector Extensions (HVX), разработанные специально для больших объемов вычислений, вроде обработки фотографий и видеопотоков, приложений виртуальной и дополненной реальности и машинного зрения. Векторные расширения HVX отличаются предметно-ориентированной (domain specific) архитектурой, специализированной для конкретной области применения, но имеющей уже привычную программную модель и тесную системную интеграцию.

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

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

В специализированной системе команд HVX есть так называемые sliding window фильтры, обычно применяемые при обработке изображений, а также команды для работы с таблицами поиска (LUT) и гистограммами. Производительности блока Hexagon HVX вполне достаточно для постобработки видеопотока в 4K-разрешении или мгновенной обработки 20-мегапиксельных снимков с фотокамеры в режиме скоростной фотосъемки. Соответственно, применений для возможностей HVX можно придумать очень много.

Исполнительные блоки SIMD имеют VLIW-архитектуру (very long instruction word — одна инструкция содержит несколько операций, которые выполняются параллельно) шириной 1024-бита, они сгруппированы в четырехвекторные блоки, что дает 4096 результирующих бит за каждый цикл. Имеется 32 1024-битных регистра, а вычисления производятся исключительно с фиксированной запятой: 8-битные, 16-битные и 32-битные. Отказ от вычислений с плавающей запятой (floating-point) продиктован тем, что в большинстве задач машинного зрения и обработки изображений такие вычисления просто не нужны, зато это позволяет значительно уменьшить сложность DSP, снизив потребление энергии.

Обработка потоков данных в архитектуре HVX включает четыре параллельно работающих скалярных потока данных, каждый из которых построен по схеме 4-way VLIW, они имеют общую кэш-память первого и второго уровней (L1 и L2). Каждый из блоков работает на частоте в 500 МГц, что в результате эквивалентно 2 ГГц для одного скалярного блока. Есть в архитектуре Hexagon HVX и два векторных блока, управляемых любыми двумя скалярными потоками (остальные два потока могут параллельно выполнять скалярные операции). Они также работают на частоте 500 МГц, и их итоговая векторная производительность равна 1 ГГц.

DSP имеет VLIW-архитектуру, когда несколько исполнительных блоков исполняют одну и ту же инструкцию в параллели, а некоторые математические операции дополнительно ускорены при помощи специальных инструкций, чтобы обеспечить быстрое исполнение типичных операций при обработке сигналов — вроде быстрого преобразования Фурье (Fast Fourier Transform — FFT). Цифровые сигнальные процессоры фокусируются на параллелизме на уровне инструкций, а не большого количества потоков, и обычно имеют сравнительно небольшое количество исполнительных блоков, по сравнению с GPU, например.

С точки зрения подсистемы памяти, используется двухуровневое кэширование данных. Кэш-память второго уровня является первым уровнем памяти для векторных вычислительных блоков, что упрощает программирование и позволяет снизить накладные расходы от тайлинга, необходимого при использовании L1-кэша значительно меньшего объема. Кэш-память первого и второго уровня когерентны, есть потоковая предвыборка (prefetch) данных из DDR-памяти в L2-кэш, векторные блоки поддерживают несколько типов инструкций загрузки и сохранения данных (Load/Store).

В целом, Hexagon DSP с использованием HVX имеет программную модель, схожую с универсальными CPU, поддерживаются SIMD-команды и многопоточность, есть когерентные разделяемые кэши двух уровней, программирование осуществляется на языках C и C++ с так называемыми intrinsics-функциями. Есть и оптимизированные библиотеки с наиболее востребованными функциями — все почти как у старших братьев: CPU и GPU, возможно, в слегка облегченном виде.

Так в чем тогда отличия между CPU с SIMD-командами и Hexagon DSP с применением HVX? Они есть и их довольно много:

Если четырехъядерный CPU с NEON поддерживает 128-битные SIMD-команды с одним конвейером на ядро, то Hexagon DSP с HVX широкие 1024-битные SIMD и имеет четыре конвейера. Поэтому по пиковой производительности DSP будет иметь восьмикратное преимущество.

Четыре CPU-ядра имеют 32 КБ кэш-памяти первого уровня на SIMD-поток, а в случае Hexagon DSP потоки команд SIMD разделяют доступ к 512 КБ кэш-памяти (технически это кэш-память второго уровня, но она достаточно быстра и служит в качестве первого). Соответственно, Qualcomm снова отмечает восьмикратное преимущество HVX по объему быстрой памяти на поток. В дополнение в этому, потоки в DSP имеют доступ к общим данным.

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

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

Для успешной работы производительных вычислительных блоков важна не только их пиковая производительность, но и полоса пропускания потоков данных и их устройство в однокристальной системе. В данном случае, предварительная обработка данных, получаемых с камеры без доступа к внешней DDR-памяти, позволяет дополнительно сэкономить энергию, а данные с сенсоров передаются в L2-кэш DSP на скорости до 1,2 гигапикселей/сек. Прошедшие обработку в DSP пиксели могут быть отправлены обратно в специализированный процессор обработки изображений с камеры (Camera ISP).

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

В деле новых архитектурных решений важна не только аппаратная, но и программная поддержка. Если выпустить просто однокристальную систему с новыми возможностями, но не дать программных методов их использования, то никто просто не сможет применить их в деле. Очень хорошо, что компания Qualcomm хорошо понимает важность качественной поддержки для разработчиков и планирует выпустить Hexagon SDK 3.0 для поддержки Hexagon DSP серии 600.

В SDK входят все необходимые для работы составляющие: компилятор, ассемблер, профайлер, дебаггер, библиотеки, модули, примеры, framework, симулятор и т. д. Применением новых возможностей Hexagon 680 заинтересовались уже многие компании, вот лишь неполный их список: ArcSoft, BDTi, Core Photonics, Morpho, Omron, Hexagon, Sony и многие другие. Представители Qualcomm утверждают, что уже более 100 компаний занимаются портированием кода на Hexagon DSP, и это только начало.

DSP для нетребовательных задач с низким энергопотреблением

Еще одним новым блоком в составе однокристальной системы Snapdragon 820 стал цифровой сигнальный процессор с низким энергопотреблением. Он размещен в специальном островке на чипе, который работает, когда весь остальной чип отключен. Low Power Island (LPI) разгружает вычислительные ядра Kryo в задачах обработки аудиоданных и сигналов с различных датчиков, вроде датчиков движения. В то время как Hexagon 680 используется для требовательных к производительности вычислений по обработке цифровых сигналов, выделенный DSP LPI делает не менее важную работу.

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

В составе однокристальной системы Snapdragon 820 подобными задачами будет заниматься LPI, а для более эффективного его использования у постоянно включенного DSP низкого энергопотребления имеются собственные линии питания низкого напряжения. То есть при его работе все остальные блоки Snapdragon 820 могут быть отключены, практически не потребляя энергии.

Интересно, что специалисты компании Qualcomm выбрали для таких задач DSP, а не вычислительное ядро вроде ARM Cortex-M, которое применяют для аналогичных задач некоторые из конкурентов. По их словам, при проведении специальных тестов внутри компании, при исполнении продвинутых алгоритмов DSP показали себя более эффективными, по сравнению с RISC-ядрами вроде Cortex-M.

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

Компания Qualcomm сравнивает работу своих однокристальных систем моделей Snapdragon 808 и 820. Более совершенная модель с выделенным блоком LPI обеспечивает втрое меньшее энергопотребление в задачах подсчета количества шагов и оказывается примерно вдвое эффективнее в задаче «Rotation Vector», используемой при определения позиционирования мобильного устройства в таких задачах, как управление в играх, например.

Блок вывода изображения Snapdragon 820

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

Для этого рассматриваемой однокристальной системой поддерживается вывод в 4K-разрешении и на собственно экраны смартфонов и планшетов, и по HDMI 2.0 с частотой обновления до 60 Гц (у настольных GPU одной известной компании до сих пор нет такой возможности!), и даже при беспроводном подключении дисплея есть поддержка 4K-разрешения, хотя и «всего лишь» при 30 Гц (в том числе поддерживается прямая передача видеопотока на беспроводной дисплей без перекодирования).

Можно отметить и другие улучшения, в том числе все тех же уже упомянутых технологий EcoPix и TruPalette, динамически улучшающих итоговую картинку, добавим к этому поддержку расширенного цветового пространства по рекомендации ITU-R Rec. 2020 и продвинутого сжатия Display Stream Compression (DSC) 1.1 от VESA и сжатия полосы пропускания Universal Bandwidth Compression (UBWC).

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

Технология improveTouch

Еще одной интересной новинкой компании Qualcomm является улучшенная поддержка сенсорных панелей improveTouch, которая уже появилась в вышедших на рынок устройствах в виде планшетов Sony Xperia Z4 Tablet на базе Snapdragon 810. Планшет был анонсирован еще на MWC 2015, но до сих пор улучшенная обработка паразитных сигналов при обработке касаний экрана особо не рекламировалась. Оказывается, в планшете применяется технология Qualcomm, которая использует возможности однокристальных систем Snapdragon вместо внешних контроллеров для чувствительных к касаниям панелей — в данном случае этим занимается специальный блок, встроенный в Snapdragon.

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

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

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

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

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




Дополнительно

ВИКТОРИНА TT

Материнские платы какого форм-фактора можно устанавливать в корпус Thermaltake Versa C22 RGB Snow Edition?

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.