Что такое аппаратное ускорение на Android и зачем оно нужно

Современные смартфоны работают за счет разных компонентов, но главными считаются именно центральный и графический процессор (CPU и GPU).

Что такое аппаратное ускорение

Название говорит само за себя — аппаратное ускорение использует специальное аппаратное обеспечение для ускорения определенной задачи, чтобы она выполнялась быстрее и/или более эффективно, чем это происходит при использовании одного лишь центрального процессора (CPU). Чаще всего в игру при таком сценарии вступает графический процессор (GPU), цифровой сигнальный процессор (DSP), или какой-либо другой аппаратный блок, который специализируется на выполнении какой-то конкретной задачи.

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

Одним из наиболее распространенных вариантов использования аппаратного ускорения является кодирование и декодирование видео. Например, вместо того, чтобы декодировать видеопоток на центральном процессоре (ЦП), который не очень эффективен, видеокарты или другое оборудование часто содержат выделенные блоки кодирования/декодирования видео, которые могут выполнять задачу намного более эффективно. Аналогично, распаковка аудиофайла часто может выполняться быстрее на DSP или звуковой карте, чем на процессоре.

Другое очень распространенное использование для аппаратного ускорения — ускорение 2D-графики. Например, пользовательские интерфейсы часто содержат много графики, текста и анимации для рендеринга. Все это может быть выполнено центральным процессором, но графический процессор (GPU) или дисплейный процессор намного быстрее справятся с таким типом операции. Задачи могут включать применение фильтра сглаживания к тексту, чтобы он выглядел более плавным, или наложение полупрозрачного слоя поверх другого элемента, такого как видео. Другие примеры продвинутой графики включают оптимизацию физики и трассировку световых лучей.

Читайте также:  Внешние и внутренние сетевые адаптеры для компьютера

Что такое CPU

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

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

Каждое ядро работает на тактовой частоте, обычно это от 2 до 3 ГГц для мобильных устройств, и до 5 ГГц для компьютеров. Кроме того, CPU может иметь разные объемы высокоскоростной закрытой памяти, которая используется для хранения инструкций и данных (т.е. кэш). Кэш-память может быть либо индивидуальной для каждого ядра или делится между ними. Она необходима для ускорения выполнения задач и переключения между ними.

Процессор обрабатывает различные типы данных и обеспечивает общую функциональность устройства.

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

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

Что означает понятие «Аппаратное ускорение»?

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

Читайте также:  Видеокарта работает некорректно как исправить?

В «Google Chrome» функция «Аппаратное ускорение» использует возможности процессора («GPU») пользовательского компьютера для решения сложных и требовательных графических задач, таких как воспроизведение видео, игр или других процессов, которые нуждаются в более быстрых математических вычислениях. Отделение определенных задач и перенос нагрузки от их исполнения позволяет основному центральному процессору перенаправить собственные усилия на выполнение остальных задач, в то время как графический процессор непосредственно обрабатывает выделенные процессы, для которых он был разработан.

Теоретически, включение функции «Аппаратное ускорение» на постоянной основе должно снизить общую нагрузку и более сбалансированно использовать возможности интегрированных аппаратных элементов. Но иногда, приложение «Google Chrome» с активной функцией может перестать реагировать на любые команды пользователя, картинка может замереть, возникает непредвиденная ошибка или происходит неожиданный сбой в работе приложения. Поскольку каждый компьютер пользователей индивидуален, разнится внутренними комплектующими и имеет отдельные различия, то проблема с полноценным функционированием «Google Chrome» может быть связана с графическим процессором «GPU» или драйвером, связанным с ним. И если присутствуют обоснованные подозрения, что виновником неполадок является аппаратное ускорение, то лучше всего отключить его и посмотреть, решит ли это возникшую проблему.

Почему аппаратное ускорение важно

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

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

Читайте также:  Покупка Вечных ссылок для сайта на бирже RotaPost!

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

Делитесь своим мнением в комментариях под этим материалом и в нашем Telegram-чате.

©

Переключитесь на SKIA Андроид

Если на вашем телефоне стоит Андроид 7.0 или выше, вы можете, попробовать перевести движок рендеринга графического процессора на SKIA, после чего, по отзывам пользователей, FPS в играх увеличивается. Я попробовал на игре Star Wars™: Галактика героев и могу подтвердит, что игра стала плавней. Включить режим SKIA, можно в том же режиме разработчика, а также изменить другие настройки, чтобы ускорить скорость работы Андроида.

Пока вы находитесь в режиме разработчика, можете попробовать включить Force 4x MSAA. Это метод сглаживания, который не увеличит FPS в игре, но может сделать их визуализацию более красивой. Но, увеличит нагрузку на батарею и может привести к определенному замедлению смартфона. Тем не менее, изменение этих настроек не принесут вреда телефону. Попробуйте включить их, сравнит, и выбрать то, что вам больше нравиться.