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 с большим количеством векторных линий.
Замечательная статья от исследователей из 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).
Однако, поскольку на сегодняшний день не все компании реализуют эту аппаратную логику в своих чипах, программистам приходится учитывать особенности конкретного аппаратного обеспечения. Это усложняет процесс разработки ПО и делает код менее портируемым и аппаратно-независимым.
Например, в руководстве (RISE Optimization Guide) явно указано следующее:
В данный момент в сообществе существует условно два подхода к использованию 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.
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ć
Несмотря на то, что работа была написана в далёком 1987 году, считаю важным с ней ознакомиться.
Автор — один из основателей SiFive, соавтор векторной спецификации RISC-V и участник команды, внесшей вклад в культовую книгу Computer Architecture: A Quantitative Approach.
Отличная возможность увидеть, с чего начинался путь Krste в цифровом дизайне и архитектуре компьютеров.
Vector Microprocessors by Krste Asanović
👍26👀6✍2🔥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!😎
Так вот, я подумал — зачем разбирать уже готовые, если можно придумать свои 🙂
Хочу поделиться опытом взаимодействия с организатором площадки для тренинга 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
Forwarded from Паразитное сопротивление
Вышли из тени еще одни желающие сделать чип-дизайн открытым.
Калифорнийский стартап ZeroASIC представил открытую архитектуру FPGA, которую они хотят сделать плисовым аналогом RISC-V. Дизайн самого чипа проприетарный (GF 12 нм), но архитектура описана, а весь маршрут синтеза RTL, генерации и записи битстрима опенсорсный. На гитхабе много интересного.
Предполагается, что найдутся желающие поддержать начинание и организовать концорциум по образцу RISC-V Foundation. Звучит чрезмерно амбициозно, но саму идею демократизации чип-дизайна я могу только поддержать.
Калифорнийский стартап ZeroASIC представил открытую архитектуру FPGA, которую они хотят сделать плисовым аналогом RISC-V. Дизайн самого чипа проприетарный (GF 12 нм), но архитектура описана, а весь маршрут синтеза RTL, генерации и записи битстрима опенсорсный. На гитхабе много интересного.
Предполагается, что найдутся желающие поддержать начинание и организовать концорциум по образцу RISC-V Foundation. Звучит чрезмерно амбициозно, но саму идею демократизации чип-дизайна я могу только поддержать.
👍43🔥3✍1😁1
Те, кто давно читает канал или знаком со мной лично, наверняка знают, что когда речь заходит об учебных программах и курсах по компьютерной архитектуре и цифровому дизайну, я всегда ставлю в пример ETH Zurich.
Недавно наткнулся на интересный вопрос из экзамена курса ETH Zurich.
Думаю, ни для кого не секрет, что ChatGPT и другие модели активно применяются при разработке софта и аппаратурыпривет vibe-кодерам! Но не менее важно, что студенты всё чаще используют их для выполнения домашних заданий и курсовых проектов.
Так вот, в экзамене ETH Zurich в разделе вопросов по Verilog появилась задача с говорящим названием: «Is ChatGPT not Right?»🧐
Суть задачи:
Вы попросили ChatGPT написать за вас простую логику управления движением персонажа в 2D-пространстве на Verilog. Ваша задача:
а) Заменить числовые заглушки на корректные варианты в Verilog коде.
б) (Самое главное!) Определить место в Verilog коде, где ChatGPT допустил ошибку, объяснить её причину и предложить исправление.
На мой взгляд, такой подход невероятно актуален сегодня, когда многие начинающие инженеры излишне доверяют инструментам кодогенерации. При генерации кода на языках описания аппаратуры ошибки и галлюцинации нейросетей встречаются на порядок чаще, чем в задач и примерах для софта.
Предлагаю вам поучаствовать в небольшом интерактиве: найдите место, где ChatGPT сгаллюцинировал, и предложите ваш вариант ответа в комментариях. Вечером я опубликую правильный ответ.
Если вы не хотите сбивать других участников с толку, не стесняйтесь прятать свой ответ под спойлер.
Код и описание задачки смотри в следующем посте😑
Недавно наткнулся на интересный вопрос из экзамена курса ETH Zurich.
Думаю, ни для кого не секрет, что ChatGPT и другие модели активно применяются при разработке софта и аппаратуры
Так вот, в экзамене 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.
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
SIMD Instructions Considered Harmful
Пост Дэвида Паттерсона и Эндрю Уотермана, 2017
Классная статья о развитии векторных архитектур и проблемах, с которыми столкнулись SIMD-расширения от Intel и MIPS, а также о концепции Scalable Vector, лёгшей в основу ARM SVE и RISC-V Vector.
Пост Дэвида Паттерсона и Эндрю Уотермана, 2017
Классная статья о развитии векторных архитектур и проблемах, с которыми столкнулись SIMD-расширения от Intel и MIPS, а также о концепции Scalable Vector, лёгшей в основу ARM SVE и RISC-V Vector.
👍16 8
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
А что тут у нас? Опять манипуляции с термином 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👍4 4
В продолжении темы 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
Эти видеолекции посвящены особенностям и возможностям нового векторного расширения Arm Scalable Vector Extension (SVE).
Рассматриваются ключевые преимущества SVE, включая аппаратно-независимую длину векторов, расширенные инструкции управления памятью и векторами (gather/scatter), механизмы предикации и спекулятивного исполнения, а также особенности программирования векторного сопроцессора.
1) Leveraging SVE Vectorization for HPC Workloads
2) Introduction to Arm SVE
YouTube
[Arm DevSummit - Session] Leveraging SVE Vectorization for HPC Workloads
Abstract: Arm’s SVE units are designed to enable the next generation of high-performance Arm-based processors. They are used in the Fujitsu A64FX which powers the Fugaku supercomputer, one of the fastest in the world. The SVE represents a paradigm shift for…
👍9✍4 3👀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
Сегодня хочу поделиться с вами 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🔥13❤9👍9 9
70% Size, 100% Accuracy:
Lossless LLM Compression for Efficient GPU
Inference via Dynamic-Length Float
Новый день - новый формат флота. В этот раз с динамической экспонентой.
В статье представлен метод Dynamic-Length Float (DFloat11) — фреймворк сжатия весов больших языковых моделей без потери точности, который позволяет снизить объём памяти и при этом сохраняет совместимость с эффективным выполнением инференса на GPU.
Эксперименты на популярных моделях, таких как Llama-3.1, Qwen-2.5 и Gemma-3, подтвердили эффективность подхода, который значительно повышает пропускную способность и окно контекста.
Что-то похоже было у Tesla Dojo Technology - Configurable Float8 (CFloat8) пару лет назад.
CFloat:
Делит фиксированные 8 бит между мантиссой и экспонентой, а также использует настраиваемый сдвиг экспоненты, но не использует энтропийное кодирование.
DFloat11:
Сжимает данные за счёт энтропийного кодирования экспоненты, что позволяет уменьшить общий размер хранения без потери точности - не изменяет ширину поля мантиссы.
https://arxiv.org/pdf/2504.11651
p.s. А мой любимый Posit всё так и не находити скорее всего не найдет применения в современных задачах для AI/ML👋
Lossless LLM Compression for Efficient GPU
Inference via Dynamic-Length Float
Новый день - новый формат флота. В этот раз с динамической экспонентой.
В статье представлен метод Dynamic-Length Float (DFloat11) — фреймворк сжатия весов больших языковых моделей без потери точности, который позволяет снизить объём памяти и при этом сохраняет совместимость с эффективным выполнением инференса на GPU.
Эксперименты на популярных моделях, таких как Llama-3.1, Qwen-2.5 и Gemma-3, подтвердили эффективность подхода, который значительно повышает пропускную способность и окно контекста.
Что-то похоже было у Tesla Dojo Technology - Configurable Float8 (CFloat8) пару лет назад.
CFloat:
Делит фиксированные 8 бит между мантиссой и экспонентой, а также использует настраиваемый сдвиг экспоненты, но не использует энтропийное кодирование.
DFloat11:
Сжимает данные за счёт энтропийного кодирования экспоненты, что позволяет уменьшить общий размер хранения без потери точности - не изменяет ширину поля мантиссы.
https://arxiv.org/pdf/2504.11651
p.s. А мой любимый Posit всё так и не находит
Please open Telegram to view this post
VIEW IN TELEGRAM
👀13👍6😁2
16, 8, and 4-bit Floating Point Formats – How Does it Work?
Классная статейка про работу с low-precision флотами.
Также упоминаются более продвинутые методы, применяемые в больших моделях, вплоть до 2-битного и тернарного представления весов.
Классная статейка про работу с low-precision флотами.
Также упоминаются более продвинутые методы, применяемые в больших моделях, вплоть до 2-битного и тернарного представления весов.
Towards Data Science
16, 8, and 4-bit Floating Point Formats - How Does it Work? | Towards Data Science
Let's go into bits and bytes
👍22
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16👍4
An alternative design would have been to first convert from FP32 to BF16, rounding to odd, then use the instructions defined in the previous section to convert to OFP8. However, FP32 to OFP8 conversion is common enough to justify the direct conversion.
Интересный программный хак упомянули в сабсете векторных RISC-V инструкций для поддержки BF16 и операций преобразования для типов данных OFP8.
Чтобы избежать необходимости аппаратной реализации quad‑narrowing при конверсии FP32 в OFP8, можно использовать следующую последовательность из двух шагов, при этом сохраняя высокую точность операций конверсии:
1)
FP32 → BF16 с обязательным режимом округления rounding to odd.
2) BF16 → OFP8 с требуемым режимом округления.Дополнительные материалы по теме:
Черновик спецификации Zvfbfa доступен на GitHub.
Arm A64 Instruction Set Architecture: FCVTXN, FCVTXN2.
GitHub
riscv-misc/isa/zvfbfa.adoc at main · aswaterman/riscv-misc
Contribute to aswaterman/riscv-misc development by creating an account on GitHub.
👍8✍3
Открытое RISC-V ядро Sargantana, разработанное инженерами из группы Laboratory for Open Computer Architecture (LOCA) при Barcelona Supercomputing Center (BSC), получило масштабное обновление:
🎉 RISC-V Vector Extension (RVV) версии 1.0 (пока без поддержки инструкций с конфигурации длины вектора, для LMUL > 1 и без векторных инструкций для работы с плавающей точкой).
Подробнее ознакомиться с обновлением можно в исходниках проекта:
Исходный код ядра Sargantana
Исходный код VPU
🎉 RISC-V Vector Extension (RVV) версии 1.0 (пока без поддержки инструкций с конфигурации длины вектора, для LMUL > 1 и без векторных инструкций для работы с плавающей точкой).
Подробнее ознакомиться с обновлением можно в исходниках проекта:
Исходный код ядра Sargantana
Исходный код VPU
👍16 3🔥1
Basilisk: A 34 mm² End-to-End Open-Source
64-bit Linux-Capable RISC-V SoC in 130nm BiCMOS
Linux-Capable процессор полностью спроектированный при помощи открытых EDA инструментов.
Для верификации, вероятно, всё ещё применялись коммерческие инструменты, однако маршрут от RTL до GDSII полностью построен на инструментах с открытым исходным кодом.
Результаты синтеза, техпроцесс IHP130:
Из интересного — можно посмотреть ASIC-оптимизированную имплементацию Fused multiply-add модуля, написанного не через "+" и "*", а через CSA tree. Так что если есть желание покопаться в low-level bit-hacking и посмотреть, что же такое Wallace tree, Booth encoding, Sklansky parallel-prefix adder — welcome.
64-bit Linux-Capable RISC-V SoC in 130nm BiCMOS
Linux-Capable процессор полностью спроектированный при помощи открытых EDA инструментов.
Для верификации, вероятно, всё ещё применялись коммерческие инструменты, однако маршрут от RTL до GDSII полностью построен на инструментах с открытым исходным кодом.
Результаты синтеза, техпроцесс IHP130:
At the nominal 1.2 V
voltage, Basilisk reaches a clock frequency of up to 62 MHz.
At 1.64 V, we reach Basilisk’s peak frequency of 102 MHz.
Из интересного — можно посмотреть ASIC-оптимизированную имплементацию Fused multiply-add модуля, написанного не через "+" и "*", а через CSA tree. Так что если есть желание покопаться в low-level bit-hacking и посмотреть, что же такое Wallace tree, Booth encoding, Sklansky parallel-prefix adder — welcome.
✍21🔥12 9👍2