Найти в Дзене
KIBORG_NeWs

MIT разрабатывает инструмент машинного обучения для ускорения выполнения кода

http://kiborg.club/ Инструмент прогнозирует скорость выполнения кода на чипе: система машинного обучения должна позволить разработчикам повысить эффективность вычислений в ряде приложений. Исследователи Массачусетского технологического института изобрели инструмент машинного обучения, который предсказывает, насколько быстро компьютерные чипы будут выполнять код из различных приложений.   Чтобы заставить код работать максимально быстро, разработчики и компиляторы — программы, которые переводят язык программирования в машиночитаемый код — обычно используют модели производительности, которые запускают код посредством моделирования заданных архитектур чипов. Компиляторы используют эту информацию для автоматической оптимизации кода, а разработчики используют ее для устранения узких мест производительности на микропроцессорах, которые его запускают. Но модели производительности для машинного кода написаны от руки относительно небольшой группой экспертов и не проходят надлежащей проверки
Оглавление

http://kiborg.club/

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

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

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

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

В серии документов конференции исследователи описывают новый конвейер машинного обучения, который автоматизирует этот процесс, делая его более простым, быстрым и точным. В документе (PDF), представленном на Международной конференции по машинному обучению в июне, исследователи представили Ithemal, модель нейронной сети, которая обучается на помеченных данных в форме «базовых блоков» — фундаментальных фрагментов вычислительных инструкций — для автоматического прогнозирования сколько времени требуется данному чипу для выполнения ранее невидимых базовых блоков. Результаты показывают, что Ithemal работает гораздо точнее, чем традиционные модели с ручной настройкой.

Затем на ноябрьском Международном симпозиуме IEEE по характеристике рабочей нагрузки исследователи  представили (PDF) эталонный набор базовых блоков из разных областей, включая машинное обучение, компиляторы, криптографию и графику, которые можно использовать для проверки моделей производительности. Они объединили более 300 000 профилированных блоков в набор данных с открытым исходным кодом под названием BHive. В ходе своих оценок Итемал предсказал, насколько быстро чипы Intel будут выполнять код даже лучше, чем модель производительности, созданная самой Intel. 

В конечном счете, разработчики и компиляторы могут использовать инструмент для генерации кода, который работает быстрее и эффективнее на постоянно растущем числе разнообразных и «черных ящиков» конструкций чипов. «Современные компьютерные процессоры непрозрачны, ужасно сложны и трудны для понимания. Кроме того, невероятно сложно написать компьютерный код, который выполняется для этих процессоров как можно быстрее », — говорит соавтор Майкл Карбин, доцент кафедры электротехники и компьютерных наук (EECS) и исследователь в области компьютерных наук и Лаборатория искусственного интеллекта (CSAIL). «Этот инструмент — большой шаг вперед к полному моделированию производительности этих чипов для повышения эффективности».

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

Изучение данных

По словам Карбина, создание рабочих моделей вручную может быть «черным искусством». Intel предоставляет обширную документацию на более чем 3000 страниц, описывающую архитектуру своих чипов. Но в настоящее время существует лишь небольшая группа экспертов, которые будут создавать модели производительности, которые имитируют выполнение кода на этих архитектурах. 

«Документы Intel не являются ни безошибочными, ни полными, и Intel пропустит некоторые вещи, потому что это собственность», — говорит Мендис. «Однако, когда вы используете данные, вам не нужно знать документацию. Если что-то спрятано, вы можете узнать это непосредственно из данных ».

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

Домен-специфические архитектуры

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

Исследователи установили, что частота ошибок Ithemal сокращается в точности, что означает разницу между прогнозируемой скоростью и реальной скоростью — на 50 процентов по сравнению с традиционными моделями ручной работы. Кроме того, в следующей статье они показали, что частота ошибок Ithemal составляла 10 процентов, в то время как уровень ошибок модели прогнозирования производительности Intel составлял 20 процентов для различных базовых блоков в разных доменах.

По словам Мендиса, этот инструмент облегчает быстрое изучение скоростей для любых новых архитектур микросхем. Например, предметно-ориентированные архитектуры, такие как новый процессор Tensor Processing Unit от Google, используемый специально для нейронных сетей, в настоящее время создаются, но не получили широкого понимания. «Если вы хотите обучить модель какой-то новой архитектуре, вы просто собираете больше данных из этой архитектуры, запускаете ее через наш профилировщик, используете эту информацию для обучения Ithemal, и теперь у вас есть модель, которая предсказывает производительность», — говорит Мендис.

Затем исследователи изучают методы, позволяющие сделать модели интерпретируемыми. Большая часть машинного обучения — это черный ящик, поэтому не совсем понятно, почему конкретная модель сделала свои прогнозы. «Наша модель говорит, что для выполнения базового блока требуется процессор, скажем, 10 циклов. Теперь мы пытаемся выяснить, почему », — говорит Карбин. «Это прекрасный уровень детализации, который был бы удивительным для этих типов инструментов».

Они также надеются использовать Ithemal для дальнейшего повышения производительности Vemal и автоматического повышения производительности.

Ссылки:

«Ithemal: Точная, портативная и быстрая оценка пропускной способности базовых блоков» — Чарит Мендис, Алекс Ренда, Саман Амарасингхе и Майкл Карбин.

«BHive: набор тестов и измерительная основа для проверки базовых моделей производительности x86-64» — Йишен Чен, Аджай Брахмакшатрия, Харит Мендис, Алекс Ренда, Эрик Аткинсон, Ондржей Сикора, Саман Амарасингхе и Майкл Карбин.

«Авто-векторизация компилятора с имитационным обучением» Чарита Мендиса, Кембриджа Янга, Ювена Пу, Самана Амарасингхе и Майкла Карбина.