14-нанометровая система на кристалле FinFET Exynos 8890

Вчера на специализированной конференции по микроэлектронике Hot Chips в Калифорнии инженеры Samsung впервые показали на презентации чертежи таинственных процессорных ядер M1 (кодовое название Mongoose), которые работает в смартфонах S7 и S7 Edge.

В международных версиях этих Android-смартфонов установлен 14-нанометровая система на кристалле FinFET Exynos 8890. На ней четыре стандартных ядра ARM Cortex-A53 (1,6 ГГц) и четыре проприетарных ядра M1, работающих на частотах 2,3 ГГц и 2,6 ГГц.

Американская группа разработчиков разработала M1 с нуля за три года по собственному проекту. В бенчмарках Exynos 8890 уступает микросхеме iPhone 6S A9 по производительности на одном ядре, но выигрывает в многоядерных задачах.


План ядра M1. Изображение: Samsung

Одна из составляющих ядра M1 — встроенный предсказатель переходов (branch predictor), который предсказывает, будет ли выполнен условный переход в исполняемой программе. Предсказание ветвлений позволяет сократить время простоя конвейера, за счёт предварительной загрузки и исполнения инструкций, которые должны выполниться после выполнения инструкции условного перехода. Прогнозирование ветвлений критически важно, потому что позволяет оптимально использовать вычислительные ресурсы процессора.

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

  • с анализом общей истории переходов (бимодальный счётчик, адаптивный двухуровневый предсказатель, глобальное предсказание перехода);

  • с анализом собственной истории переходов для каждого условного перехода (локальное предсказание перехода);

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

  • предсказатель косвенных переходов, у которых может быть больше двух ветвлений.

Так вот, оказывается, в ядре M1 инженеры Samsung реализовали предсказание ветвлений с помощью нейросети. Это относительно новый тип предсказателя переходов. Впервые его предложил использовать в теоретической работе профессор Лучан Винтан (Lucian Vintan) в 1999 году (научная статья "Towards a High Performance Neural Branch Predictor"). Спустя два года был разработан первый предсказатель переходов на персептронах, который теоретически можно было реализовать в аппаратном обеспечении (научная статья "Fast Path-Based Neural Branch Prediction", автор — профессор Даниэль Хименез (Daniel A. Jimenez) из Рутгерского университета в США).

Ключевым преимуществом предсказателя на нейросети является линейный рост ресурсов при увеличении анализа истории переходов (в классических предсказателях потребление ресурсов растёт экспоненциально при увеличении истории). По этой причине предсказатель на нейросети более эффективен. Уже первая нейросеть из работы Даниэля Хименеза демонстрировала прирост эффективности 5,7% по сравнению с гибридным предсказателем Скотта Макфарлинга.

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

Новейшие идеи для предсказателей переходов исследователи предлагают на конкурсе Championship Branch Prediction, последний из которых проходил в июне 2016 года в рамках симпозиума по компьютерной архитектуре ISCA 2016 в Сеуле.

Несмотря на бурные научные исследования в этой области, до сих пор не было известно ни об одном массовом процессоре, в котором реализован предсказатель переходов на персептронах. Дело не в том, что FinFET Exynos 8890 с ядрами M1 в смартфонах S7 и S7 Edge — первый такой процессор. Просто разработчики Samsung и других компаний держат информацию в секрете, и это можно понять. Предсказатели переходов — один из наиболее охраняемых секретов в полупроводниковой отрасли. Производители часто даже не патентуют свои предсказатели переходов, чтобы не выдать секрета конкурентам, а также потому, что потом трудно будет доказать факт нарушения патента, учитывая сложнейшую логику в современных проприетарных процессорах.


Слайд из презентации Samsung на конференции Hot Chips. На нём изображён модуль предсказателя переходов с использованием нейросети. Изображение: Samsung

Samsung — первая компания, которая официально объявила об использовании нейросети в своём предсказателе переходов. Эксперты в микроэлектронной индустрии говорят, что похожая технология, по всей видимости, используется в предсказателях Jaguar и Bobcat в чипах AMD. Неудивительно, что нынешний вице-президент Samsung и директор по разработке процессоров Samsung, глава научно-исследовательского центра Samsung в Остине (Техас) Брэд Берджесс (Brad Burgess) раньше возглавлял проект по разработке микроархитектуры Bobcat в компании AMD.

Вполне вероятно, что Intel и AMD втихую используют предсказатели на персептронах в десктопных и серверных процессорах. Как уже было сказано, эта информация держится в секрете и даже не патентуется.

Samsung первым нарушил обет молчания. Возможно, разработчики микроархитектуры Exynos просто решили похвастаться.
Поделиться с друзьями
-->

Комментарии (53)


  1. amarao
    23.08.2016 15:31
    +12

    Желтизна.

    На хабре Ализар обнаружил хабр! Не обнаружена, а анонсирована, объявлена, опубликована, раскрыта.


    1. Boctopr
      23.08.2016 16:13
      -4

      — Ты читай! Читай!
      — Нэ-ай-ди кэ-лэ-а-дэ… О!.. Клад — это то, что покладено?
      — Не покладено, а положено!
      — Нет! Не положено, а закопано!
      — Не закопано, а зарыто!

      «Клад» (С) мультфильм режиссёра Юрия Бутырина.


    1. mukizu
      23.08.2016 16:14
      +3

      По-моему это просто дословный перевод http://www.theregister.co.uk/2016/08/22/samsung_m1_core/ «spotted deep inside»


      1. amarao
        23.08.2016 16:33
        +4

        Желтушный перевод желтушного заголовка.


        1. mphys
          23.08.2016 19:24
          +4

          Желутшным редактором


          1. kumbr_87
            23.08.2016 22:36
            +2

            Теперь Желтушного сайта


    1. Siper
      23.08.2016 16:37
      +32

      «Ученые были в шоке когда это узнали. Galaxy S7 думает как человек и предсказывает будущее.»


      1. BubaVV
        23.08.2016 19:05

        Без регистрации и СМС


      1. romxx
        23.08.2016 20:17
        +3

        "… вы не поверите, что случилось дальше!"


        1. PowerMetall
          24.08.2016 12:04
          +3

          ШОК!!! Инженеры фирмы Samsung даже и не подозревали, что...
          [ПРОДОЛЖЕНИЕ ДОСТУПНО ТОЛЬКО ПОДПИСЧИКАМ]


  1. Leo7777
    23.08.2016 16:33

    Сейчас очень модно говорить о нейросетях


  1. nikitastaf1996
    23.08.2016 16:36
    -2

    И ведь это только «iphone» среди Нокий и Моторолл.Очень интересной вещью может стать neural net based operating system которая постоянно обучается и подстраивается под поведение пользователя.


    1. GreyhoundWeltall
      23.08.2016 16:50

      И ведь это только «iphone» среди Нокий и Моторолл.

      Это как?


      1. nikitastaf1996
        23.08.2016 16:56
        -1

        Читать как — начало.Iphone «возглавил» революцию смартфонов.


        1. gsaw
          23.08.2016 17:21
          -1

          не революцию, а восстание


        1. GreyhoundWeltall
          23.08.2016 18:15
          -3

          Возглавил? Революцию? Смартфонов?
          Не смешите мои тапочки. Айфон популяризировал несколько концептов (тач-управление, магазин приложений, понятие «экосистемы» для устройств). В лучшем случае, раскрутил несколько менее известных/популярных понятий.

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


  1. EmoCoder
    23.08.2016 17:05
    +4

    В бенчмарках Exynos 8890 уступает микросхеме iPhone 6S A9 по производительности на одном ядре, но выигрывает в многоядерных задачах. Теперь стало понятно, за счёт чего.


    Ну так и за счет чего в итоге?


    1. AllexIn
      23.08.2016 17:36
      -2

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


      1. EmoCoder
        23.08.2016 17:44
        +15

        А какое отношение имеет предсказание переходов к многопоточности? (:


        1. Portnov
          23.08.2016 19:07
          +1

          Гипотеза: это связано через переключение задач при исполнении на одном ядре. Предиктор, скорее всего, анализирует набор инструкций, которые сейчас в конвейере процессора (если бы он читал инструкции прямо из ОЗУ, он был бы слишком тормозным). А когда происходит переключение задач, конвейер процессора сбрасывается (по крайней мере раньше так было, думаю что и сейчас так же). Соответственно, если задачи часто переключаются, то в среднем команд в конвейере меньше, и у предиктора меньше данных для работы, и он хуже работает. Зато, если предиктор особо умный, то он может своей эффективностью компенсировать снижение производительности от частого переключения задач.


          1. 1_admin_1
            23.08.2016 21:20
            +3

            Глупости. Прошлый Exynos, который на Cortex A53+A57 тоже был медленнее в однопотоке, и быстрее в многопотоке, чем Apple Ax процессоры. И там никаких нейросетей не было.

            Главная проблема у Apple — это энергоэффективность. Им надо быть жутко энергоэффективными, по емкости батарейки iPhone сильно проигрывает тем же Galaxy. Особенно если говорить про iPhone 6s (который не Plus) и SE.
            И в результате Apple поставила ставку на большую производительность на один такт. Получились большие жирные ядра на малой частоте. Поскольку ядра жирные — их много не ставят в SoC.

            А есть Cortex A57. Ядра по транзисторному бюджету значительно меньше, производительность на такт ниже, но зато их можно запихнуть больше.

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

            Ну и можете заменить A57 на M1, суть особо не поменяется. Да, новый процессор прибавил в однопотоке значительно, но основной смысл тот же, производительность на такт — всё ещё меньше, чем у Apple, но ядер больше, поэтому в многопотоке Apple соревноваться тяжело.

            P.S. Чисто мои рассуждения, могу быть не прав, так что не пинайте :) С радостью услышу — в чем я ошибаюсь.


            1. Psychosynthesis
              24.08.2016 01:02
              +1

              Я тоже не претендую на роль специалиста, но постараюсь чуть-чуть дополнить ваш комментарий.

              Начну с того, что сравнивать две архитектуры нужно уточняя чуть конкретнее. Причины проигрыша в том или ином случае могут быть совершенно разные. Например сравнивать A6 с Cortex A53 вообще некорректно ввиду разной разрядности ядер. Да, в общем-то и А7 с Cortex A57 по «транзисторному бюджету» и энергопотреблению сравнивать тоже бессмысленно, ввиду разного техпроцесса. Возможно вы имели ввиду площадь ядер, тогда сравнение чуть более уместно, но я всё же не думаю что инженеры прямо вот так бездумно «пихают» в чипы два «лишних» ядра. Ещё один довод в пользу неверности вашей теории — если я правильно понимаю, в A7 встроенное графическое ядро, а в SoC на Cortex A5x нужно «запихать» ещё и видеоядро. Впрочем, опять же, если я правильно понимаю текущее состояние отрасли, чаще предпочитают ставить видеопроцессор в отдельном чипе. Надеюсь понятно что в этом случае сравнивать эти SoC вообще бессмысленно.

              Да и вообще, где-то может использоваться более быстрая память, дающая процентов 5% прироста. Ну и т.п.

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

              Напоследок хотелось бы сказать о любителях проводить сравнения подобных систем из разряда «я тут поставил популярный бенч на андроид и другой популярный бенч на яблоко, и безапелляционно заявляю, что X быстрее Y», думаю даже не расписывая разность архитектур используемых ОС и разнообразие алгоритмов всевозможных бенчей, понятна ценность подобных сравнений. К сожалению не многие авторы достаточно разбираются в вопросе чтобы им можно было верить на слово.

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

              Извините за многобукав. В чём не прав, буду рад услышать здравую критику.


              1. encyclopedist
                24.08.2016 13:22

                Видеопроцессор на отдельном чипе на мобильные устройства никто не ставит.


                А техпроцесс является такой же неотъемлемой частью продукта, как архитектура ядра.


                1. Psychosynthesis
                  24.08.2016 17:08
                  +1

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

                  Второе ваше утверждение всё же неверно. Первый попавшийся пример:
                  Kirin 620 и Kirin 650 от HiSilicon, оба на ядре Cortex-A53, только первый 28nm, а второй 16nm.

                  Я думаю есть какие-то границы, в пределах которых можно масштабировать техпроцесс ядер. Например, очевидно, что если ядро разработанное под процесс 20nm и гигагерцовые частоты изготовить про процессу 100мкм, оно может и не заработать вообще, в силу ряда причин, вроде частоты и размера элементов и т.п. ну и всякие совсем уж технологические нюансы, типа дефектов при травлении для слишком маленьких элемнтов при уменьшении процесса (пример на пальцах)… В общем, я полагаю масштабироваться ядра всё же могут в небольших пределах.


        1. AllexIn
          23.08.2016 20:44
          +1

          Своим сарказмом вы намекаете на то, что каждому потоку выделяется отдельное ядро? Ну так нет. Потоки еще и скачут между ядрами постоянно. И в таких условиях предсказение переходов — нетривиальная задача имеющая важное значение для производительности.


          1. kosmos89
            23.08.2016 21:56
            +1

            О госпади! Переключение потоков происходит не больше сотни раз в секунду. Сброс конвейера сто раз в секунду — это ничто.


            1. h31
              30.08.2016 15:16

              В Линуксе — от 100 раз в секунду до 1000. Настраивается при сборке.


              1. kosmos89
                30.08.2016 16:04
                +1

                На частоте 1ГГц один сборс на один миллион инструкций? При длине конвейера даже 20 стадий, это падение на 0,002%. Какие мелочи!


    1. nmi77
      24.08.2016 09:29

      Возможно за счет того что ядер в 4 раза больше.


  1. dimkss
    23.08.2016 17:08
    +7

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


    1. dipsy
      23.08.2016 17:28
      +15

      Особенно интересно будет это отлаживать. И ещё ситуация «у меня на машине всё работает» приобретает новый смысл, просто у вас процессор с IQ ниже среднего.


      1. h31
        23.08.2016 17:53
        +3

        Неправильно предсказанный переход — вполне штатная ситуация. То есть от того, что решит нейросеть, в данном случае будет зависеть только производительность. Более того, это вообще не проблема, потому что в обычных процессорах (без жесткого real-time) производительность зависит от такого количества факторов, что неправильное предсказание переходов будет каплей в море.


      1. myldy
        24.08.2016 12:45
        +1

        Или ситуация:
        «Вы слишком непредсказуемы для машины»


      1. Saffron
        26.08.2016 10:21

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


    1. tmin10
      23.08.2016 22:10
      +1

      Вот тут-то будущий скайнет и размахнётся: никакой программист не сможет сказать, почему нейронная сеть, которая раньше работала нормально, вдруг приняла решение, которого от неё не ждали.


      1. Mad__Max
        26.08.2016 01:42

        Ну так и программистов особо не будет. Будут в основном «тренеры» (специалисты занимающиеся обучением нейронных сетей).


  1. DimasSup
    23.08.2016 17:53
    +2

    В классических предсказателях потребление ресурсов растёт экспоненциально при увеличении истории. По этой причине предсказатель на нейросети более эффективен.

    Вот значит почему мой компьютер за 3 года начал так тормозить…


    1. gsaw
      23.08.2016 20:36
      +4

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


  1. Celtis
    23.08.2016 19:02
    +3

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


    1. xRay
      24.08.2016 00:39

      Интересный вопрос с учетом того что уже ловили Samsung (Samsung Galaxy S4) на подобных фокусах для бенчмарков


  1. NeoCode
    23.08.2016 19:14
    +1

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


    1. Byteman
      23.08.2016 19:18
      +2

      VLIW?


    1. tyomitch
      24.08.2016 00:03
      +1

      Этот бит уже есть — это бит знака в поле смещения.
      Для переходов без истории предсказывается, что переход назад будет выполняться (потому что это скорее всего цикл), а переход вперёд не будет выполняться (потому что это скорее всего выход из цикла). Соответственно, компилятор переставляет базовые блоки таким образом, чтобы редко выполняемые переходы вели вперёд, а часто выполняемые — назад.


    1. encyclopedist
      24.08.2016 13:33
      +1

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


      1. tyomitch
        24.08.2016 15:29
        +2

        Лучше всего работает сочетание обоих подходов: если перехода нет в истории — пользоваться статическим предсказанием, если есть в истории — динамическим.


  1. Nagg
    23.08.2016 20:12
    +3

    В бенчмарках Exynos 8890 уступает микросхеме iPhone 6S A9 по производительности на одном ядре, но выигрывает в многоядерных задачах.

    Особенно актуально для всяких синглтредовых жаваскриптов и игр.
    В общем, 8 ядер с нейронными сетями, а айфон (прошлогодний) все равно будет быстрее на невооруженный глаз.


  1. VioletGiraffe
    24.08.2016 10:57
    -2

    Т. е. RISC-процессор ARM превращается в суперскалярный Интел х86 с ОоО? Окей.


    1. encyclopedist
      24.08.2016 13:25
      +2

      Это как вы такой вывод сделали? RISC никак не противоречит суперскалярности, out-of-order, предсказанию переходов и т.д.


      1. Mad__Max
        26.08.2016 01:45

        Тем более Интел х86 остается х86 в основном снаружи. А внутри уже давным давно что-то RISC-подобное.


  1. Saffron
    25.08.2016 09:23

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

    Так алгоритмы и не патентуются.


    1. encyclopedist
      25.08.2016 18:00
      +1

      1. В США таки патентуются.
      2. Реализации патентуются во всем мире.


      1. Saffron
        25.08.2016 19:33

        В смысле, реализации алгоритмов? Реализация — это программа, её защищает авторское право, а не патент. А патенты на программы бывают только в США, где взятки (лобби) победили здравый смысл.


        1. a5b
          26.08.2016 04:49
          +1

          Описание аппаратуры (электрической схемы) — это программа?
          В патентах могут писать не только о методе, но и об устройстве, реализующем определенный набор методов 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.