Записки CPU designer'a
رفتن به کانال در Telegram
Всем привет. Меня зовут Николай. Работаю RTL design инженером, амбассадором в RISC-V International. В свободное время пишу о магии процессоростроения и цифровом дизайне.
نمایش بیشتر3 607
مشترکین
+324 ساعت
+407 روز
+11930 روز
آرشیو پست ها
Очень крутая интерактивная карта ET-SoC-1 от Esperanto, про который я уже писал после покупки его IP компанией Ainekko.
Здесь можно буквально провалиться внутрь SoC и посмотреть, как всё связано: от загрузки данных из LPDDR и движения по NoC до конкретного Minion core, vector/tensor unit и выполнения инструкции.
https://spacesheep.dev/@yaroslavvb/et-soc1-chip-diagram
Нашёл на просторах Твиттера сборник лекций по analog/mixed-signal IC design: от физики MOSFET и диодов до ADC, PLL, layout и tape-out.
Автор - Carsten Wulff, преподаватель в Norwegian University of Science and Technology, где он преподаёт курс Advanced Integrated Circuits. Параллельно работает IC Scientist в Nordic Semiconductor.
Внутри довольно широкий охват: MOSFET, ADC/DAC, switched-capacitor circuits, PLL, oscillators, SPICE, layout, parasitics и даже путь до реального silicon. И всё это на open-source flow.
Чтобы до понедельника все заботали - приду, проверю (я только оглавление пролистал)
https://analogicus.com/aic2026/assets/aic.pdf
Как скосить перед начальством за ответственного сотрудника и заставить всех коллег себя ненавидеть?
Продолжаю делиться инсайдами из индустрии.
Давайте представим следующую ситуацию. Вы застряли в своей карьере, работаете на троечку и считаетесь в коллективе середняком, скорее даже со знаком минус.
Как-то выгорели, сил не хватает ни инвестировать в повышение навыков, ни искать нишу в компании, где вы станете тем самым незаменимым винтиком. На 1:1 с лидом нечего сказать о своих успехах, с руководством вы тоже не на короткой ноге, а visibility в компании околонулевое. Отсюда отсутствие прогресса в карьере, грейдах и зарплате.
Но как это исправить?
Знайте, я предлагаю, конечно же, 100% рабочий метод, но, вступив на этот путь, прежним человеком вы уже не будете.
Алгоритм действий очень простой. Полностью забудьте про свои MR/PR. Ваша новая задача - стать ревнителем культуры чистого проектирования и ОСОЗНАННОГО использования ИИ.
Все, что вы делаете: скроллите открытые MR/PR. Причем неважно, ваши это реквесты, соседних команд или вообще других проектов.
Как только в комментарии, описании или тексте коммита находите типичный длинный dash вместо короткого тире или характерный вывод Claude Code с тонной форматирования, сразу же идете на этот сайт:
https://meatproxy.me/
Тут без задней мысли вписываете имя коллеги, который подозревается в недобросовестном использовании ИИ-ассистента в работе, и, представляя себя государственным обвинителем, выбираете наиболее подходящий Their primary offense.
Потом, главное, не стесняясь, оставляете ссылку с обвинением в виде комментария в открытом MR/PR. Тегаете тимлида этого бедолаги и, по возможности, какого-нибудь линейного менеджера проекта. Да кого только захотите. Можно даже CEO, чтобы выглядело увереннее.
И все. Вы уже не просто среднячок-кодер, а осознанный разработчик, который следит за качеством процессов и культурой проектирования. А дальше уже и до менеджера выслужиться будет несложно.
Из особенностей: лучше, чтобы вы работали удаленно, а не в офисе. Иначе возможны неприятные столкновения у кофе-тейбла. А если все-таки работаете в офисе и курите, то про курилку на время лучше вообще забыть. Поберегите здоровье. Конторе нужны здоровые и неравнодушные менеджеры.
За совет отблагодарить можно просто: как только повысят до манагера, с вас 50% первой менеджерской зарплаты и 50% последней.
Удачи!
А вот и результаты Jane Street ASIC Puzzle подъехали 👀
https://blog.janestreet.com/asic-puzzle-results/
Repost from positive slack
OpenAI and Synopsys Announce GPT-Synopsys
Ну что, вот они и пришли за нами. Если кратко, то ребята заключают многолетний контракт на сотрудничество и одни получают EDA и могут использовать видимо для своих чипов и тренировок моделей, а другие получают фронтирный движок для своих ИИ-продуктов💼
Теперь видимо то, что придет вслед за Астрой и Солом будет уже попракачанней в чип дизайне и вероятно "общаться" с тулами синопсиса сильно более нативно чем с другими. Ну либо это будет действительно исключительная ветка моделей специально под чип дизайн тулами синопсиса🤔
Ну и по классике, чтобы битва была легендарной, должно быть и зеркальное соглашение - Cadence и Anthropic. Но последние в сторону чип дизайна не смотрят кажется. По крайней мере публично🤔
Upd. смотрят-смотрят
@positiveslack
Уже влезли в долги, чтобы наскрести на подписку ChatGPT за 500$?
Пока убеждаете друзей занять вам денег, чтобы за две недели навайбить убийцу Nvidia, самое время разобраться, что же такое Cerebras и почему именно их железо внезапно оказалось настолько интересным для LLM-инференса.
Забавно, что изначально Cerebras в первую очередь пытались решить задачу обучения нейросетей.
И, если верить довольно жёсткому разбору Irrational Analysis, именно с training всё получилось не очень хорошо. Архитектура получилась сильно перекошенной: внутри самого WSE пропускная способность огромная, но канал обмена с внешней памятью и другими устройствами относительно узкий. Поэтому для обучения Cerebras приходилось дополнять WSE внешними системами MemoryX и SwarmX, а ограниченный внешний I/O становился одним из главных bottleneck'ов.
А что вообще такое WSE, MemoryX и SwarmX и как всё это устроено, читайте в отчёте Irrational Analysis.
А вот с инференсом всё оказалось гораздо интереснее.
Cerebras довольно самобытная архитектура. Вместо относительно классической связки GPU с расположенной рядом HBM они буквально делают процессор размером почти с целую кремниевую пластину, Wafer-Scale Engine. WSE-3 содержит около 900 тысяч маленьких ядер, у каждого из которых есть локальный SRAM и простые SIMD-блоки. В сумме получается примерно 44 GB SRAM прямо на wafer.
И вот для inference это оказалось очень интересной комбинацией. Обычный GPU при генерации токенов во многом упирается в необходимость постоянно читать веса модели из HBM.
У Cerebras веса и KV-cache можно держать прямо в SRAM рядом с вычислительными ядрами, а слои модели распределять по WSE. Если одного WSE не хватает, модель распределяется между несколькими. Каждый хранит свою часть модели и передаёт следующему только промежуточный результат вычислений, а не сами веса. Благодаря этому веса остаются в быстром локальном SRAM, а между WSE нужно передавать сравнительно небольшой объём данных. Отсюда и очень высокая скорость генерации.
То есть архитектура, которая довольно странно выглядела как конкурент Nvidia в training, неожиданно нашла свою сильную сторону именно там, где сегодня особенно ценится latency: ультрабыстрый LLM inference.
Но silver bullet из Cerebras всё равно не получился. Вопрос, как оптимальнее всего строить железо для LLM inference, сегодня всё ещё открыт. Одна из главных проблем Cerebras в том, что объём SRAM нельзя наращивать так же легко, как внешнюю память, а большие модели и длинный контекст требуют всё больше памяти. В итоге приходится использовать больше WSE, и впечатляющая скорость начинает обходиться всё дороже с точки зрения масштабирования всей системы. Сам отчёт отдельно отмечает, что KV-cache и веса конкурируют за один и тот же ограниченный SRAM, а с ростом размера модели экономика такого подхода становится всё сложнее.
Но сам инженерный подход всё равно совершенно безумный и очень интересный.
Кстати, если вы забыли, какого размера «чип» у Cerebras, приложу фотку в комментариях.
P.S. Пост чуть больше чем полностью построен на отчёте Irrational Analysis. Обязательно ознакомьтесь с ним, невероятно увлекательный и познавательный разбор.
Нидерланды продолжают укреплять свои позиции как один из ключевых полупроводниковых хабов Европы. Помимо ASML и NXP, в стране появляются и новые игроки, ориентированные на быстрорастущий рынок AI-ускорителей.
Один из них - основанный в 2021 году стартап Axelera AI, который за несколько лет заметно расширил своё присутствие в Европе и теперь объявил о начале поставок нового AI-ускорителя Europa, предназначенного прежде всего для энергоэффективного инференса.
Заявленная производительность Europa достигает 629 TOPS INT8 при TDP 45 Вт. Ключевая технология Axelera - собственная архитектура Digital In-Memory Computing, позволяющая выполнять часть вычислений непосредственно в памяти, снижая затраты на перемещение данных.
Europa доступна как отдельный чип, а также в составе PCIe-карт.
По данным самой Axelera AI, её продукты уже используют более 600 клиентов, а sales pipeline компании превышает $1,5 млрд. При этом $1,5 млрд - именно потенциальный объём продаж, а не оценка компании или уже полученная выручка.
Подробнее об архитектуре Axelera AI и Europa:
https://axelera.ai/news/axelera-ai-launches-europa-delivers-physical-and-enterprise-ai-through-growing-partner-ecosystem-including-dell-and-supermicro
Плюс-минус такие же вайбы, когда в Codex после релиза Astra прилетело три бесплатных reset'а✨
RTL/Verif/PhysDesign-инженеры, теперь наша пора радоваться (либо трястись, что нас всех скоро сократят - смотря как вы относитесь к AI-ассистентам).
Anthropic хайрит Research Engineer, Chip Design RL - специалиста, который будет помогать прокачивать Claude в работе с chip design. Причём речь не только про кодогенерацию Verilog: в описании прямо фигурируют formal verification, physical design optimization, PPA и работа с EDA tools.
То есть идея примерно такая: взять реальный chip-design expertise и превратить его в задачи, evals и reward signals, на которых модели смогут учиться решать инженерные задачи из нашего домена.
Если вы счастливый обладатель разрешения на работу в США и у вас есть ASIC/FPGA background - можно попробовать свои силы и сходить на собес в Anthropic, лол.
https://job-boards.greenhouse.io/anthropic/jobs/5231612008
А потом не забудьте зашерить админу бета-доступ к прокачанной версии Claude👩🍳
How OpenAI Used Its Own LLMs to Design Its Jalapeño Chip
https://spectrum.ieee.org/llms-for-chip-design
tldr: последними работу потеряют backend инженеры, а всем остальным осваивать xls
Люблю технологии
ASUS driver - https://github.com/torvalds/linux/blob/master/drivers/hid/hid-asus.c#L550
Оригинальный твит - https://x.com/__soragoto__/status/2098983783085318491?
Вышел новый формат от Истового Инженера - «Разгоны», где инженеры разных специальностей обсуждают какую-то тему. Тема же выпуска - скучное и очевидное «все профессии нужны, все профессии важны».
Формат прикольный, но как будто не хватает градуса накала, давайте исправлять.
Я как выпускник НИИшной школы проектирования заявляю: верификаторы не нужны в целом.
Всем давно известно, что маршрут называется RTL2GDS. RTL готовят, собственно, RTLщики, GDS - бэкендеры. А где тут верификаторы?
Правильно - 2. Та самая знаменитая формула, что на одного RTLщика нужно два верификатора. Ну согласитесь, что это безумие и пустое раздувание штата и бюджетов и явное принижение RTLщика как инженера, что якобы для проверки его работы нужно в 2 раза больше человеко-ресурса.
Для решения этих проблем давно придумали понятные паттерны дебага современных SoC, а именно - бут Linux на FPGA. Linux запустился? Ну всё: neofetch заранили, красивый скриншот сделали - и можно пилить лендос с успешным bring-up ядра.
Да и как RTLщик может называться RTLщиком, если сам не может раздебажить свой же код?
И давайте вспомним, что вообще такое верификация. Верификация - это проверка дизайна на соответствие спецификации.
Так а кто-то из вас эту самую документацию видел? На соответствие чему верификаторы проверяют дизайн? А если мы попросим RTLщика писать документацию, то кто будет писать RTL?
Замкнутый круг.
А вы что думаете? Я понимаю, что корпораты загоняют нас в рамки, но тут настоящая территория пост-разгонов. Приглашаю всех неравнодушных в комментарии.
https://youtu.be/I_Vg7Kog5TE
Jane Street запустили новый ASIC Challenge - на этот раз предлагают спроектировать настоящий open-source чип, а лучшие проекты обещают затейпаутить за свой счёт.
Задача довольно интересная: сделать general-purpose protocol emulator ASIC.
Идея в том, чтобы вместо отдельных UART, SPI и I2C контроллеров сделать универсальный программируемый контроллер, способный через GPIO реализовывать разные, в том числе кастомные, протоколы уже после изготовления чипа.
Первое, что тут приходит в голову, - PIO из Raspberry Pi RP2040. Собственно, сами Jane Street тоже приводят его в качестве одного из источников вдохновения.
https://rp2040pio-docs.readthedocs.io/en/latest/pio-programs.html
И тут, мне кажется, самое важное понять, где заканчивается FSM и начинается микроконтроллер 😁
Пару слов о формате. Когда задачка выходит за рамки одного дня, как мне кажется, она превращается из интересной головоломки в полноценный сайд-проект. Наверное, единственное, что подкупает в этом челлендже - Jane Street обещают затейпаутить самые интересные решения и отправить готовые чипы разработчикам. Честная это компенсация за такой объём работы или нет - решайте сами.
Если решили поучаствовать, в комментариях к посту можно найти единомышленников и организовать самосбор команд.
Основные правила: дедлайн - 18 января 2027 года, технода - IHP 130 nm CMOS5L, площадь - примерно 1 мм^2.
Остальные подробности смотрите в блоге Jane Street.
https://blog.janestreet.com/protocol-emulator-asic-competition/
AI EDAs: Is It Real?
В последнее время на канале мы всё чаще обсуждаем, как AI меняет индустрию. Мы уже разбирали достаточно уморительную статью, где авторы утверждали, что LLM якобы смогли спроектировать Linux-bootable ядро, а в итоге это оказался обычный 5-стадийник по Харрису.
Потом были последние новости про Astra от OpenAI, которая за один промпт якобы подготавливает schematic и полноценный PCB design. А в итоге оказывалось, что половина разъёмов вывернута внутрь платы, placement вызывает вопросы, а сам результат ещё требует довольно много работы со стороны инженера.
Так есть ли вообще что-то стоящее от AI в мире chip design или пока это в основном красивые демки и хайп в твиттере?
Мне кажется, это видео от Asianometry довольно хорошо отвечает на этот вопрос.
Спойлер - есть. Если грамотно построить цикл проектирования с постоянным feedback по PPA и другим QoR-метрикам, то уже сейчас можно получать неплохой буст в производительности труда.
Но до момента смены парадигмы с RTL2GDS на Prompt2GDS мы пока всё-таки не дошли.
К просмотру обязательно:
https://youtu.be/GzhfZy8-CjU
А вот и разборы решений пазла от Jane Street подъехали
https://mummanajagadeesh.github.io/blogs/janestreet-asic-puzzle/
Давайте в комментариях хвастаться кто сколько пасхалок нашел, а кто проглядел морязнку в KLayout, как я?😑
+1
Кстати, есть тут кто в канале, кто уже тестировал Astra на schematic/PCB-задачах?
В Twitter, конечно, каждый второй пост в духе «ONE SHOTTED/ЭТО КОНЕЦ/ONE PROMT RESULT». Но буквально под каждым таким постом приходит PCB-инженер и разносит результат работы Astra
это невероятно уморительно читать, особенно когда автору поста буквально нечего ответить
Интересно услышать опыт тех, кто реально пробовал: насколько оно уже применимо в работе и какие рутинные задачи уже хорошо автоматизируются?
Используете ли вы в ежедневых задачах WavePeek для анализа waveform?
--x-initial-edge в Verilator: зачем он нужен
В Verilator есть флаг --x-initial-edge. Он решает давнюю проблему разницы в поведении между Verilator и big3 симуляторами (VCS, Questa, Xcelium).
В чём суть проблемы?
В стандарте IEEE 1800 SystemVerilog (см. Table 6-7 default values) в момент времени T = 0 4-state переменные имеют значение 'X'. Согласно стандарту system verilog переход из 'X' в '0' расценивается как negedge, а из 'X' в '1' - как posedge (см. Table 9-2).
В Verilator по умолчанию начальное значение сигналов для такой edge-детекции считается равным 0. Из-за этого установка сигнала в 0 в момент T=0 выглядит как 0 -> 0 и не генерирует negedge.
Почему это критично?
Это казалось бы незначительное отличие особенно заметно при отладке схем с Clock Gate контроллерами. Если clock подмодуля во время reset загейчен (clock отсутсвует), асинхронный reset может быть единственным событием, которое переводит внутреннее состояние блока в reset state.
Но код на скриншоте в Verilator не срабатывал, поскольку Verilator по умолчанию не моделировал начальный переход X -> 0 как negedge.
Без использования этого флага момент можно было обкостылить. Например, чтобы заставить пример на скриншоте работать корректно, можно было искусственно сформировать дополнительный переход сигнала сброса:
1) 0 (T0) -> 1 -> 0 // создаём настоящий negedge
2) 0 -> 1 // снимаем reset
Теперь такие костыли городить не нужно, подробности:
https://veripool.org/guide/latest/exe_verilator.html#cmdoption-x-initial-edge
