С развитием таких областей специализированных вычислений, как искусственный интеллект, связь 5G и облачные вычисления, компьютерная архитектура для таких областей также вступила в новый золотой век. Двумя важными кистями, характеризующими этот золотой век, являются аппаратные средства (чипы) с открытым исходным кодом и гибкая разработка: открытый исходный код позволяет снизить порог проектирования чипов, а гибкая разработка - сократить цикл разработки.
Говоря о микросхемах с открытым кодом, можно сказать, что RISC-V является представителем открытого кода. В прошлом году Международный фонд RISC-V перенес свою штаб-квартиру в Швейцарию. В настоящее время он насчитывает более 1000 членов и около 200 корпоративных организаций. Китай занимает в нем очень важное место, на долю китайских компаний приходится более 20%, а 9 из 19 членов совета директоров - выходцы из Китая.
По мере того как открытый набор инструкций RISC-V становится все более востребованным в промышленности, концепция микросхем с открытым кодом постепенно входит в поле зрения людей и привлекает внимание и инвестиции во всем мире. В международном масштабе уже на флагманской конференции по компьютерной архитектуре ISCA's Vision Symposium 2019 многие академики Американской инженерной академии, включая лауреата премии Тьюринга профессора Дэвида Паттерсона, а также представители Массачусетского технологического института, Калифорнийского университета в Беркли, UCSD, Стэнфорда, Google, эксперты ведущих университетов, предприятий и правительственных агентств, таких как Nvidia и DARPA, сосредоточились на передовых направлениях "гибкого открытого оборудования для вычислений следующего поколения", включая набор инструкций, цепь инструментов EDA с открытым кодом, процесс проектирования, синтез высокого уровня, формальную проверку.
Каковы же инновационные возможности чипов с открытым кодом? Об этом на техническом форуме рассказал Бао Юнган, заместитель директора Института вычислительных технологий Китайской академии наук: RISC-V относится к открытому набору инструкций. Фактически, это открытая инструкция по эксплуатации. Например, руководство по эксплуатации процессора Intel насчитывает более 5000 страниц, руководство по эксплуатации процессора ARM - более 2000 страниц, а руководство по эксплуатации RISC-V - всего более 200 страниц. Если набор инструкций превращается в реальную архитектуру, то в это время будет создано большое количество проектной документации, которая может быть обнародована; в соответствии с проектной документацией, а затем превращенной в исходный код, исходный код также может быть обнародован; цепочка EDA-инструментов может превратить открытый исходный код в макет микросхемы, тогда EDA-инструменты проектирования также могут быть открытыми.
Как известно, мировой рынок EDA монополизирован тремя крупнейшими производителями - Cadence, Synopsys и Mentor (в январе 2021 года переименован в Siemens EDA). Их крупномасштабная и полная линейка продуктов может обеспечить комплексные решения для всего технологического процесса. Напротив, доля отечественных EDA-инструментов на рынке Китая составляет менее 5%, а на мировом рынке - всего 0,2%. Более того, отечественные EDA-компании имеют небольшие масштабы, единичные продукты, в основном "точечные" инструменты, и могут предложить лишь частичные решения. Одному EDA-инструменту сложно удовлетворить требования разработчика на протяжении всего процесса проектирования ИС, а переключение между различными инструментами создает риски для целостности данных. В результате рынок все чаще обращается к платформам с открытым исходным кодом.
Цзе Бивей (Jie Biwei) из лаборатории Pengcheng и Института вычислительных технологий Китайской академии наук считает, что EDA с открытым кодом является важной гарантией поддержки экологии открытых микросхем. Многочисленный успешный опыт показывает, что открытый код и открытость являются необходимым фундаментом для построения процветающей технологической и промышленной экологии. Например, операционная система Linux поддерживает всю экосистему открытого кода; другой пример - мобильная операционная система Android. Несмотря на то что сейчас она имеет закрытый исходный код, именно открытый исходный код послужил отправной точкой для унификации всей экосистемы мобильного Интернета, за исключением iOS; в области искусственного интеллекта Caffe, TensorFlow, Pytorch и PaddlePaddle можно назвать краеугольными камнями всей экосистемы технологий ИИ.
Инструменты EDA с открытым исходным кодом могут снизить порог проектирования микросхем, например, уменьшить затраты на рабочую силу, ИС и EDA для проектирования микросхем. Это также может дать хорошие идеи для развития фундаментальных научных исследований и подготовки талантливых специалистов в области EDA, будь то компании, университеты, академические исследовательские институты или отдельные энтузиасты в области микросхем и EDA. Если EDA с открытым кодом сможет объединить многочисленные силы, это поможет нашей стране ускоренными темпами догнать передовой международный уровень.
Однако фундамент программного обеспечения EDA в нашей стране все еще относительно слаб, а в области открытого кода он практически отсутствует. Открытое ПО EDA по-прежнему сталкивается со многими проблемами: мало пользователей, мало участников, нечеткая структура структуры; некоторые решения также обсуждаются на форуме:
(1) Мало пользователей: Качество инструментов EDA с открытым исходным кодом далеко от коммерческих, а количество пользователей очень ограничено. Решение проблемы заключается в повышении качества инструментов и акценте на проверку проекта в производственных условиях. То есть EDA-инструменты с открытым кодом должны не только оставаться в научных статьях и программных кодах, но и объединяться с другими точечными инструментами, образуя цепочку инструментов для поддержки полной верификации чипа и получения эффективной обратной связи с пользователем. Например, компания Magic в США провела несколько верификаций, и в статье приводятся реальные данные тестирования микросхем.
(2) Мало участников: Область EDA относительно нишевая, а сообщество разработчиков открытого кода еще более малочисленно. Основными участниками таких инструментов с открытым исходным кодом, как Yosys, abc, magic и OpenROAD, являются в основном около 10 человек. В связи с особенностями дисциплины EDA, участники разработки EDA с открытым кодом должны обладать знаниями в области CS, математики, EE и MicroE одновременно, а технический порог является относительно высоким. Разработка каждого инструмента EDA с открытым кодом не является открытой. В основном это внутренняя команда определенного учебного заведения, исследовательского института, компании. Внешних участников мало, и участвовать в разработке сложно. Решение состоит в том, чтобы полностью разобрать, абстрагировать и описать технические проблемы EDA, классифицировать их в языковых выражениях, понятных в профессиональных областях, таких как математика, алгоритмы и высокая производительность, и мобилизовать силы сообщества в различных дисциплинах.
(3) Нечеткая структура структуры: Несогласованность кода и низкий уровень повторного использования являются общей проблемой программного обеспечения с открытым кодом. Однако сильная привязка инструментов и алгоритмов EDA с открытым исходным кодом делает эту проблему еще более заметной. Разработка новых алгоритмов обычно требует переписывания кода, что теряет смысл открытого кода. Существует два варианта решения проблемы. Во-первых, модульное проектирование, которое начинается с проектирования базового каркаса, а затем переходит к слою алгоритмов, абстрагируя общие операции и форматы данных, исследуя правила итеративной реконструкции из кода и формируя упорядоченный, эффективный и модульный базовый каркас. Такая модульная конструкция также способствует ускорению процесса проектирования EDA с помощью архитектуры распределенных параллельных вычислений. Во-вторых, стандартизация абстракций. Использование отличных концепций проектирования компиляторов, таких как MulTI-level Intermediate RepresentaTIon (MLIR), позволяет разделить весь процесс проектирования (особенно front-end проектирование) на несколько абстрактных уровней, чтобы специалисты в различных областях могли сосредоточиться на соответствующих абстрактных уровнях. В то же время за счет компиляции нескольких уровней можно открыть цепочку инструментов EDA, выполнить быструю и удобную полнопроцессную верификацию. Таким образом, даже точечный инструмент может быть гибко подключен к цепочке инструментов EDA с открытым исходным кодом через стандартизированный формат преобразования для полной проверки производительности и качества инструментов, разработанных самостоятельно. В настоящее время эту тенденцию формируют североамериканские промышленные и научные круги.
Что касается проекта EDA с открытым исходным кодом, то он не имеет значения, от низкого (110 нм) до высокого (55 нм, 40 нм и даже 28 нм) технологического процесса. От университетских приложений на уровне преподавания до корпоративных приложений на уровне продуктов, от небольших ASIC-чипов до более масштабных SoC-проектов - необходимо придерживаться стратегии сочетания исследований и приложений, при этом движущей силой должна быть практичность, а применение исследований и применение исследований к применению. Разделим один за другим пять аспектов: цепочка инструментов, точечный инструмент, эталонный тестовый набор, демонстрационное приложение и библиотека открытых процессов промышленного уровня.
Успехи исследований в промышленности
Стоит отметить, что на конференции ASPLOS 2021 доктор Крис Латтнер (один из главных инициаторов и авторов проекта LLVM и автор компилятора Clang), который недавно перешел из Google Brain в звездную RISC-V компанию. Крис Латтнер (один из главных инициаторов и авторов проекта LLVM и автор компилятора Clang), недавно перешедший из Google Brain в звездную RISC-V-компанию SiFive, выступил с докладом The Golden Age of Compiler Design in an Era of HW/SW Co-design, предложил новую унифицированную структуру EDA (Electronic Design AutomaTIon) на основе технологии компиляции MLIR и разработал цепочку инструментов для EDA типа TensorFlow или PyTorch в программном обеспечении, обеспечив полную и гибкую инфраструктуру. Проект CIRCT совпадает с проектом MLIR, и в нем легко сформировать экологическую согласованность проектирования аппаратуры и компиляции ПО.
На пути к открытому программному обеспечению EDA отечественные ученые и промышленники стремятся найти подходящие позиции, чтобы внести свой вклад в развитие EDA с открытым кодом.
В области микросхем с открытым исходным кодом Институт вычислительных технологий Академии наук Китая в 2019 году запустил такие проекты, как процессорные микросхемы RISC-V и операционные системы RISC-V native, а также создал технологическую систему микросхем с открытым исходным кодом и экономическими преимуществами на отечественном 28-нм техпроцессе. Кроме того, для проектирования микросхем с открытым исходным кодом они изучают возможности EDA. На основе существующих инструментов с открытым исходным кодом был разработан процесс проектирования RTL на GDS2 на языке Python; в августе прошлого года пять студентов Национального университета науки и технологий в течение двух лет использовали инструменты EDA с открытым исходным кодом. Спроектирован чип Guohu-1 и реализована его запись.
Китайская академия наук также разработала AgileServe - облачную платформу для быстрого проектирования чипов, которая объединяет различные элементы с открытым исходным кодом для поддержки пользователей в быстрой настройке процессорных чипов и разработке программного обеспечения, а также для снижения порога проектирования чипов. Для студентов проектирование микросхем может осуществляться в любое время и в любом месте, а для преподавателей - в режиме онлайн.
Чэнь Ган, исполнительный заместитель генерального директора Nanjing Integrated Circuit Design Service Industry Innovation Center Co. (далее - EDA Innovation Center), представил использование методов открытого кода для создания отечественной универсальной базы EDA (openEDI). Учитывая, что отечественные точечные средства EDA являются независимыми, и создавая общую базу для отечественной экологии, предполагается, что точечные средства будут связаны между собой. Целью исследований и разработок универсальной базы EDA является поддержка всех отечественных средств EDA, объединение полного набора цепочек средств EDA и превращение в отечественную экологическую универсальную базу. На рисунке ниже показана архитектура универсальной базы EDA. Нижняя часть - это слой данных, на котором размещены все базы и модели данных EDA в памяти и на диске, включая различные модули парсера, модули пользовательского интерфейса и т.д. Верхний слой - это общий слой алгоритмов и вычислительный каркас.
Линь Ибо из Пекинского университета представил на встрече известный проект "Deep Learning Assisted Place and Route Optimization". Он рассказал об использовании глубокого обучения для улучшения традиционных алгоритмов определения мест и маршрутов. При этом необходимо использовать инструменты для определения мест и маршрутов с открытым исходным кодом, иначе это будет очень сложно. Сложно получить образцы глубокого обучения. В дальнейшем они будут продолжать совершенствовать алгоритм, повышать устойчивость и обобщающую способность. Ожидается, что может быть выпущен открытый набор данных EDA, такой как ImageNet, чтобы привлечь взаимную конкуренцию и развитие академических и промышленных кругов.
Янь Хао из Национального исследовательского центра технологий проектирования систем ASIC Юго-Восточного университета рассказал о разработке методологии проектирования широковольтных ближних порогов и EDA с открытым кодом. Он отметил, что техническая проблема EDA-инструментов заключается в разработке алгоритмов моделирования и оптимизации отклонений, обусловленных развитием технологических процессов и размеров травления. Он отметил, что при проведении исследований самой большой проблемой является необходимость тратить много энергии на воспроизведение чужого кода, поэтому они также сотрудничают с отечественными EDA-компаниями, такими как NiiCEDA, и активно инвестируют в разработку открытых средств анализа временных характеристик.
Чжу Жуфэй из университета Нинбо поделился результатами исследований в области средств автоматического синтеза в многологическом домене. По его словам, логический синтез заключается в преобразовании всех описаний цифровых схем, разработанных на RTL-уровне, в соединения блочных схем в заданной библиотеке процессов при условии удовлетворения ограничений. Логический синтез включает в себя в основном три этапа: трансляцию, оптимизацию и технологическое отображение. Он отметил, что комплексные методы, разработанные на основе различных логических комплектов, применимы к различным сценариям. Все существующие средства EDA разработаны на основе традиционной булевой логики. Новые типы операторов могут дать больше возможностей, например, преобразование полярности. Рида-Мюллера, дуальная логика TB и RM и т.д. Что касается EDA с открытым кодом, то он отметил тенденцию развития средств логического синтеза: 1. ИИ для EDA, использование методов ИИ для вывода порядка оптимизационных преобразований логического синтеза, так что инженеры без опыта могут получить сценарий оптимизации; 2. EDA для ИИ, использование логических операций в виде таблицы поиска для достижения той же цели, что и обучающий вес нейронной сети; 3. Оптимальное решение, заданная цифровая схема, существующий метод сильно зависит от SAT-решателя для получения минимального количества узлов, минимальной глубины логики и т.д. Отличное решение, но сам SAT-решатель является эвристическим алгоритмом, и моделирование цифровой схемы может помочь SAT выполнить более эффективный поиск; 4. Technology Enabler, разработка новых методов логической абстракции и помощь в оценке новых процессов, таких как двумерные материалы и разработка. Независимо от обучающего набора, оптимизация поиска и новые модели получат пользу от экосистемы с открытым исходным кодом.
Куда движется EDA с открытым кодом?
Экосистема EDA с открытым кодом сталкивается с множеством трудностей, начиная с 0 и заканчивая 1. Как преодолеть замкнутый круг экосистемы EDA с открытым кодом? Как сохранить устойчивое развитие экологии? Как предотвратить экологические риски, такие как выход из строя ленты, утечка IP и патентов? Куда двигаться в будущем? По этим вопросам присутствующие ученые и эксперты высказали различные мнения и провели интенсивные и содержательные дискуссии.
От 0 до 1: экология EDA с открытым кодом начинается с академического мира
В отличие от традиционного ПО с открытым кодом, структура данных, качество кода и алгоритмы ПО EDA с открытым кодом исключительно профессиональны, а группа пользователей невелика, что ограничивает масштабы сообщества разработчиков ПО с открытым кодом. На протяжении всей истории человечества высокотехнологичные компании Силиконовой долины, как звезды и моря, начинали с университетских инноваций. С EDA дело обстоит точно так же. Сначала нужно вырастить первую группу пользователей EDA с открытым кодом в колледжах и университетах, включая преподавателей и студентов, позволить им использовать инструменты с открытым кодом инновационными способами, а затем, благодаря постоянному использованию и итеративному совершенствованию инструментов, они станут пригодными для использования в будущем.
Однако продвижение и поддержание замкнутой экосистемы EDA из академической среды также сопряжено с определенными трудностями. Наиболее важным вопросом является развитие участия академических кругов в EDA с открытым кодом и постоянное сопровождение проектов с открытым кодом. С утилитарной точки зрения, когда университетские ученые передают свои исследовательские интересы или заканчивают проект, мотивация поддерживать проекты с открытым кодом пропадает; студенты тратят годы на изучение и освоение инструментов EDA с открытым кодом, лучше освоить коммерческие инструменты, которые более практичны для поиска работы; высокое качество Для студентов не так много работы с открытым кодом, а переимплементировать алгоритм или инструмент иногда быстрее, чем взломать (или даже отладить) код проекта с открытым кодом. После выпуска студентов, если нет хорошей документации и качественного управления кодом, то последующее академическое продолжение мотивации к итеративной разработке оказывается недостаточным.
Поэтому форум рекомендует правильно ориентироваться на стандарты академической оценки университетов, чтобы проекты с открытым кодом с высоким качеством кода и документации, а также проекты с большим количеством звезд на платформах хостинга кода и совместной работы, таких как Github/Gitee, стали академическими визитными карточками для ученых, студентов и корпоративных экспертов. Создание и поддержка проектов EDA с открытым кодом станет отличным стимулом для трудоустройства студентов.
Создание экосистемы EDA с открытым исходным кодом также требует наличия эталонного тестового набора, особенно промышленного эталонного тестового набора, способного выполнить сквозной процесс; как перейти от небольшого набора данных в академических кругах к передовым разработкам промышленного уровня - это тема, требующая обсуждения. Могут ли известные в отрасли компании, занимающиеся разработкой микросхем, предоставить несколько десенсибилизированных образцов, чтобы сообщество разработчиков с открытым исходным кодом могло использовать их в качестве эталона для академических исследований и студенческих конкурсов, что позволит расширить масштабы сообщества разработчиков с открытым исходным кодом. В частности, в современную эпоху, когда технология глубокого обучения тесно интегрирована с областью EDA, необходимо создать "ImageNet" в области проектирования микросхем, чтобы способствовать процветанию сообщества.