Записки 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
Принес вам чтиво выходного дня

Статья
от исследователей из университета Pisa, Italy и Barcelona Supercomputing Center на тему применения сжатых вещественных числе в AI приложениях.
Считайте новинка - статья появилась на arXiv всего неделю назад 🤓

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

Одной из активно обсуждаемых идей в последние несколько лет является использование формата Posit для хранения чисел в формате fp32 в 16-битном представлении Posit. Это сделано с целью снижения нагрузки на кэш и увеличения пропускной способности при передаче данных в вычислительные блоки. За такой трюк в пересылке данных заплатим точностью передаваемого числа и аппаратурой для конвертации fp32 -> posit16 и обратно, в то время, как для bfloat16 это происходит практически бесшовно, но с большей потерей точностью.

Основной акцент в статье сделан на работу с bf16, работа с Posit видимо оставила еще ряд нюансов, которые будут рассмотрены в следующих работах (либо я что-то проглядел когда читал статью).
Результаты и метод исследований найдешь в статье👌
🔥9👍6
У симулятора RIPES появилась web версия.

Если хотите вкатиться в изучении в computer architecture теперь это стало проще и доступнее.

В ripes вы можете настраивать микроархитектуру ядра: выбирать между однотактным и конвейерным ядром, добавлять механизмы разрешения конфликтов в конвейере и выбирать 32- или 64-битную архитектуру. Также предоставляется возможность менять конфигурацию кэша, алгоритм замещения данных и исполнять собственный код, c/asm.

Автор канала применял этот симулятор при подготовке лекции о влиянии конфигурации иерархии памяти на производительность процессора.

Запись лекции доступна на YouTube, а презентацию и материалы для лабораторных работ можно найти на GitHub.
🔥3331
Отличная подборка полезных материалов по RISC-V от Альянса RISC-V.

В подборке приведены ссылки на симуляторы, эмуляторы, учебные курсы и материалы различных мировых вузов, литературу по тематике архитектуры RISC-V.

Данный материал подготовлен как дополнение к анонсу конкурса на разработку и внедрение учебных материалов по RISC-V.

Пришло время обновить мой RISC-V Awesome list, за 2 года успел устареть😅
🔥20👍4🤩1
Подборка микроархитектурных блок-диаграм ядер от Intel, AMD, ARM, Ampere.

Block Diagrams: http://bit.ly/32qLLew
μarch Cheat Sheet: http://bit.ly/2JTplfJ

Для бесполезного, но интересного упражнения, можно посравнивать ядро Apple A15 (или любое другое, представленное в подборке) с решениями на базе RISC-V от Sifive P870 например или Syntacore SCR7/9.
👍133❤‍🔥1
На форуме lists.riscv.org представители Qualcomm предложили не использовать сжатые инструкции (C extension) для applications processors profile в RISC-V.
По их мнению, благодаря стандартным расширениям RISC-V и так достигается высокая плотность кода, а 16-битные инструкции делают микроархитектуру сложнее.

Имплементация compressed расширения усложняют проектирование и верификацию ядра. Это и усложнение логики декодера, дополнительная логика для поддержки не выровненной выборки (Unaligned fetch) из кэша, обработка инструкций пересекающие границы страниц памяти.

Важно понимать, что предлагается отказаться от compressed расширения только для applications processors profile, а не переписать существующую ISA RISC-V.
Compressed расширение все еще прекрасно вписывается в концепцию процессоров для встраиваемых систем.

Одним из аргументов против использования c-ext в профиле RVA23 является влияние c-ext на кодировку всех инструкций RISC-V архитектуре. В архитектуре RISC-V два младших бита инструкции указывают на формат инструкции. В стандартной кодировке из 32 доступных разрядов для кодирования инструкций два младших (с кодами 00, 01 и 10) предназначены для включения дополнительного набора сжатых инструкций, а код 11 предназначен для обозначения based (не сжатой) инструкции. Но если этот сжатый набор не нужен, то освобождаются еще три 30-разрядных слота для кодирования. Это увеличивает общий объем доступного кодирования в 32-разрядном формате в четыре раза.

Например, компания ARM для высокопроизводительных ядер, начиная с архитектура ARMv8a отказалась от поддержки Thumb.

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

p.s. хочу поблагодарить русскоязычное сообщество RISC-V за актуальные новостные обновления.
👍143🔥2
По старой традиции опять пропал на пару недель☺️
Перед RISC-V Summit привычный завал, но потихоньку буду возвращаться к ведению канала. Поговорим о новом чипе от Sophgo, партнёрстве Google и Qualcomm в проектировании чипов на базе RISC-V, и аргументах SiFive о сохранении C-extension для RVA профиля.

А сегодня обсудим первые шаги в разработке Matrix Extension для RISC-V ISA.

После заморозки для public review векторного расширения комитет RISC-V International приступил к выслушиванию предложений от членов RISC-V по теме матричного расширения. Сейчас различные компании представляют свое видение для развития будущего стандарта. После представления всех докладов будет сформирована рабочая группа, которая будет заниматься разработкой матричного расширения.

Матричные вычисления в контексте RISC-V ISA связаны с векторной спецификацией, а именно с векторными регистрами, где по определенным правилам и планируется хранить строки/столбцы матриц. Поэтому работа над матричным расширением не могла быть начата, пока векторное расширение не перешло в статус frozen.

За ходом работы комитета, а так же ознакомиться с записями прошедших обсуждений будущего стандарта и презентациями можно на github

Например, по этой ссылке можно ознакомиться с видением матричного расширения от Andes.

А по этой ссылке можно изучить презентацию и послушать доклад от представителей IBM и Esperanto.

Старт работы над матричным расширением RISC-V стал значимым шагом в эволюции архитектуры, привлекая разнообразных членов RISC-V для формирования будущего стандарта матричных вычислений. Этот процесс обещает открыть новые горизонты в мире вычислительных возможностей RISC-V.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥42
А что посмотреть/послушать про проектирование чипов?

Вышел подкаст с моими коллегами по цеху из Синтакор. Приглашенный гость - Никита Поляков инженер по цифровому дизайну с специализацией в проектировании процессорных кэшей.

https://youtu.be/kPirrDJBzw0?si=FsEHci11FC-Mw7Uh

Приглашенный гость известен многим по серии занятий в Цифровой Школе синтеза и лекциям на ChipExpo. Никита работал 12 лет в МЦСТ, а последние 3 года работает в Syntacore и имеет широкий кругозор в мире процессорных архитектур.
Так что в компетенциях гостя сомневаться не приходится.

К просмотру рекомендую. Отлично выпуск подойдет тем кто интересуется кто же такие hardware/rtl/verification инженеры, как выглядит разработка ASIC и что же это за verilog такой.

Большой респект проекту Истовый Инженер. Очень рад видеть подкасты по аппаратной тематике.
38👍71
AMD/Xilinx анонсировали soft-core RISC-V IP MicroBlaze V

AMD/Xilinx представили MicroBlaze V, который предлагает расширенные возможности конфигурации для поддержки различных наборов инструкций, включая I, M, A, C, F. Он также поддерживает bitmanip расширения (Zba, Zbb, Zbc, Zbs), что делает его более гибким и мощным инструментом для разработчиков.

В начале 2022-го года, Intel представила обновленный Nios V, который, по сравнению с MicroBlaze, представляется более простым в использовании. Nios V не поддерживает bitmanip расширения, а также не имеет функции сжатия кода (расширение "C"). Это может сказаться на эффективности использования памяти в FPGA, что важно для встраиваемых систем, где экономия памяти и гибкость являются критическими параметрами.

Подробнее про AMD MicroBlaze V : https://www.xilinx.com/products/design-tools/microblaze-v.html

Подробнее про Nios® V: https://www.intel.com/content/www/us/en/products/details/fpga/nios-processor/v.html
👍16🔥1😁1
RISC-V Summit North America 2023

Стартовал заключительный RISC-V Summit этого года.
С 6 по 8 ноября запланированы выступления ведущих разработчиков в области экосистемы RISC-V.

C расписанием докладов можно ознакомиться на сайте саммита.

Из докладов конечно же порекомендую послушать моих коллег из Semidynamics с докладом про имплеметнацию кастомного тензорного расширения.

Пока мы ожидаем доклады из США, предлагаю освежить в памяти выступления с китайского и европейского саммитов:

RISC-V Summit Europe
RISC-V Summit China
🔥10👍4
Записки CPU designer'a
AMD/Xilinx анонсировали soft-core RISC-V IP MicroBlaze V AMD/Xilinx представили MicroBlaze V, который предлагает расширенные возможности конфигурации для поддержки различных наборов инструкций, включая I, M, A, C, F. Он также поддерживает bitmanip расширения…
Synopsys ARC-V Processor IP

Intel, Xilinx вот и Synopsys расширяет портфель своих процессорных IP-ядер ARC новым семейством на базе RISC-V.

Synopsys ARC – это серия конфигурируемых процессорных ядер, разработанных для широкого спектра встраиваемых решений.

Думаю многие впервые слышат данную аббревиатуру из мира процессорных IP. Однако не стоит недооценивать значимость данного продукта. Ядра ARC от Synopsys стали основой для более чем 1,5 миллиарда устройств ежегодно, что однозначно свидетельствует о их влиянии и востребованности в индустрии встраиваемых систем.
Подобности о линейке ARC смотри в источнике.
🔥12👍2
Opensource реализация VPU на базе RISC-V Vector ISA 1.0 от Pulpino

Вы можете ознакомиться с статьей, в которой рассматривается микроархитектура и проблемы проектирования, на сайте arXiv.

Все исходные коды векторного блока доступны на GitHub в аккаунте pulp-platform.
👍30
Сегодня у нас короткий обзор актуальных новостей из мира цифорового дизайна 🤓

1. Аспирант МИЭТа стал контрибьютором в спецификацию RISC-V. Спасибо Андрею за его работу и вклад в развитие RISC-V спецификации.
Напомню, что Андрей один из основных контрибьюторов по курсу Архитектур процессорных систем. Все материалы по данному курсу доступны на github и youtube.

2. FPGA-Systems выпустили свой первый журнал - FPGA-Systems Magazine :: FSM. Журнал доступен бесплатно, без предварительной регистрации.
Мне особенно понравились статьи Николая Пузанова про использование фильтров в GTKWave [стр.141], и статья Юрия Панчула про конвейерные вычислители [стр.5].

Большое спасибо всем авторам журнала и отдельно Коробкову Михаилу за проделанную работу.

3. Стартовали конференции FPGA разработчиков. С анонсом конференции в Москве я проспал, поэтому дружно ждем запись на youtube канале плис-систем😅.
Конференции так же пройдут в следующих городах:
Санкт-Петербург - 2 декабря
Томск/Омск - 9 декабря

С программой конференции можно ознакомиться на сайте fpga-systems.
Must see доклад, по скромному мнению автора канала -
Ко-симуляция RISC-V IP с помощью QEMU для задач unit-верификации

Доклад представит мой коллега из Syntacore Кущенко Андрей
🔥30👍421
Принес вам ссылку на профиль с крутыми die shots.

У фотографа богатая коллекция снимков кристаллов процессоров от различных вендоров: AMD, Intel, Байкал, МЦСТ, Nvidia.

Например, вот ссылка на фотографии кристалла Baikal Electronics/BE-S1000 или фотографии кристалла gpu Nvidia/Pascal/GP106.

Больше siliconpr0n'a ищи по ссылке на фотохостинг 😎

#dieshots
🔥24👍1🌚1
Первые идеи для векторной спецификации RISC-V V 2.0

Одно из преимуществ открытой архитектуры это то что в live-режиме можно следить за технической дискуссией при выборе тех или иных решений и подходов при составлении архитектурной спецификации. Не так давно Qualcomm выступали с предложениями о пересмотре набора обязательных расширений для профиля RVA и подготовили ряд докладов о проблемах compressed расширения RISC-V.

Сегодня поговорим о предложениях (ключевое слово предложениях) одного из участников SIG: Vector Jose Moreira (Chair, IBM).

Одно из обсуждаемых решений в текущей имплементации векторной ISA - это конфигурационные инструкции, которые обновляют CSR. Эти инструкции находятся как бы на границе двух пайплайнов - векторного и системного (который отвечает за обновление конфигурации ядра) и имплементация данных инструкций нетривиальная задача. Однако, данные инструкции дают нативную поддержку stripmining vector. О примере имплементации таких инструкций писал в посте про RISC-V Ocelot.

Jose M. предлагает концепт Self-contained vector ISA, когда конфигурация вектора уже закодирована в самой инструкции. Но цена такого подхода - это расширение инструкции до 64-бит (либо до 48 бит), чтобы вместить те данные, которые в текущем подходе сохраняются в векторных CSR.

Какие плюсы можно выделить в этом подходе, по мнению автора канала:
1) повышение производительности за счет "высвобождения" системного пайплайна скалярного ядра;
2) простота отладки, т.к. каждая инструкция содержит конфигурацию вектора;

Минусы:
1) усложнение процесса извлечения инструкций - теперь нужно не только уметь извлекать и различать 16 битные инструкции и 32 битные, но и 64-битные;
2) усложнение логики branch predictor для корректного предсказания перехода с 3 типами длин инструкций;
3) усложнение логики скалярного декодера для различия compressed, non-compressed и 64-битных векторных инструкций;
4) если раньше скалярное ядро было драйвером VPU, то теперь обработка конфигурации вектора, определение запрещенных конфигураций будет обрабатываться внутри векторного конвейера;

Вместо заключения
Наличие 3 различных длин перегружает и усложняет fronted ядра фактически на всех этапах и делается в шаг, пусть и к размытой, нечеткой границе CISC подхода. Хотя задача изменения конфигурации вектора является важной, она не встречается достаточно часто в прикладных задачах, чтобы считать конфигурационные инструкции существенным bottleneck'ом в векторном расширении. Автору канала сложно понять мотивацию предложения нового формата векторного расширения, с акцентом на отказе от конфигурационных инструкций. Похоже, что в данном решении баланс между аппаратной поддержкой и бенефитами, которые оно предоставляет, не полностью продуман.

А в качестве вводной лекции про дизайн и микроархитектуру VPU предлагаю ознакомиться с презентацией от Tenstorrent.

К обсуждению приглашаю всех в комментарии к посту 🤓
👍8🔥41
Сегодня хочу поделиться с вами ссылками на must see материалы, которые я нашел на этой неделе 🤓

1. Пост Юрия Панчула на сайте Истового Инженера - ASIC и FPGA: сорок лет эволюции. Крутой ликбез для понимания что же такое дизайн цифровых схем, при помощи каких инструментов проектируются современные ASIC, зачем нужен MPW и чем хороши FPGA в обучении студентов.

2. Канал Сергея Чусова про верификацию цифровых устройств. Сергея вы можете знать по его лекциям в Школе Синтеза Цифровых Схем.
Рекомендую к просмотру лекцию [ссылка с таймкодом] Сергея про Теорию SystemVerilog Assertions.
🔥21👍1011🍌1
Сегодня принес ссылку на must see доклад Школы Синтеза Цифровых Схем - Инженерные диаграммы WaveDrom

Доклад читает автор программы для инженерных диаграмм WaveDrom, Staff Engineer в компании SiFive (одного из лидеров и основных драйверов RISC-V сообщества) — Алексей Чепыженко.

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

Hardware community также внедрило инструмент поддержки рендера временных диаграмм для VS Code, например TerosHDL или Waveform Render. С помощью данных расширений вы можете использовать псевдокод для создания временных диаграмм и вставлять их непосредственно в комментарии к исходным файлам, повышая документированность кода.

В заключение, доклад Алексея Чепыженко о инженерных диаграммах WaveDrom представляет собой обязательный источник знаний для всех, кто занимается проектированием, верификацией и документированием аппаратных блоков. WaveDrom не только облегчает процесс создания временных диаграмм, но и улучшает читаемость и понимание поведения аппаратных компонентов.
p.s. и не каждый день ведущий инженер из SiFive читает доклад в Школе Синтеза, такое пропускать точно не стоит 😎
👍19🔥71
C наступившим новым годом! 😄

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

Желаю вам, чтобы в новом году тайминги сходились, программы из прерываний выходили, чтобы промахов в кэшах не было, а NaN'ы в ответах не попадались.

Stay tuned 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥27👍32
SiFive выложила в общий доступ часть документации для собственной имплементации Matrix Multiplication Extensions.
Эти материалы доступны по следующим ссылкам:

SiFive MatMul Extension for integer
SiFive MatMul Extension for bfloat

Это может быть первыми шагами в направлении популяризации собственной ISA (Instruction Set Architecture) для новой спецификации Integrated Matrix Extensions (IME).
Свое видение для Matrix Multiplication уже представляла компания T-HEAD на Китайском RISC-V саммите. С презентацией T-HEAD о матричном расширение можно ознакомиться по ссылке.

На Североамериканском саммите о реализации матричных умножителей также заявили компании Semidynamics и Andes Techology. По ссылкам выше вы можете ознакомиться с докладами этих компаний.

Напоминаю, что за ходом работы разработки нового матричного расширения можно следить на github
👍17
Вышло обновление лучшего курса по работе с RISC-V ядром - RVfpga 3.0

Из новинок в курсе можно выделить основные изменения:

1) Поддержка Catapult SDK от Imagination (только VeeR EL2), автор канала настоятельно рекомендует продолжать пользоваться PlatformIO для получения большего набора компетенций и навыков.

2) Была добавлена предварительно настроенная виртуальная машина на базе Ubuntu с установленным всем необходимым программным обеспечением. Это существенно облегчает начало работы с учебным материалом.

3) Добавлена поддержка ядра VeeR EL2, меньшего по размеру ядра в сравнении с оригинальным ядром курса - VeeR EH1. Данное изменение позволит адаптировать под курс больше отладочных плат с менее мощными и дешевыми FPGA на борту.

4) Добавлены инструменты симуляции RVfpga-ViDBo and RVfpga-Pipeline. Их исходники можно найти в курсе и изучить возможность адаптации простейших тулов ко-симуляции для ваших личных задач и нужд.

Для того чтобы получить доступ к курсу необходимо заполнить специальную форму академического доступа. В течении 1-3 рабочих дней вам должны предоставить ссылку для скачивания материалов.
👍16🔥5❤‍🔥21