Комментарии 53
На хабре Ализар обнаружил хабр! Не обнаружена, а анонсирована, объявлена, опубликована, раскрыта.
— Нэ-ай-ди кэ-лэ-а-дэ… О!.. Клад — это то, что покладено?
— Не покладено, а положено!
— Нет! Не положено, а закопано!
— Не закопано, а зарыто!
«Клад» (С) мультфильм режиссёра Юрия Бутырина.
Это как?
Не смешите мои тапочки. Айфон популяризировал несколько концептов (тач-управление, магазин приложений, понятие «экосистемы» для устройств). В лучшем случае, раскрутил несколько менее известных/популярных понятий.
А используется он в большинстве случаев для того же, для чего использовались мобилки и раньше — простой телефонный функционал и «потребление контента» (словосочетание-то какое мерзкое).
В бенчмарках Exynos 8890 уступает микросхеме iPhone 6S A9 по производительности на одном ядре, но выигрывает в многоядерных задачах. Теперь стало понятно, за счёт чего.
Ну так и за счет чего в итоге?
Главная проблема у Apple — это энергоэффективность. Им надо быть жутко энергоэффективными, по емкости батарейки iPhone сильно проигрывает тем же Galaxy. Особенно если говорить про iPhone 6s (который не Plus) и SE.
И в результате Apple поставила ставку на большую производительность на один такт. Получились большие жирные ядра на малой частоте. Поскольку ядра жирные — их много не ставят в SoC.
А есть Cortex A57. Ядра по транзисторному бюджету значительно меньше, производительность на такт ниже, но зато их можно запихнуть больше.
Только вот энергопотребление с повышением частоты — не линейная функция, а вот с увеличением количества ядер — вполне себе линейная. В результате, 4 более медленных ядра получаются производительнее. Просто по той причине, что у Apple их два, и чтобы добиться такой же производительности в многопотоке им прийдется значительно поднять частоту (производительность на такт отличается, но не в разы), а это менее выгодно в энергетическом плане, чем поставить по больше ядер.
Ну и можете заменить A57 на M1, суть особо не поменяется. Да, новый процессор прибавил в однопотоке значительно, но основной смысл тот же, производительность на такт — всё ещё меньше, чем у Apple, но ядер больше, поэтому в многопотоке Apple соревноваться тяжело.
P.S. Чисто мои рассуждения, могу быть не прав, так что не пинайте :) С радостью услышу — в чем я ошибаюсь.
Начну с того, что сравнивать две архитектуры нужно уточняя чуть конкретнее. Причины проигрыша в том или ином случае могут быть совершенно разные. Например сравнивать A6 с Cortex A53 вообще некорректно ввиду разной разрядности ядер. Да, в общем-то и А7 с Cortex A57 по «транзисторному бюджету» и энергопотреблению сравнивать тоже бессмысленно, ввиду разного техпроцесса. Возможно вы имели ввиду площадь ядер, тогда сравнение чуть более уместно, но я всё же не думаю что инженеры прямо вот так бездумно «пихают» в чипы два «лишних» ядра. Ещё один довод в пользу неверности вашей теории — если я правильно понимаю, в A7 встроенное графическое ядро, а в SoC на Cortex A5x нужно «запихать» ещё и видеоядро. Впрочем, опять же, если я правильно понимаю текущее состояние отрасли, чаще предпочитают ставить видеопроцессор в отдельном чипе. Надеюсь понятно что в этом случае сравнивать эти SoC вообще бессмысленно.
Да и вообще, где-то может использоваться более быстрая память, дающая процентов 5% прироста. Ну и т.п.
Вообще сравнивать производительность и энергоэффективность двух чипов нужно и с большой оглядкой на ПО. Где-то система неэффективно использует ядра, например, не вовремя отключая оные, или занижая частоту и замедляя вычисления, тогда как выгоднее было бы быстро выполнить вычисления на высокой частоте, ну т.п. Примеры на пальцах, поскольку я не большой знаток, но думаю суть изложена верно.
Напоследок хотелось бы сказать о любителях проводить сравнения подобных систем из разряда «я тут поставил популярный бенч на андроид и другой популярный бенч на яблоко, и безапелляционно заявляю, что X быстрее Y», думаю даже не расписывая разность архитектур используемых ОС и разнообразие алгоритмов всевозможных бенчей, понятна ценность подобных сравнений. К сожалению не многие авторы достаточно разбираются в вопросе чтобы им можно было верить на слово.
По моему убеждению, быстродействие и энергоэффективность систем зависят от такого количества факторов, что объективная оценка конкретно самих чипов потребует как минимум запуска их в отладочных платах с использованием одинаковой среды и одинаковых алгоритмов тестирования. Причём нужно ещё отдельно продумать алгоритмы, чтобы было однозначно понятно у кого лучше именно с многопоточностью и т.п. И это потребует весьма высокой квалификации, полагаю даже что люди, которые в состоянии грамотно это сделать, с очень низкой вероятностью будут писать выкладывать подобные статьи просто так.
Извините за многобукав. В чём не прав, буду рад услышать здравую критику.
Видеопроцессор на отдельном чипе на мобильные устройства никто не ставит.
А техпроцесс является такой же неотъемлемой частью продукта, как архитектура ядра.
Второе ваше утверждение всё же неверно. Первый попавшийся пример:
Kirin 620 и Kirin 650 от HiSilicon, оба на ядре Cortex-A53, только первый 28nm, а второй 16nm.
Я думаю есть какие-то границы, в пределах которых можно масштабировать техпроцесс ядер. Например, очевидно, что если ядро разработанное под процесс 20nm и гигагерцовые частоты изготовить про процессу 100мкм, оно может и не заработать вообще, в силу ряда причин, вроде частоты и размера элементов и т.п. ну и всякие совсем уж технологические нюансы, типа дефектов при травлении для слишком маленьких элемнтов при уменьшении процесса (пример на пальцах)… В общем, я полагаю масштабироваться ядра всё же могут в небольших пределах.
И это интересно.
«Вы слишком непредсказуемы для машины»
Вот тут-то будущий скайнет и размахнётся: никакой программист не сможет сказать, почему нейронная сеть, которая раньше работала нормально, вдруг приняла решение, которого от неё не ждали.
В классических предсказателях потребление ресурсов растёт экспоненциально при увеличении истории. По этой причине предсказатель на нейросети более эффективен.
Вот значит почему мой компьютер за 3 года начал так тормозить…
Не получится ли что ее, грубо говоря, натаскали на сверхбыстрое прохождение известной синтетики?
Для переходов без истории предсказывается, что переход назад будет выполняться (потому что это скорее всего цикл), а переход вперёд не будет выполняться (потому что это скорее всего выход из цикла). Соответственно, компилятор переставляет базовые блоки таким образом, чтобы редко выполняемые переходы вели вперёд, а часто выполняемые — назад.
На x86 есть специальные префиксы, которые указывают именно то, что вы пишете. Только они не давным давно (со времен кажется P4) игнорируются процессорами, потому как аппаратное предсказание уже работает лучше чем доверять этим битам. Например, с помощью бита не получится описать регулярный паттерн, а современные предсказатели его распознают очень хорошо. Ну и даже если это предусмотреть, то эти подсказки статические, а аппаратное предсказание — динамическое, зависящее от конкретной ситуации.
В бенчмарках Exynos 8890 уступает микросхеме iPhone 6S A9 по производительности на одном ядре, но выигрывает в многоядерных задачах.
Особенно актуально для всяких синглтредовых жаваскриптов и игр.
В общем, 8 ядер с нейронными сетями, а айфон (прошлогодний) все равно будет быстрее на невооруженный глаз.
Так алгоритмы и не патентуются.
- В США таки патентуются.
- Реализации патентуются во всем мире.
Описание аппаратуры (электрической схемы) — это программа?
В патентах могут писать не только о методе, но и об устройстве, реализующем определенный набор методов Methods and apparatus (processor comprising… BTB + indirect branch prediction logic… method comprising… storing a target address and a bimodal hysteresis counter… A computing system comprising: a memory to store an instruction corresponding to an indirect branch; and a processor core comprising:… BTB + indirect branch prediction logic) или instruction processing apparatus.
Глубоко внутри чипа Exynos в Galaxy S7 кроется нейросеть для предсказания переходов