Новый инструмент машинного обучения предсказывает, сколько времени требуется данному компьютерному чипу для выполнения определенного кода. Он более точен, чем собственная модель прогнозирования Intel.

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

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

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

Они описали этот новый конвейер машинного обучения в трех докладах на конференции:

1. Ithemal : Модель нейронной сети обучается основным блокам маркированных данных (блокам вычислительных инструкций). Затем она предсказывает, сколько времени займет данный микропроцессор для запуска необработанных базовых блоков.

2. BHive : для проверки Ithemal исследователи создали эталонный набор базовых блоков из разных областей, таких как криптография, компиляторы, машинное обучение и графика. Они собрали более 300 000 блоков и поместили их в BHive, набор данных с открытым исходным кодом.

Тестирование показало, что Ithemal смог предсказать, насколько быстро процессоры Intel будут выполнять код более точно, чем модель производительности, разработанная самой Intel.

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

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

Использование данных вместо документации чипа

Корпорация Intel предоставляет подробную документацию для объяснения архитектуры своего чипа. Но только некоторые эксперты-разработчики создают модели производительности для моделирования выполнения кода на этих архитектурах. А поскольку эти чипы являются проприетарными, в документации Intel опускает определенную информацию.

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

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

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

Во второй статье исследователи продемонстрировали, что Ithemal работает лучше, чем обычные модели ручной работы. В то время как коэффициент ошибок модели прогнозирования Intel составил 20%, коэффициент ошибок Ithemal составил 10% на различных базовых блоках в различных областях.

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

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

Источник