Не так давно у нас выходила статья, часть которой была посвящена схеме работы некоторых моделей однокристальных систем. Интересными оказались результаты тестирования SoC Snapdragon 808, показавшей себя не с лучшей стороны, но позже вышли еще менее привлекательные чипы в виде Snapdragon 615 и 430, о которых даже говорить не хотелось.
Несколько позже на «Персональных Страницах» вышла короткая статья о специфике работы десятиядерного MediaTek Helio X20, который также не оправдал надежд пользователей по многим направлениям.
В то время мы встретились с проблемами планировщика, который так жаждал сохранить приемлемое энергопотребление чипа, что кроме бенчмарков толком не задействовал кластер производительных ядер. Это было ожидаемо, поскольку дай волю всем десяти ядрам работать одновременно, как они моментально посадят батарею и/или перегреются.
Вследствие этого, при выборе смартфона с технической точки зрения появляется новая переменная – планировщик. Каждый производитель мобильных решений самостоятельно проектирует его и задает режимы работы, в чем мы сегодня и убедимся. Поэтому не все йогурты чипы одинаково полезны, и от одной и той же SoC можно ожидать разных результатов на практике. В бенчмарках же они, как правило, будут схожи.
Сегодня у нас однокристальная система Qualcomm Snapdragon 820, которая интересна прежде всего тем, что обладает четырьмя ядрами с классической компоновкой, которые работают на разных максимальных частотах. Да, обзор немного задержался, но тут действует правило «лучше поздно, чем никогда», ведь Snapdragon 821 – просто разогнанная версия этого же чипа, а до выхода принципиально новой SoC еще несколько месяцев.
| Параметр / Модель |
Snapdragon 820 | Snapdragon 810 | Snapdragon 805 |
| Количество ядер, шт. | 4 | 4 + 4 | 4 |
| Архитектура | Kryo | Cortex-A57 + A53 | Krait 450 |
| Частота работы CPU | 2 x 2.15 ГГц + 2 x 1.6 ГГц | 4 x 2.0 ГГц + 4 x 1.44 ГГц | 4 х 2.7 ГГц |
| Схема работы ядер CPU | – | big.LITTLE (GTS) | – |
| Техпроцесс, нм | 14, FinFET LPP | 20, HPm | 28, HPm |
| GPU | Adreno 530 | Adreno 430 | Adreno 420 |
| Частота работы GPU, МГц | 624 | 650 | 600 |
| ОЗУ | LPDDR4 | LPDDR4 | LPDDR3 |
| Количество каналов ОЗУ | 4 x 16 (64 bit) | 2 (32 bit) | 2 (64 bit) |
| Частота работы ОЗУ, МГц | 1866 | 1600 | 800 |
| Теоретическая ПСП, Гбайт/с | 29.8 | 25.6 | 25.6 |
Если сравнивать героя обзора с предшественниками, виднеется серьезная разница между всеми поколениями SoC. Фактически мы видим возврат концепции привычной компоновки ядер после не самой удачной попытки сыграть на схеме big.LITTLE, которая до сих пор так популярна среди конкурентов.
И это хорошая новость, так как это почти не позволяет планировщику натворить глупостей и принудительно перекинуть, к примеру, один интенсивный поток вычислений в браузере на «слабый» кластер Cortex-A53, работающий на низкой частоте. Этим и объясняется маргинальная ощущаемая разница в скорости работы повседневных приложений при переходе от Snapdragon 805/801 к 810/808 чипам, несмотря на явное преимущество последних в бенчмарках.
С выходом Snapdragon 820 все вернулось в привычное русло. Мы получаем четыре «толстых» ядра, которые обеспечивают высокую производительность даже на низких частотах, и работа с устройством на новой аппаратной платформе действительно сильно отличается от старых поколений, это хорошо заметно даже невооруженным бенчмарками глазом.
Итак, перед нами четырехъядерный CPU. Попробуем «зайти в лоб» и оценить масштабируемость самым примитивным способом – при помощи бенчмарка GeekBench. Почему именно он? Мы знаем, что его результаты Single Core отлично масштабируются на количество используемых ядер, почти пропорционально, если охлаждение позволяет:
Да и в целом, это вполне адекватный бенчмарк, который с приходом четвертой версии заставляет нещадно троттлить современные SoC, но сейчас не об этом. Если мы соберем результаты тестирования смартфонов на Snapdragon 820, проведенные в нашей лаборатории, получится такая картина:
И поскольку в данном случае нас не интересует троттлинг, тут уместна именно третья версия программы. Как можно видеть, масштабируемость явно не четырехкратная или даже трехкратная. Но и за двухъядерник этот чип признать нельзя. Думается, так оно и должно быть, при задействовании сразу четырех ядер они в лучшем случае будут работать на частоте 1.6 ГГц, то есть на максимальной частоте «медленной» пары ядер. Или нет?
Для проверки этих доводов запустим старый добрый Linpack с загрузкой от одного до четырех потоков. Как видно, после увеличения нагрузки с двух до трех потоков наблюдается пусть и незначительный, но все же рост производительности, что и намекает на подтверждение наших догадок.
Посмотрим на графики загрузки ядер в четырех режимах, начиная с одного потока, заканчивая четырьмя.
Никаких аномалий тут в целом нет. Разве что нагрузка оказывается несколько выше ожидаемой, но учитывая оболочку подопытного смартфона, подобное неудивительно. Об этом мы поговорим чуть ниже.
Но самое интересное начинается, если мы добавим на график результаты прогона Snapdragon 810 и MediaTek Helio X20.
Разница в показателях очень большая. Snapdragon 820 на голову обгоняет все чипы на графике. Кстати, тут у нас целых два представителя Snapdragon 810 – это Sony Xperia Z4 (QSD810S на графике) и HTC One M9 (QSD810H). Обратите внимание на разницу в результатах!
Вот как наглядно выглядит слабое место big.LITTLE систем – планировщик в зависимости от желания разработчиков может перекинуть интенсивную нагрузку в один поток на «слабое» ядро Cortex-A53.
Так делает Sony Xperia Z4, который лишь при исчерпании лимита возможностей кластера Cortex-A53 начинает пользоваться «толстыми» ядрами Cortex-A57. В реальной жизни это выливается в низкую комфортность работы с тем же браузером, у которого сценарии javascript работают в таком режиме. И даже если загрузить такой смартфон работой с несколькими задачами одновременно, он все равно будет использовать слабый кластер. Сделано это, понятное дело, для экономии заряда. На том же чипе HTC One M9 сразу понимает, что от него требуется, и начиная с одного потока выдает высокую производительность. Чип один – ощущения от работы устройств разные.
Возвращаясь к нашему герою, стоит еще раз отметить, что в случае с четырьмя производительными ядрами такая ситуация почти невозможна! Тут попросту нет слабого кластера, на который по ошибке может сослаться планировщик. Да, он может проигнорировать нагрузку и задействовать одно ядро на невысокой частоте, но производительность будет все равно выше одного ядра Cortex-A53.
Но и тут производитель со своим планировщиком может натворить дел. Просто цена ошибки не так велика. Например, в случае с Sony Xperia XZ планировщик напрочь отказывается обрабатывать более чем четыре потока. Выглядит это так:
Что пошло не так? Скорее всего, это проблема конкретной модели устройства. Если бы работало только одно ядро на минимальной частоте, можно было бы винить планировщик, но загрузка ядер выглядела следующим образом:
Очень плотная загрузка. Странный результат, который повторяется каждый раз, если потоков больше четырех.
Как ни странно, в этот момент частота всех ядер составляла ~1.6 ГГц, то есть чип работал на пределе. Полагаю, что это либо проблема конкретного смартфона, либо баг самого Linpack. В любом случае тут нужны дополнительные исследования.
В каждом обзоре смартфона мы стараемся тщательно оценить стабильность работы аппарата. Но наглядно увидеть разницу в уровне троттлинга довольно сложно, так как для такой демонстрации нужно обработать и представить в удобном виде обширный массив данных. Да и само тестирование занимает уйму времени. Но поскольку у нас статья немного неформатная, можно насладиться интересными деталями, которые в обычной статье не встретишь.
Итак, начнем с обзора троттлинга CPU части. Для тестирования был выбран Linpack, пятнадцать прогонов.
Это график с относительными данными, где в процентах указана разница между максимальным результатом и худшим/средним прогоном. Желтая линия указывает, на сколько падает производительность, а оранжевая – как быстро. В идеале обе линии должны быть со значением 100%, что означало бы полное отсутствие троттлинга.
Как видно, Snapdragon 820 далеко не эталон стабильности. Результат хуже показал только крайне неудачный LG Nexus 5, со стареньким Snapdragon 800 на борту. Но выборка не очень большая, так что судить с высокой точностью пока нельзя. По мере попадания в мои руки устройств с интересными SoC этот список будет пополняться.
Из смартфонов, что были на тесте именно у меня, с этим чипом были Sony Xperia XZ и Xiaomi Mi5. Напомню, как они показали себя в тесте AnTuTu 5.7.1, запущенном «на холодную» и «на горячую».
Sony Xperia XZ.
А это результат Xiaomi Mi5. Второй скриншот плохо получился в свое время, результат на нем, если присмотреться – 52 906 баллов.Так что, бенчмарки в целом подтверждают результаты теста в Linpack.
Теперь перейдем к GPU. C ним дела должны обстоять позитивнее, так как его производительность настолько высока, что зачастую именно скорость работы CPU становится «узким горлышком», тогда как видеоядро работает едва ли на максимуме возможностей. Это хорошо видно по тому же GFXbenchmark:
Троттлинг наступил только к ~20 прогону сцены T-Rex. Это хороший показатель. Но для сегодняшней статьи нам нужно больше данных.
Запустим бенчмарк Basemark X семь раз подряд на высоких настройках качества без возможностей остыть между прогонами. Смартфон при этом лежал на шерстяном пледе при комнатной температуре окружающей среды.
Если рассматривать абсолютный результат, то производительность почти не меняется от прогона к прогону. Очень хороший результат.
Если мы возьмем относительный результат, где за 100% взят первый прогон, то картина почти не изменится, Snapdragon 820 – один из самых стабильных чипов в этой подборке, он выглядит даже интереснее прежнего фаворита MediaTek Helio X10.
Но тут меня осенило. Basemark X содержит в своих сценах фиксированное количество кадров. А значит, чем производительнее чип, тем быстрее он проходит этот тест. Таким образом, семь прогонов на Snapdragon 820 будут по времени длиться почти в десять раз дольше, чем те же семь прогонов на MediaTek MT6735!
Этот нюанс делает данный бенчмарк не слишком годным для такого сравнения, но тот же 3DMark уже не так сильно нагревает устройство. По-видимому, придется еще поработать над методикой. Но! Раз пошло такое дело, то я решил добавить количество прогонов для героя обзора.
Где-то после десятого прогона производительность стала падать. И, надо сказать, в итоге снизилась она некритично. В самом худшем случае был зарегистрирован результат 27 359 баллов.
Это, на минуточку, более чем в пять(!) раз больше, чем лучший результат Snapdragon 615, и в два раза больше, чем результат нагретого Exynos 7420. Налицо полное доминирование над соперниками даже спустя двадцать прогонов. Хотелось бы видеть на графике Exynos 8890, но пока не сложилось. Для того чтобы понять, почему так происходит, надо взглянуть на график загрузки GPU в этом тесте:
Я уже говорил, что GPU Adreno 530 с трудом раскрывает свой потенциал? Так оно и есть. Работая на ~400 МГц и средней загрузке ~70% нет сомнений, что перегрев ему в таком щадящем режиме не грозит.
Выше речь шла о недостатках схемы big.LITTLE, но ее используют не просто так и на это есть свои причины. Слабое место Snapdragon 820 и любых чипов схожей компоновки – энергопотребление в режиме простоя. Если грамотно настроенный Snapdragon 810 может в режиме ожидания полностью запарковать кластер ядер Cortex-A57, то тут такое дело не пройдет.
В режиме «холостого хода» нужна либо очень тонкая настройка планировщика, либо идеально вылизанная прошивка, которая не будет часто беспокоить SoC в фоне. На примере Sony Xperia XZ прекрасно видно, как без нагрузки смартфон не стесняется использовать все четыре ядра, причем поднимая частоту выше 2 ГГц.
Неудивительно, что при тестировании смартфона на автономность результат оказался, прямо скажем, невысоким. И это с качественным аккумулятором и бережным отношением к его зарядке. Примерно та же судьба ждала и Xiaomi Mi5. Впрочем, эту ситуацию можно чуть улучшить, если производители обновят ПО и введут «жесткую» парковку ядер, которая в свое время творила чудеса с Snapdragon 800 в составе LG Nexus 5.
В играх же однокристальная система ведет себя очень рационально.
Так, в игре Mage and Minions, для которой явно указан рендеринг в несколько потоков, система бросает нагрузку на два ядра, работающих на повышенной частоте. Другая пара ядер обслуживает обильный «холостой ход» системы. Обратите внимание на высокую частоту работы ядер – 1824 МГц, то есть троттлинг налицо, но он крайне незначителен по современным меркам.
В это время графическое ядро почти спит. Подумаешь, игра какая-то…
Попробуем что-то серьезнее. World of Tanks: Blitz должен подойти.
Но ситуация практически не меняется. Два ядра работают почти на максимальной частоте при нагрузке около 65%.
А вот для GPU эта игра оказалась заметно сложнее. Но даже тут потенциал видеоядра не раскрыт и на 70%. Но это не значит, что все игры будут «летать». Спустимся на землю, где смартфоны пока еще не оснащены хотя бы пассивными системами охлаждения. Отлично иллюстрирует эту проблему наш ролик, который был снят для обзора того же Sony Xperia XZ:
Прекрасно видно, что при реальном сценарии весомую лепту вносит троттлинг. Так как GPU держит процессорную часть «в тонусе», а она в свою очередь, как мы уже поняли ранее, подвержена перегреву, то и троттлинг наступает быстро. Графики, которые мы видели выше, были построены при использовании хорошего обдува аппарата, дабы продемонстрировать возможности SoC.
И тут у читателя может возникнуть вопрос, мол, какой смысл от такой высокой производительности, когда гаджет не может ее реализовать из-за перегрева? Для того чтобы ответить на него, стоит обратить внимание на результаты тестирования другого смартфона в той же игре, с тем же чипом и при таком же разрешении:
Та же игра, тот же чип и то же разрешение экрана, но другой смартфон – Xiaomi Mi5. Стабильные 60 кадров в секунду. Дело в том, что у каждого аппарата из-за различного дизайна «внутренностей» может быть самая разная эффективность теплоотвода.
А также «тяжесть» прошивки, разумность планировщика, наличие влагостойкости и другие детали. Как я говорил в начале статьи – не все йогурты чипы одинаково полезны.
Qualcomm Snapdragon 820 получилась очень интересной SoC. С одной стороны, она избавилась от раздражающих проблем системы big.LITTLE и благодаря своей компоновке обеспечивает высокую производительность в самом востребованном режиме. Причем теперь производительность меньше зависит от настроек планировщика, так что даже малоизвестные компании могут создать аппарат на этом чипе, который будет не только выдавать приятные цифры в бенчмарках, но и ощущаться быстрым в работе.
Недостатки же были вполне прогнозируемыми: склонность к троттлингу и не столь эффективная работа с большим количеством потоков. И если последнее может быть особенностью некоторых устройств и/или сценариев использования, то с троттлингом дело обстоит печальнее. И тем страннее выглядит выпуск Snapdragon 821, который является просто разогнанной версией нашего героя. Странный шаг, который напоминает переход с 800 на 801 серию чипов. Частота вроде выше, бенчмарки радуют цифрами, а на деле разницы не ощущается. Но это надо будет проверить, если выдастся возможность.
Плюсы Snapdragon 820:
Минусы SoC: