Инженеры Google Brain обучили алгоритмы создавать дизайн микросхемы. Нейросети справляются с проектированием всего за шесть часов и делают это лучше, чем белковые специалисты.
Современная разработка дизайна микросхем основана на сочетании автоматизированных методов и ручной обработки. Система автоматизированного программирования радиоэлектронной аппаратуры значительно экономит время, но инженерам всё ещё приходится планировать расположение блоков на кристалле. В итоге разработка дизайна микросхемы в зависимости от размера занимает до нескольких недель.
В новом исследовании инженеры Google Brain научили ИИ самостоятельно проектировать микросхемы и сравнили итоговый результат с работами специалистов.
Исследователи применили подход глубинного обучения с подкреплением к проблеме размещения, в котором алгоритмы обучения с подкреплением последовательно размещают макросы на схеме. Когда макросы размещены, на данные воздействуют силовые алгоритмы визуализации графов.
Инженеры сформулировали задачи RL через марковские процессы принятия решений:
«состояние»: каждое возможное размещение элементов на холсте чипа;
«действие»: набор всех местоположений в дискретном пространстве холста, на которые макрос может быть помещён без нарушения жёстких ограничений на плотность или блокировки;
«переход состояния»: распределение вероятностей по следующим состояниям;
«вознаграждение»: вознаграждение равняется нулю для всех действий, за исключением последнего, где вознаграждение представляет собой отрицательную взвешенную сумму длины прокси-провода и перегрузки, с учетом ограничений плотности.
В исходном состоянии s0 у алгоритма есть пустой холст микросхемы и неразмещённый список объектов. sT обозначает микросхему с размещёнными объектами. Таким образом, T — это общее количество объектов, t — промежуточное. На каждом этапе t начинается с st, выполняет действие at, прибывает в новое состояние st+1, получает вознаграждение rt от среды (0 для t < T и отрицательное для t = T). Алгоритм размещает блоки в порядке уменьшения размера.
Через повторяющуюся последовательность состояний, действий и вознаграждений нейросеть постоянно учится и улучшает показатели скорости с каждой новой схемой. Всего в ходе исследования ИИ учился на 10 тысячах дизайнов. Для обновления параметров программы обучения с учётом совокупного вознаграждения за каждое размещение инженеры использовали алгоритм обучения с подкреплением Proximal Policy Optimization.
Исследователи отмечают, что существует множество возможностей для доработки алгоритма, например, оптимизация выбора строк и столбцов при размещении макросов. Инженеры Google Brain планируют заняться его доработкой и в ближайшее время выложить исходный код в открытый доступ.
Несмотря на большое поле для доработок, алгоритм уже генерирует дизайн микросхемы менее чем за шесть часов по сравнению с несколькими неделями у специалистов. Сформированные алгоритмом дизайны либо схожи по качеству с ручной сборкой, либо превосходят её. Кроме того, тайминги у сформированных ИИ дизайнов лучше, чем у дизайнов, созданных специалистами-людьми.
В апреле прошлого года исследователи разместили препринт статьи на arXiv. Итоговые материалы исследования опубликованы 9 июня этого года в статье «A graph placement methodology for fast chip design» в журнале Nature DOI: 10.1038/s41586-021-03544-w.
INSTE
Вот и еще одна ступенька хрупкой вавилонской башни технологий, при утере которой становится невозможно поддерживать даже текущий уровень производства.
AllexIn
Мы уже очень высоко на этой башне.
Даже простой токарный станок(с приемлемой точностью) невозможно повторить не имея других тенхнологий на руках.
Vladislav57
Сразу вспомнился Primitive technology канал. Ждем, пока он сделает приемлемый токарный станок? )
dbalabanov
но, чтобы посмотреть как делают токарный станок, потребуются все вот эти интернеты и т.д.
AllexIn
У которого точность будет хотя бы десятка? Не думаю что это возможно без использования более-менее современных инструментов.
К слову класс С точности должен обеспечивать при прямолинейном движении отклонение в размере не более 0.0016 миллиметра(почти одна тысячная). Обычный станки должны обеспечивать точность не менее 0.01(одна сотая миллиметра).
Там вообще достаточно жестко всё. docs.cntd.ru/document/1200022733
Сделать такой станок работа сложная и по факту итерационная: делаем плохой станок, на нём делаем детали для станка получше, на следующем станке детали для еще лучшего и т.п. То есть нужны те самые технологии. Просто взять и выковать руками детали для нормального станка не выйдет.
Nordicx86
как пример ручное изготовление Ювелирки с точностями порядка 0,1-0,05 мм вполне реально — так что в принципе руками создать станок с точностями до «десяток» из «Руды» реально только нужны годы…
Так что думается мне что — «десятку» — еще реально, в принципе за лет пять-шесть пройти путь с последовательными итерациями увеличения точности…
а вот тоньше — там уровень сложности растет по очень быстро…
da-nie
Был и такой рассказ.