Дебагинг и Диагностинг
А у вас было когда-нибудь такое что диагностическая фича, которую вы добавили чисто НА ВСЯКИЙ СЛУЧАЙ (потому что
"ну ведь тоже самое можно сделать другим способом, который уже реализован") становилась основной при дебажиньи ASIC чипа?
А всё потому что в реальном мире всё не так просто как в симуляторе - многие вещи неочевидны, например, что работать через вычитку полей данных из карты регистров удобнее, чем ловить эти данные через стриминговый интерфейс снаружи чипа. Даже если для этой вычитки полей данных из карты регистров придётся знатно потанцевать вокруг иной периферии.
Корифеи, расскажите какие у вас были дебажные фичи, которые внезапно "выстрелили" (не в ногу) ❓
@vlsihub
А у вас было когда-нибудь такое что диагностическая фича, которую вы добавили чисто НА ВСЯКИЙ СЛУЧАЙ (потому что
"ну ведь тоже самое можно сделать другим способом, который уже реализован") становилась основной при дебажиньи ASIC чипа?
Корифеи, расскажите какие у вас были дебажные фичи, которые внезапно "выстрелили" (не в ногу) ❓
@vlsihub
2✍6🤔2👍1🤯1 1
Forwarded from Марков цепи пропил
Мы, видимо, тихо подошли к моменту, когда у нас стало галлюцинировать железо.
Наткнулся на пост в ныттере от ресерчера в гугле, где говорится о том, что мы выжали кремний до уровня где silent data corruptions уже больше не теоретическая проблема. Google назвал такие ядра "mercurial cores"- они проходят все заводские тесты, исправно служат месяцами, а потом в непредсказуемый момент, при определённой комбинации инструкций, выдают мусор вместо результата.
Проблему подсветили три крупнейших оператора дата-центров:
Meta - одно из первых исследований крупномасштабного воздействия тихих ошибок на реальной инфраструктуре Silent Data Corruptions at Scale
Google - ключевая работа, давшая название таким ядрам Cores that don't count
Alibaba - Understanding Silent Data Corruptions in a Large Production CPU Population
Собственно, а почему это проблема? В статье The Register Питер Хокшильд рассказывает, что подобное ядро повредило процесс шифрования данных, причем таким образом, что расшифровать файлы могло только это же самое дефектное ядро. Плюс сравнительно недавно вышла статья Understanding Silent Data Corruption in LLM Training, где исследователи из университета Торонто провели эксперименты на больных нодах, выведенных из продакшена: при файнтюнинге LLM на дефектных машинах возникали скачки loss-функции, и в одном случае точность модели упала для нуля.
Как от этого защищаться - пока хз. ECC-память не спасает, потому что данные портятся при вычислении, а не при хранении. Контрольные суммы вроде CRC сами используют векторные инструкции, которые одни из самых уязвимых. Нашел только костыли вроде SiliFuzz (ловит дефекты, которые проявляются на конкретных инструкциях), BootRIST (проверяет ядра при загрузке, то есть дефект, который проявляется после нескольких часов прогрева он не поймает) и Farron (зависит от качества тесткейсов и правильности определения температурной границы)
Наткнулся на пост в ныттере от ресерчера в гугле, где говорится о том, что мы выжали кремний до уровня где silent data corruptions уже больше не теоретическая проблема. Google назвал такие ядра "mercurial cores"- они проходят все заводские тесты, исправно служат месяцами, а потом в непредсказуемый момент, при определённой комбинации инструкций, выдают мусор вместо результата.
Проблему подсветили три крупнейших оператора дата-центров:
Meta - одно из первых исследований крупномасштабного воздействия тихих ошибок на реальной инфраструктуре Silent Data Corruptions at Scale
Google - ключевая работа, давшая название таким ядрам Cores that don't count
Alibaba - Understanding Silent Data Corruptions in a Large Production CPU Population
Собственно, а почему это проблема? В статье The Register Питер Хокшильд рассказывает, что подобное ядро повредило процесс шифрования данных, причем таким образом, что расшифровать файлы могло только это же самое дефектное ядро. Плюс сравнительно недавно вышла статья Understanding Silent Data Corruption in LLM Training, где исследователи из университета Торонто провели эксперименты на больных нодах, выведенных из продакшена: при файнтюнинге LLM на дефектных машинах возникали скачки loss-функции, и в одном случае точность модели упала для нуля.
Как от этого защищаться - пока хз. ECC-память не спасает, потому что данные портятся при вычислении, а не при хранении. Контрольные суммы вроде CRC сами используют векторные инструкции, которые одни из самых уязвимых. Нашел только костыли вроде SiliFuzz (ловит дефекты, которые проявляются на конкретных инструкциях), BootRIST (проверяет ядра при загрузке, то есть дефект, который проявляется после нескольких часов прогрева он не поймает) и Farron (зависит от качества тесткейсов и правильности определения температурной границы)
🤯21👍6🔥4🤷♂3❤1🎉1🤡1
Forwarded from Марков цепи пропил
iCTS: Iterative and Hierarchical Clock Tree Synthesis With Skew-Latency-Load Tree [ссылка]
Прикольная статья, в которой китайцы предлагают интересный метод оптимизации тактового дерева.
Если кратко, то синхронная цифровая схема держится на одном допущении: каждый триггер видит фронт тактового сигнала одновременно (иначе данные защёлкнутся раньше, чем вычисление закончилось, и триггер захватит некорректный результат).
Но "одновременно" физически невозможно. Сигнал идёт от одного источника до тысяч триггеров по металлическим проводам с сопротивлением и емкостью, разные триггеры находятся на разном расстоянии, и сигнал приходит в разное время (эта разница называется skew).
Решение - буферы. Они восстанавливают деградировавший фронт и добавляют контролируемую задержку, и если вставить буферы в нужных точках сети, суммарная задержка по всем путям выравнивается и каждый триггер получает фронт в +/- одно и то же время. Собственно, автоматическое построение такого дерева буферов и называется Clock Tree Synthesis.
Звучит как инженерная задача с однозначным решением, но внутри три цели, которые конфликтуют между собой: минимальный skew, минимальная длина проводов и минимальная latency. Получить всё три одновременно - NP-hard.
Стандартный CTS flow разбит на два независимых шага без обратной связи: сначала DME (алгоритм балансировки топологии тактового дерева) фиксирует структуру дерева: где провода соединяются и как ветвятся. Потом отдельный алгоритм (как правило, ван Гинекен) вставляет буферы уже в готовую структуру: обходит дерево снизу вверх, в каждом узле оценивает варианты буферов с учётом ёмкостной нагрузки downstream и выбирает лучший. Топологию изменить уже нельзя, поэтому алгоритм подстраивается под то, что есть.
Чтобы выровнять задержки на коротких ветках, DME добавляет wire elongations - буквально удлиняет провода змейкой, из-за чего растёт ёмкость и мощность. Буферы потом сайзятся под худший случай нагрузки, часто избыточно.
И это бьёт не только по мощности. Буферы занимают площадь кристалла, тактовые провода съедают ресурсы роутинга, рядом с кластерами буферов нужны decap-ячейки. Место, которое могло быть вычислениями, занято инфраструктурой доставки сигнала.
Тактовое дерево переключается каждый такт, независимо от того что делает логика. На высокопроизводительных процессорах это может отъедать до 50% от TDP, то есть если чип греется на 100 Вт, то до 50 Вт уходит только на доставку тактового сигнала, а не на вычисления (пара статей про это - [тык], [тык], [тык])
Исследователи из CUHK и Pengcheng Lab предложили строить топологию и буферизацию одновременно с явным trade-off между skew, latency и wirelength. В классическом DME точка слияния двух поддеревьев единственная, где задержки выравниваются, и никакого выбора нет. iCTS расширяет это до отрезка допустимых точек слияния, где любая точка даёт skew в пределах заданной границы, и на этом отрезке алгоритм выбирает точку, минимизирующую сумму с явными весами для latency и wirelength.
Поверх этого иерархическая кластеризация группирует синки не по геометрической близости, а по ёмкостной нагрузке, потому что физически близкие синки могут нагружать дерево по-разному и ломать балансировку. Результат кластеризации дополнительно оптимизируется отжигом. Буферы оцениваются до вставки, что позволяет отсекать плохие варианты раньше. После буферизации ISCA итеративно перезапускает BST-DME на зафиксированной топологии, каждый раз уточняя оценки задержек, пока skew не достигает целевого значения.
На бенчмарках ISCAS'89, OpenLane, OpenCores и ysyx (от 1248 до 22810 flip-flop) при 28nm результат такой: коммерческий P&R инструмент проигрывает iCTS на 39.5% по skew, 13.0% по latency и 18.5% по capacitance, OpenROAD - на 101.6%, 50.7% и 25.5% соответственно. По clock power коммерческий инструмент потребляет в среднем на 32% больше, OpenROAD - на 81% больше.
Хоть в максимальном бенчмарке всего ~23к триггеров, иерархическая архитектура iCTS должна масштабироваться. Не знаю, применит ли это кто-нибудь в продакшене, но звучит многообещающе
Прикольная статья, в которой китайцы предлагают интересный метод оптимизации тактового дерева.
Если кратко, то синхронная цифровая схема держится на одном допущении: каждый триггер видит фронт тактового сигнала одновременно (иначе данные защёлкнутся раньше, чем вычисление закончилось, и триггер захватит некорректный результат).
Но "одновременно" физически невозможно. Сигнал идёт от одного источника до тысяч триггеров по металлическим проводам с сопротивлением и емкостью, разные триггеры находятся на разном расстоянии, и сигнал приходит в разное время (эта разница называется skew).
Решение - буферы. Они восстанавливают деградировавший фронт и добавляют контролируемую задержку, и если вставить буферы в нужных точках сети, суммарная задержка по всем путям выравнивается и каждый триггер получает фронт в +/- одно и то же время. Собственно, автоматическое построение такого дерева буферов и называется Clock Tree Synthesis.
Звучит как инженерная задача с однозначным решением, но внутри три цели, которые конфликтуют между собой: минимальный skew, минимальная длина проводов и минимальная latency. Получить всё три одновременно - NP-hard.
Стандартный CTS flow разбит на два независимых шага без обратной связи: сначала DME (алгоритм балансировки топологии тактового дерева) фиксирует структуру дерева: где провода соединяются и как ветвятся. Потом отдельный алгоритм (как правило, ван Гинекен) вставляет буферы уже в готовую структуру: обходит дерево снизу вверх, в каждом узле оценивает варианты буферов с учётом ёмкостной нагрузки downstream и выбирает лучший. Топологию изменить уже нельзя, поэтому алгоритм подстраивается под то, что есть.
Чтобы выровнять задержки на коротких ветках, DME добавляет wire elongations - буквально удлиняет провода змейкой, из-за чего растёт ёмкость и мощность. Буферы потом сайзятся под худший случай нагрузки, часто избыточно.
И это бьёт не только по мощности. Буферы занимают площадь кристалла, тактовые провода съедают ресурсы роутинга, рядом с кластерами буферов нужны decap-ячейки. Место, которое могло быть вычислениями, занято инфраструктурой доставки сигнала.
Тактовое дерево переключается каждый такт, независимо от того что делает логика. На высокопроизводительных процессорах это может отъедать до 50% от TDP, то есть если чип греется на 100 Вт, то до 50 Вт уходит только на доставку тактового сигнала, а не на вычисления (пара статей про это - [тык], [тык], [тык])
Исследователи из CUHK и Pengcheng Lab предложили строить топологию и буферизацию одновременно с явным trade-off между skew, latency и wirelength. В классическом DME точка слияния двух поддеревьев единственная, где задержки выравниваются, и никакого выбора нет. iCTS расширяет это до отрезка допустимых точек слияния, где любая точка даёт skew в пределах заданной границы, и на этом отрезке алгоритм выбирает точку, минимизирующую сумму с явными весами для latency и wirelength.
Поверх этого иерархическая кластеризация группирует синки не по геометрической близости, а по ёмкостной нагрузке, потому что физически близкие синки могут нагружать дерево по-разному и ломать балансировку. Результат кластеризации дополнительно оптимизируется отжигом. Буферы оцениваются до вставки, что позволяет отсекать плохие варианты раньше. После буферизации ISCA итеративно перезапускает BST-DME на зафиксированной топологии, каждый раз уточняя оценки задержек, пока skew не достигает целевого значения.
На бенчмарках ISCAS'89, OpenLane, OpenCores и ysyx (от 1248 до 22810 flip-flop) при 28nm результат такой: коммерческий P&R инструмент проигрывает iCTS на 39.5% по skew, 13.0% по latency и 18.5% по capacitance, OpenROAD - на 101.6%, 50.7% и 25.5% соответственно. По clock power коммерческий инструмент потребляет в среднем на 32% больше, OpenROAD - на 81% больше.
Хоть в максимальном бенчмарке всего ~23к триггеров, иерархическая архитектура iCTS должна масштабироваться. Не знаю, применит ли это кто-нибудь в продакшене, но звучит многообещающе
👍19 12🤯3❤2
Forwarded from Агенты ИИ | AGI_and_RL
прикольно дизайнить процессоры агентами
Design Conductor: An agent autonomously builds a 1.5 GHz Linux-capable RISC-V CPU
https://arxiv.org/abs/2603.08716
https://www.alphaxiv.org/ru/overview/2603.08716
Design Conductor: An agent autonomously builds a 1.5 GHz Linux-capable RISC-V CPU
https://arxiv.org/abs/2603.08716
https://www.alphaxiv.org/ru/overview/2603.08716
🤯10👎3 3👍2 1
Как сказал бы один мой знакомый велосипедист: "Сомнительно, но Okay"
Пока что впечатления от "
Посмотрим чем закончатся философские рассуждения Клода.
BTW, если кому-то попадались на линкедин или гитхаб best practice по👀
PS: ставь 🕊 если смог прочесть этот пост через телеграм
Пока что впечатления от "
Opus 4.6 with high effort" как от слепого котёнка: пришлось через /btw подсказать что искать надо не на сайтах $CDNS и $SNPS, а на github.Посмотрим чем закончатся философские рассуждения Клода.
BTW, если кому-то попадались на линкедин или гитхаб best practice по
CLAUDE.md для RTL разработки, то поделитесь добром PS: ставь 🕊 если смог прочесть этот пост через телеграм
Please open Telegram to view this post
VIEW IN TELEGRAM
🕊70✍2👎1🤯1🌚1 1
Как похорошел Линкедин в эпоху AI:
если раньше 80% сообщений в личке было от рекрутеров, то теперь каждое первое сообщение от создателя ULTRA LLM ASIC SUPER DRUPER VLSI AI FPGA ONE BUTTON SOLUTION продукта💡
А что обычно вам присылают на линкедин?
@vlsihub
если раньше 80% сообщений в личке было от рекрутеров, то теперь каждое первое сообщение от создателя ULTRA LLM ASIC SUPER DRUPER VLSI AI FPGA ONE BUTTON SOLUTION продукта
А что обычно вам присылают на линкедин?
@vlsihub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6✍2👍1🦄1
Forwarded from позитивслэк
Мечтают ли ИИ-агенты об анализе вейвформ?
Мероприятие прошло. Было очень круто🎧
Спасибо всем кто пришел, и с кем удалось пообщаться!
Если вдруг упустили, то я рассказывал про CLI инструмент для анализа и работы с вейвформами, написанный специально для "рук" LLM-агентов.
https://github.com/kleverhq/wavepeek
Слайды в первом коменте к посту, ну а выступление есть на YouTube
Жажду получить любую обратную связь, особенно отзывы по использованию в реальных задачах. Любая движуха приветствуется, кроме нейрослоп-PR конечно😎
#llm #tools
@positiveslack
Мероприятие прошло. Было очень круто
Спасибо всем кто пришел, и с кем удалось пообщаться!
Если вдруг упустили, то я рассказывал про CLI инструмент для анализа и работы с вейвформами, написанный специально для "рук" LLM-агентов.
https://github.com/kleverhq/wavepeek
Слайды в первом коменте к посту, ну а выступление есть на YouTube
Жажду получить любую обратную связь, особенно отзывы по использованию в реальных задачах. Любая движуха приветствуется, кроме нейрослоп-PR конечно
#llm #tools
@positiveslack
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - kleverhq/wavepeek: 🌊 Tool for RTL waveform (VCD/FST) inspection via CLI
🌊 Tool for RTL waveform (VCD/FST) inspection via CLI - kleverhq/wavepeek
🔥4👏2🦄2✍1❤1👍1
𝗖𝗹𝗮𝘂𝗱𝗲 𝘄𝗶𝘁𝗵 𝘃𝘀. 𝘄𝗶𝘁𝗵𝗼𝘂𝘁 𝗦𝗩𝗔-𝗥𝗔𝗚 𝗳𝗼𝗿 𝗙𝗼𝗿𝗺𝗮𝗹 𝗩𝗲𝗿𝗶𝗳𝗶𝗰𝗮𝘁𝗶𝗼𝗻
- тут народ пытается к Клоду прикрутить RAG для SVA.
❓Пейпер также сгенерён Клодом (Судя по обилию эмодзи)
✅ Автор: Ben Cohen (написал книгу Fast-Tracking SVA through Exposure)
✅ ASCII-art красивый 😍
PS: файлы в первом комменте
@vlsihub
- тут народ пытается к Клоду прикрутить RAG для SVA.
❓Пейпер также сгенерён Клодом (Судя по обилию эмодзи)
✅ Автор: Ben Cohen (написал книгу Fast-Tracking SVA through Exposure)
✅ ASCII-art красивый 😍
PS: файлы в первом комменте
@vlsihub
✍2🔥2🤯1🦄1 1