![image](https://habrastorage.org/webt/7i/eg/cp/7iegcp-dglo2qt6gngepyzroiru.jpeg)
Исследователи Массачусетского технологического института изобрели инструмент машинного обучения, который предсказывает, насколько быстро компьютерные чипы будут выполнять коды из различных приложений.
Чтобы заставить код работать максимально быстро, разработчики и компиляторы — программы, которые переводят язык программирования в машиночитаемый код — обычно используют модели производительности, которые запускают его путем моделирования заданных архитектур чипов.
Компиляторы используют эту информацию для автоматической оптимизации кода, а разработчики применяют ее для устранения узких мест производительности на микропроцессорах. Но модели производительности для машинного кода написаны от руки относительно небольшой группой экспертов и не проходят надлежащей проверки. Как следствие, смоделированные измерения производительности часто отклоняются от реальных результатов.
Исследователи описывают новую схему машинного обучения, которая автоматизирует этот процесс, делая его более простым, быстрым и точным. В документе, представленном на Международной конференции по машинному обучению в июне, исследователи показали Ithemal, модель нейронной сети, которая обучается на помеченных данных в форме «базовых блоков» —фундаментальных фрагментов вычислительных инструкций — чтобы автоматически предсказать, как много времени затратит данный чип для их выполнения. Результат показал, что Ithemal работает гораздо точнее, чем традиционные модели с ручной настройкой.
Затем на ноябрьском международном симпозиуме IEEE исследователи представили эталонный набор базовых блоков из различных областей, включая машинное обучение, компиляторы, криптографию и графику, которые можно использовать для проверки моделей
производительности. Они объединили более 300 000 профилированных блоков в набор данных с открытым исходным кодом под названием BHive. Ithemal предсказала, насколько быстро чипы Intel будут выполнять код даже лучше, чем модель производительности, созданная самой Intel. По последним данным, частота ошибок Ithemal составляла 10%, в то время как частота ошибок модели прогнозирования производительности Intel составляла 20%.
В конечном счете, разработчики и компиляторы могут использовать инструмент для генерации кода, который работает быстрее и эффективнее на постоянно растущем числе разнообразных конструкций чипов. «Современные компьютерные процессоры ужасно сложны и трудны для понимания. Кроме того, невероятно сложно написать компьютерный код, который выполняется для этих процессоров максимально быстро. Этот инструмент — большой шаг вперед к полному моделированию производительности этих чипов для повышения эффективности», — говорит соавтор работы Майкл Карбин, доцент кафедры электротехники и компьютерных наук и исследователь в области компьютерных наук и Лаборатория искусственного интеллекта.
В документе, представленном на конференции NeurIPS в декабре, команда предложила новый метод для автоматической генерации оптимизаций компилятора. В частности, он автоматически генерирует алгоритм, называемый Vemal, преобразующий определенный код в векторы, которые можно использовать для параллельных вычислений. Vemal превосходит созданные вручную алгоритмы векторизации, используемые в компиляторе LLVM — популярном в отрасли компиляторе.
В процессе обучения модель Ithemal анализирует миллионы автоматически профилируемых базовых блоков, чтобы точно узнать, как различные архитектуры чипов будут выполнять вычисления. Важно отметить, что Ithemal принимает необработанный текст в качестве входных данных и не требует ручного добавления функций к входным данным.
Этот инструмент облегчает быстрое изучение скоростей для любых новых архитектур микросхем. Например, предметно-ориентированные архитектуры, такие как новый процессор Tensor Processing Unit от Google, используемый специально для нейронных сетей, в настоящее время еще не получили широкого понимания. «Если вы хотите обучить модель какой-то новой архитектуре, вы просто собираете больше данных из этой архитектуры, пропускаете через наш профилировщик, используете эту информацию для обучения Ithemal, и теперь у вас есть модель, которая предсказывает производительность», — говорят авторы проекта.
Теперь исследователи изучают методы, позволяющие сделать модели интерпретируемыми. Они также надеются использовать Ithemal для дальнейшего повышения производительности Vemal.
См. также: «Ученые МТИ разработали модель, которая объясняет силу узла»