Записки CPU designer'a – Telegram
Записки CPU designer'a
2.93K subscribers
195 photos
2 videos
5 files
292 links
Всем привет. Меня зовут Николай.
Работаю RTL design инженером, амбассадором в RISC-V International.
В свободное время пишу о магии процессоростроения и цифровом дизайне.
Download Telegram
Forwarded from 
Firefox latest drama

В силу последних новостей с Firefox, хочется напомнить об одном замечательном ресурсе:
https://spyware.neocities.org/

spyware watchdog — сайт на платформе neocities посвящённый обзору на различные spyware. То есть программное обеспечения осуществляющего шпионаж за пользователем.

На сайте приведены обзоры на различное ПО и его spyware status, то есть осуществляет ли это ПО слежку за пользователем. Заходите в раздел с браузерами, заходите в обзор firefox — и ВНЕЗАПНО firefox считался spyware ещё задолго до этой новости. В статье приведена инфа про то как именно файрфокс звонит домой в mozilla. Правда там рядом есть ещё mitigation guide — tutorial на тему того как отключить всю слежку.

Я его не читал правда, я сразу использовал arkenfox, сборку user.js для firefox, которую рекомендовала Solene%.

Что же делать пользователям Firefox в такое трудное для приватности время ?

Ну почти ничего: вы можете не дожидаться того как выйдет новый браузер ladybird. Вы можете не переходить на материалистичный Dillo, на хацкерский quterbrowser, на лисповый nyxt.

Вы точно так же можете просто поставить Arkenfox.

Если хотите меньше тратить времени на настройку может поставить ungoogled-chromium, в винде он доступен через пакетник scoop например. Этот браузер собран из свободного chromium, только в нём ещё все домены гугла заменены регулярным выражением на несуществующий домен. Это набор патчей.

Если ещё меньше хочется настраивать, то можно поставить iridium и по гайду с spyware watchdog прожать одну галочку.

Что же буду делать я ?
Я останусь на firefox с arkenfox, потому что я плотно подсел на вкладки контейнеры.
Правда это фича приватности, а не безопасности. Она обеспечивает цифровую компартментализацию (digital compartmentalization): все куки которые получает браузер теперь лежат не в одном профиле браузера, каждый в своём контейнере.

Я так например могу открыть вкладку с AWS в контейнере «работа», cloudflare со своим доменом и github в контейнере «личное», а iis.bsuir.by в контейнере «bsuir». Да, вы можете добавлять контейнеры сами.

Ещё меня держит интеграция с парольным менеджером keepassxc.

Что же делать, если действительно заботиться не только о приватности, но и безопасности, OPSEC, и прочих вечных вопросах существования ?

Ну, по хорошему компьютер без интернета или qubes os, а так можно поставить вместо очередного браузера virtualbox с операционной системой whonix.
👍19👀9😁1
Forwarded from Николай
В LinkedIn наткнулся на грустную новость.

Efabless Corporation прекратила свою деятельность из-за неспособности завершить раунд финансирования Series B, несмотря на наличие инвесторов. Компания объявила о закрытии, и все сотрудники были уволены.

Efabless была флагманом демократизации разработки ASIC и продвижения открытых инструментов проектирования цифровых схем. Компания сыграла ключевую роль в открытии PDK для SkyWater SKY130 и GlobalFoundries GF180, сделав производство чипов доступным для энтузиастов, студентов и open-source разработчиков.

Наиболее известные проекты Efabless — Caravel и Tiny Tapeout, благодаря которым любой желающий мог бесплатно изготовить свой чип, участвуя в конкурсном отборе на MPW-шаттлы.

Трудно переоценить вклад команды Efabless в популяризацию цифрового дизайна. Они дали возможность множеству людей работать с полупроводниками и запускать свои прототипы так же, как это делают дизайн-центры с многомиллионным финансированием. Благодаря этому, даже без огромных бюджетов на tapeout и лицензии на EDA-инструменты, многие смогли попробовать себя в роли разработчиков чипов. Для некоторых это стало шансом превратить свой open-source проект из репозитория на GitHub в реальный чип.

Список чипов, произведённых по программе Tiny Tapeout, доступен по этой ссылке. Все проекты доступны на GitHub, поэтому вы также можете ознакомиться с документацией и исходным кодом проектов.

На данный момент судьба проектов из 8-го и 9-го батчей остаётся неясной:

Right now we have TT08 awaiting packaging and TT09 is still in the SkyWater Technology fab. These chips represent a huge investment of time and energy from hundreds of people and we currently don’t know if we’ll receive them. We are prepared to offer a refund to all our affected customers in the case we aren't able to ship those chips.


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

Спасибо, Efabless!😏
Please open Telegram to view this post
VIEW IN TELEGRAM
👀30👍136
RISC-V Day Tokyo 2025 Spring English

27 февраля в Токио прошла конференция, посвященная экосистеме RISC-V. Среди участников конференции такие компании, как SiFive, Tenstorrent, MIPS и многие другие.

На странице конференции можно ознакомиться с материалами докладов, прошедшего мероприятия.

Мое внимание привлек доклад компании Tenstorrent.
Tenstorrent представила roadmap высокопроизводительных процессоров и поделилась планами на 2027 год. В презентации раскрыты детали Out-of-Order (OoO) ядра Callandor: 16-wide декодер и Reorder Buffer на 1000 (!!!) инструкций.

Ключевые характеристики:
• 35 SPEC2K6INT/GHz
• 3.5 SPEC2K17INT/GHz
• 6 wide LD/ST with large load/store queues
• 8 ALU/4 BR
• 4 256-bit vector units
• 4 FPU units
• Matrix engine

Больше деталей смотрите в презентации Tenstorrent — найти её можно по ссылке в начале поста и в комментариях. Однако не стоит забывать: это пока лишь первичная информация, представленная на слайдах. Окончательные показатели можно и нужно будет оценивать только при тестировании реального железа. Тем не менее, планы и амбиции компании впечатляют.

p.s. А на фото поста — обложка книги на японском языке по работе с языком конструирования аппаратуры Chisel.
🔥14👍4
Для предзаказа стала доступна новая книга профессора Харриса: RISC-V System-On-Chip Design.

По ссылке в начале поста можно ознакомиться с содержанием книги. В основе материала лежит open-source Linux-сapable процессор Wally, о котором вы можете узнать больше на Github-странице проекта.
По этой ссылке можно ознакомиться с обзором ядра Wally от авторов книги.

O процессоре Wally и о том, как вы можете поучаствовать в его разработке я уже писал в предыдущем посте.

Приобрести издание можно на сайте издательства Elsevier.

Сейчас на изучение нового материала нет времени, поэтому отложу в корзину до лучших времен и скидок☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉25🔥10👍6
Intel® Advanced Vector Extensions 10.2

В июле 2024 года Intel представила новую версию AVX10, в которой добавлены новые инструкции и поддержка FP8. Одним из интересных нововведений стала поддержка операций нахождения максимума и минимума среди операндов с плавающей запятой в векторном расширении, реализованная с учетом логики NaN propagation согласно спецификации IEEE-754 2019 года. В соответствии с этой логикой NaN возвращается только в случае, если оба операнда являются NaN. Теперь инструкции нахождения максимума и минимума поддерживают оба режима NaN propagation — в соответствии с IEEE-754 2019 и IEEE-754 2008, что позволяет разработчикам явно задавать логику NaN propagation.

Подобная реализация дает возможность программному обеспечения, ориентированному на работу с IEEE-754 2008, сохранить прежнюю логику обработки NaN, а для новых алгоритмов использовать более строгую семантику IEEE-754 2019.

Занимательно, что в сентябре 2023 года аналогичные инструкции были добавлены в архитектуру RISC-V в рамках расширения "Zfa" (Standard Extension for Additional Floating-Point Instructions).

Основное отличие заключается в том, что в RISC-V управление NaN propagation для инструкций поиска максимума и минимума реализовано только для скалярных инструкций, тогда как в Intel AVX10 это реализовано для векторных операций.

Кроме того, в последней версии спецификации RISC-V указано, что в экосистеме RISC-V для операций поиска максимума и минимума по умолчанию используется последняя версия стандарта IEEE-754 — на данный момент это версия 2019 года. В то же время в расширении Zfa были добавлены отдельные инструкции, специально реализующие поведение NaN propagation в соответствии со стандартом IEEE-754 2008 года.

Несмотря на то, что Intel и RISC-V представляют собой принципиально разные подходы как с точки зрения компьютерной архитектуры, так и с точки зрения уровня проприетарности (открытая архитектура RISC-V против закрытой Intel), обе экосистемы демонстрируют стремление к сохранению совместимости с существующим программным обеспечением. Это подчёркивает важность обратной совместимости и гибкости в выборе логики обработки NaN для поддержки старых алгоритмов и упрощения перехода на новые стандарты.
👍16👀7
A64 SIMD Instruction List: SVE Instructions

Нашел интересный ресурс. На сайте представлены инструкции из SVE расширения для ARM.
Удобно, что есть поддержка пресетов, чтобы посмотреть наборы инструкций для популярных чипов, например такие как A64FX и М4. Для каждой инструкции также представлена наглядная диаграмма, которая помогает лучше понять, как работает векторная операция в SVE сабсете.

Данный ресурс не является официальным справочным материалом и может содержать ошибки.

Аналогичный ресурс для x86/x64 SIMD Instruction List (SSE to AVX512) : https://www.officedaytime.com/simd512e/
👍8👀3🔥21
AraXL: A Physically Scalable, Ultra-Wide RISC-V Vector Processor Design for Fast and Efficient Computation on Long Vectors

Замечательная статья от исследователей из ETH Zurich посвящена проектированию векторных сопроцессоров с широкими векторами.

Особый интерес вызывает предложенный метод разбиения большого числа векторных линий на кластеры по 4 линии в каждом, что эффективно снижает нагрузку на межсоединения, необходимые для реализации cross-lane операций и маскирования. Авторы отдельно подчёркивают сложности масштабирования, возникающие при использовании традиционных «all-to-all» соединений между линиями, и предлагают решение этой проблемы через иерархическую структуру межсоединений. В частности, значительная часть cross-lane взаимодействий локализуется внутри кластеров, что уменьшает плотность и сложность межкластерных соединений. Дополнительно авторы вводят кольцевой интерфейс (RING Interconnect, RINGI), который упрощает передачу данных между кластерами и снижает аппаратную сложность при реализации широких векторных операций.

Также следует отметить представленный авторами floorplan, в котором между кластерами намеренно оставлены промежутки как по вертикали, так и по горизонтали. Это позволяет эффективно распределить межкластерные соединения, значительно снизить плотность межсоединений (congestion) и облегчить физическую реализацию, что особенно критично при разработке широких VPU с большим количеством векторных линий.
👍16🔥4
Сегодня принес вам интересное руководство по оптимизации работы с software - RISC-V Optimization Guide.

RISC-V Optimization Guide — это руководство, созданное проектом RISE Project для предоставления разработчикам программного обеспечения конкретных рекомендаций по оптимизации кода для процессоров на архитектуре RISC-V. ​

Содержимое гайда:
1) Общие рекомендации: использование регистров, работа с памятью и кешами.

2) Особенности расширений RISC-V: RVV (векторные инструкции), RVF, RVD и другие расширения.

3) Советы по LMUL: как выбирать LMUL в зависимости от типа ядра (In-Order vs Out-of-Order).

4) Переносимость: советы по созданию переносимого и масштабируемого кода.

Гайд будет особенно полезен в контексте последней темы, поднятой Krste Asanovic, о ключевой идее LMUL в векторной спецификации RISC-V. Основная мысль Krste заключается в необходимости аппаратной поддержки механизма определения оптимального LMUL в зависимости от фактической длины вектора (vl).
The intention in the RVV ISA design was that execution occupancy would be proportional to active vl as required by the application, not VLMAX set by LMUL.
So, even if LMUL was large, but vl was small, the occupancy of the vector instruction should be low. In other words,
larger LMUL should not cause worse performance with the same vl.
Это
позволит избежать ситуации, когда векторные инструкции выполняются над несуществующими (неиспользуемыми) элементами, повышая общую эффективность и производительность.

Однако, поскольку на сегодняшний день не все компании реализуют эту аппаратную логику в своих чипах, программистам приходится учитывать особенности конкретного аппаратного обеспечения. Это усложняет процесс разработки ПО и делает код менее портируемым и аппаратно-независимым.

Например, в руководстве (RISE Optimization Guide) явно указано следующее:
If all operations involved are linear in LMUL, choose EMUL to balance register pressure and frontend bandwidth. Depending on the processor implementation, this is going to mean either very high LMUL or very low LMUL, but not both. For example, on Out-of-Order machines, it’s generally better to have very low LMUL, resulting in lower register pressure at the expense of more instructions being issued. While on In-Order machines, it’s generally better to have very high LMUL, favoring lower instruction count at the expense of higher register pressure.

В данный момент в сообществе существует условно два подхода к использованию LMUL:

Авторы спецификации RVV (например, Krste Asanovic) ориентированы на долгосрочную перспективу, в которой наибольшая эффективность достигается за счёт модели исполнения инструкций, зависящей от реальной длины вектора (vl-dependent). Такой подход позволяет эффективно использовать высокий LMUL там, где это оправдано.
Однако наиболее просто и естественно эта модель реализуется в широких in-order VPU с большой длиной вектора (большим VLEN), в то время как для коротких OoO-векторных ядер с небольшим VLEN (128–512 бит) реализация такой логики существенно более сложна и менее практична.

Практические реализации и существующие рекомендации (например, RISE Optimization Guide) делают акцент на текущих технических ограничениях и сложности реализации LMUL в высокопроизводительных процессорах с внеочередным выполнением инструкций (Out-of-Order). В таких реализациях предпочтительным считается использование низкого LMUL (LMUL=1).

Таким образом, сейчас между долгосрочной стратегией стандарта и практическими реализациями имеется явное расхождение. Можно ожидать постепенного сближения этих подходов, если высокопроизводительные OoO-ядра смогут преодолеть аппаратные сложности реализации и приблизиться к модели, заложенной в стандарт RVV.
10👍3🔥1
А чтобы разбавить духоту выше, принёс вам мемес. В четверг или в пятницу принесу классное чтиво на выходные по векторным процессорам.
Кстати, поделитесь в комментариях, на какие интересные новости, пейперы или посты натыкались в последнее время по тематике цифрового дизайна и компьютерных архитектур.
В последнее время глаз сильно замылился на матрично-векторных задачках — наверняка много интересного упустил 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26👀3
Как и обещал, принес вам классное чтиво — Ph.D. диссертацию Krste Asanović по теме векторных процессоров.
Несмотря на то, что работа была написана в далёком 1987 году, считаю важным с ней ознакомиться.
Автор — один из основателей SiFive, соавтор векторной спецификации RISC-V и участник команды, внесшей вклад в культовую книгу Computer Architecture: A Quantitative Approach.
Отличная возможность увидеть, с чего начинался путь Krste в цифровом дизайне и архитектуре компьютеров.

Vector Microprocessors by Krste Asanović
👍26👀62🔥2
Искусство заголовка 🤣
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38👍5
Студенты и энтузиасты, а помните, как я давным-давно обещал вам разбор задачек с QuickSilicon?
Так вот, я подумал — зачем разбирать уже готовые, если можно придумать свои 🙂

Хочу поделиться опытом взаимодействия с организатором площадки для тренинга QuickSilicon. Эта платформа в первую очередь ориентирована на монетизацию — продажу курсов с задачами разной сложности и разборами в стиле LeetCode. Однако есть и бесплатный раздел — с простыми задачами, доступный каждому зарегистрированному пользователю.

Я связался с автором платформы — Rahul Behl, бывшим инженером Arm, а теперь сотрудником Tenstorrent. Предложил ему создать раздел с открытыми и бесплатными задачами от сообщества — чтобы у энтузиастов и профессионалов появилась возможность делиться своими задачами, используя уже существующую платформу.

Задачка, которую я подготовил, довольно простая, на реализацию логики rotation двумя способами.
Ознакомиться с задачкой можно по ссылке:
https://quicksilicon.in/course/21daysofrtl/module/bonus1

Изначально я предложил оставить тестбенч для автопроверки, но Rahul объяснил, что идея раздела 21 Days of RTL — в том, чтобы участник писал не только дизайн, но и верификацию самостоятельно.

Почему я об этом рассказываю?
Потому что считаю это отличным инструментом для студентов и энтузиастов, которые хотят изучать цифровой дизайн и компьютерную архитектуру.
Ничего не нужно устанавливать — ни симуляторов, ни Quartus, ни Yosys, - всё работает прямо в браузере.
А если вы — опытный разработчик и хотите предложить свою задачку, теперь такой функционал поддерживается владельцами платформы. Они открыты к совместной работе и готовы публиковать задачи от сообщества.

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

Stay tuned! 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
42👍12🔥12
Вышли из тени еще одни желающие сделать чип-дизайн открытым.

Калифорнийский стартап ZeroASIC представил открытую архитектуру FPGA, которую они хотят сделать плисовым аналогом RISC-V. Дизайн самого чипа проприетарный (GF 12 нм), но архитектура описана, а весь маршрут синтеза RTL, генерации и записи битстрима опенсорсный. На гитхабе много интересного.

Предполагается, что найдутся желающие поддержать начинание и организовать концорциум по образцу RISC-V Foundation. Звучит чрезмерно амбициозно, но саму идею демократизации чип-дизайна я могу только поддержать.
👍43🔥31😁1
Те, кто давно читает канал или знаком со мной лично, наверняка знают, что когда речь заходит об учебных программах и курсах по компьютерной архитектуре и цифровому дизайну, я всегда ставлю в пример ETH Zurich.

Недавно наткнулся на интересный вопрос из экзамена курса ETH Zurich.

Думаю, ни для кого не секрет, что ChatGPT и другие модели активно применяются при разработке софта и аппаратуры привет vibe-кодерам! Но не менее важно, что студенты всё чаще используют их для выполнения домашних заданий и курсовых проектов.

Так вот, в экзамене ETH Zurich в разделе вопросов по Verilog появилась задача с говорящим названием: «Is ChatGPT not Right?»🧐

Суть задачи:
Вы попросили ChatGPT написать за вас простую логику управления движением персонажа в 2D-пространстве на Verilog. Ваша задача:

а) Заменить числовые заглушки на корректные варианты в Verilog коде.

б) (Самое главное!) Определить место в Verilog коде, где ChatGPT допустил ошибку, объяснить её причину и предложить исправление.

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

Предлагаю вам поучаствовать в небольшом интерактиве: найдите место, где ChatGPT сгаллюцинировал, и предложите ваш вариант ответа в комментариях. Вечером я опубликую правильный ответ.

Если вы не хотите сбивать других участников с толку, не стесняйтесь прятать свой ответ под спойлер.

Код и описание задачки смотри в следующем посте😑
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥22👍12😁1
You gave ChatGPT the following prompt to help with your lab report: A Verilog module that simulates
a character's movement on a 2D-plane. The module takes four inputs for four directions (direction inputs) the character can move to. The module outputs x and y coordinates. The character stays in the same coordinate if none of the direction inputs are set. Initial coordinates (set on reset) are 0, 0. Stride determines how many units the character moves in one step.
👍15
Ответ👆
6👍2
SIMD Instructions Considered Harmful
Пост Дэвида Паттерсона и Эндрю Уотермана, 2017

Классная статья о развитии векторных архитектур и проблемах, с которыми столкнулись SIMD-расширения от Intel и MIPS, а также о концепции Scalable Vector, лёгшей в основу ARM SVE и RISC-V Vector.
👍168
How Google Lies About the Power of Its Latest Chips, Compared to El Capitan

А что тут у нас? Опять манипуляции с термином FLOPS?🐱

В статье подробно разбирается, как Google в своём пресс-релизе утверждает, что их кластер Ironwood мощностью 42,5 Exaflops (в FP8) в 24 раза превосходит суперкомпьютер El Capitan, производительность которого составляет 1,7 Exaflops (в FP64, по LINPACK). На деле это сравнение некорректно, поскольку Google использует пиковое значение в формате FP8, применимое для AI-задач, тогда как для El Capitan приводится стандартизированная производительность в формате FP64, применимая к научным вычислениям.

Картинка к посту прекрасно описывает мое отношение к маркетингу вокруг термина FLOPS 😈

Перес-релиз от Google - Ironwood: The first Google TPU for the age of inference

p.s. и другой "прекрасный" термин от Nvidia - AI TOPS
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20😁7👍44
В продолжении темы Vector Length Agnostic хочу поделиться интересными видеолекциями из серии Arm software developers

Эти видеолекции посвящены особенностям и возможностям нового векторного расширения Arm Scalable Vector Extension (SVE).
Рассматриваются ключевые преимущества SVE, включая аппаратно-независимую длину векторов, расширенные инструкции управления памятью и векторами (gather/scatter), механизмы предикации и спекулятивного исполнения, а также особенности программирования векторного сопроцессора.

1) Leveraging SVE Vectorization for HPC Workloads
2) Introduction to Arm SVE
👍943👀1
Думаю, многие из вас уже знакомы с проектом pulp-platform, в котором представлены различные готовые IP-блоки: от простейших FIFO и LZC до сложных процессорных систем, таких как Snitch Cluster.

Сегодня хочу поделиться с вами GitHub-аккаунтом лаборатории открытых компьютерных архитектур, LOCA из Барселонского суперкомпьютерного центра BSC.

На GitHub-аккаунте BSC LOCA можно найти множество интересных проектов на любой вкус и цвет. Вот несколько примеров:

1. Sargantana — in-order RISC-V процессор, способный загрузить Linux.
2. SAURIA — тензорный ускоритель на основе систолического массива (Systolic Array) с поддержкой формата FP16.
3. Memory Management Unit (MMU) — базовый строительный блок для разработки процессорных ядер с поддержкой Linux. Реализована поддержка формата виртуальной адресации SV39.
4. L1 Instruction Cache — кеш инструкций первого уровня.

Подробнее c портфолио проектов ознакомиться можно здесь: https://github.com/bsc-loca

Помимо GitHub-репозиториев, у BSC также есть официальный каталог, в котором собраны ключевые проекты и инициативы в области RISC-V и полупроводниковых технологий:
BSC RISC-V Technologies Catalogue — посмотреть PDF
18🔥139👍99