Глубоко внутри чипа Exynos в Galaxy S7 обнаружена нейросеть для предсказания переходов
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. Jiménez) из Рутгерского университета в США).
Ключевым преимуществом предсказателя на нейросети является линейный рост ресурсов при увеличении анализа истории переходов. В классических предсказателях потребление ресурсов растёт экспоненциально при увеличении истории. По этой причине предсказатель на нейросети более эффективен. Уже первая нейросеть из работы Даниэля Хименеза демонстрировала прирост эффективности 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 просто решили похвастаться.