Обновить
128K+

Процессоры

Изучаем мозги вычислительных устройств

146,24
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Как устроены LLM: разбираем на примере 3-уровневой абстракции

Время на прочтение17 мин
Охват и читатели11K

Чтобы оптимизировать производительность больших языковых моделей (LLM), необходимо понимать весь программный стек. Мне не удалось найти подробную статью, которая показывала бы этот стек как общую картину, поэтому я решил написать такую статью сам. Эта статья не является исчерпывающим обзором или набором наилучших практик. Здесь я в большей степени делюсь моими общими представлениями о том, как выглядит ландшафт современных LLM‑систем.

Во‑первых, любая система проектируется с расчётом на достижение конкретных целей с учётом заданных ограничений. В LLM‑системах наиболее принципиальные цели связаны с увеличением пропускной способности и минимизацией задержек. Два этих показателя необходимо оптимизировать в рамках ограничений, задаваемых тремя принципиальными факторами: вычислительные (скорость аппаратных операций и поддерживаемые типы), память (ёмкость и иерархия) и коммуникация (ширина передачи данных в памяти и сети, задержка и иерархия). Эти концепции отлично рассмотрены в книге Scaling Book от Google, а именно в разделе Roofline.

Читать далее

Новости

SoftSerial: Двоичный ЦАП на STM32 (или формирователь цифрового паттерна)

Уровень сложностиПростой
Время на прочтение17 мин
Охват и читатели7.6K

В этом тексте я показал как сделать универсальный полностью конфигурируемый однобитный ЦАП на основе микроконтроллера STM32F407ZG.

Суть проста.
В программе есть RAM массив двоичных семплов длинны N, которые надо отправить "на улицу" со строго выдержанным микросекундным периодом.

Есть частота дискретизации, задаваемая частотой переполнения аппаратного таймера.

Надо выдать на GPIO пин этот поезд из нулей и единиц. Причем сделать это так, чтобы в ARM процессоре было не более 2х прерываний: половина перемещения и окончание перемещения.

В тексте представлена пошаговая методичка того как это сделать.

Читать далее

SoftSerial: Двоичный АЦП на STM32 (или самодельный логический анализатор)

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели9.7K

Можно ли на STM32 реализовать однобитный ADC?
Причем без использования аппаратного ADC.

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

При этом во время чтения N однобитных семплов должно произойти не более 2х аппаратных прерываний.

Да, можно.

Читать далее

О нанометрах. Просто

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.3K

Поговорим о нанометрах. Просто и доступно. Что такое «тонкий» и «толстый» нанометры? В чем отличия? И кто лучше?

Собеседник — Халиль Эль‑Хажж, руководитель службы проектов и внедрения НТЦ «Модуль». В прошлом — старший инженер сектора физического дизайна (топологии) цифровых СБИС НТЦ «Модуль».

Читать далее

Аппаратная безопасность платформ на базе RISC-V

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6K

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

Многие такие изделия хранят или обрабатывают активы, требующие защиты: криптографические ключи, учётные данные, встроенное программное обеспечение, пользовательские данные. Защищённость этих активов определяется в том числе свойствами аппаратной основы. Ошибки разграничения доступа, некорректная конфигурация отладочных интерфейсов, уязвимая цепочка загрузки или недостаточно проверенный сторонний IP-блок могут нарушать предпосылки, на которых основана работа программных средств защиты.

Аппаратная безопасность охватывает вопросы проектирования микроконтроллеров, систем на кристалле, IP-ядер, загрузочных цепочек и других компонентов вычислительных платформ. В рамках одной статьи подробно раскрыть все эти направления невозможно, поэтому ниже приведён вводный обзор основных классов угроз, подходов к верификации, аппаратных механизмов защиты и возможных направлений исследований на базе RISC-V.

Читать далее

Как я учил планировщик класть широкие команды для Эльбруса, и почему LLM проиграла жадному алгоритму за 3 миллисекунды

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели10K

Проще говоря, NEX CLI x Elbrus берет граф и модель e2k‑v6 и показывает: сколько насчитал жадный, сколько мог бы идеальный, и на какой операции и каком канале разница.

Читать далее

Микрокод внутри сопроцессора Intel 8087: обмен регистрами

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели13K

В 1980 году Intel 8087 стал первым массовым математическим сопроцессором компании и заложил основу для современных вычислений с плавающей точкой. Сегодня его уже не встретить в компьютерах, но внутри этого чипа скрыта интересная инженерная история: сложные операции выполнялись с помощью микрокода, записанного в собственном ПЗУ.

В этой статье разберём, как устроен микрокод одной из инструкций 8087 — FXCH, которая меняет местами значения в стековых регистрах. На первый взгляд операция кажется простой, но внутри она превращается в последовательность из 14 микроинструкций с проверкой тегов, обработкой исключений и обменом данных через временные регистры. Посмотрим, как исследователи восстановили эту логику по фотографиям кристалла и что можно узнать о внутреннем устройстве процессора спустя десятилетия после его выхода.

Разобрать 8087

Пишу алгоритм FFT на Си для процессора Эльбрус: прямая векторизация

Уровень сложностиСложный
Время на прочтение192 мин
Охват и читатели18K

Данная статья является продолжением предыдущей статьи.
Здесь рассматривается вариант прямой векторизации алгоритма FFT.
Перед чтением рекомендуется бегло ознакомиться с предыдущей статьёй.

Читать далее

ARM в сервере: будущее инфраструктуры или очередной провал

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

В первом квартале 2026 года 17,7% проданных серверных процессоров были на ARM. AWS уже выпускает пятое поколение Graviton, Google предлагает Axion не только в виртуалках, но и на bare metal, Microsoft разворачивает Cobalt 200, а Oracle использует AmpereOne. При этом индустрия уже дважды хоронила эту архитектуру — в 2013 и в 2018 году. Под катом расскажу, кто лежит на кладбище ARM, почему третий заход оказался успешнее и готов ли ваш стек к переезду.

Читать

Как QEMU исполняет чужой код: изучаем Tiny Code Generator изнутри

Уровень сложностиСредний
Время на прочтение40 мин
Охват и читатели14K

QEMU — это не просто виртуализация с KVM. Его главная cуперсила — способность запускать программы, скомпилированные для одной архитектуры, на совершенно другом процессоре. Безо всякой поддержки со стороны хоста. Например, запустить прошивку для ARM-микроконтроллера на x86-ноутбуке.

Как это работает? Под капотом QEMU скрывается JIT-компилятор под названием TCG (Tiny Code Generator). В этой статье мы разберем его устройство на практических примерах для RISC-V и посмотрим, как инструкции превращаются из одного машинного кода в другой, как формируются блоки трансляции, и зачем там нужны longjmp и цепочки блоков.

Читать далее

PCIe и DDR3 на ПЛИС Gowin: как мы заставили работать то, что не работало у производителя

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели14K

Привет, Хабр! Меня зовут Владимир Заикин. Под руководством Семёна Григорьева @rsdpisuy, я занимаюсь разработкой на ПЛИС в лаборатории YADRO в СПбГУ. Мой рассказ — о том, как мы реализовали общение по PCIe с ПЛИС на плате Sipeed Tang Mega 138K Pro с кристаллом GW5AST-138K от Gowin.

Устройство, реализованное на ПЛИС, должно было принимать данные по PCIe, сохранять их в DDR3 и обрабатывать пользовательской логикой. Чтобы реализовать такую функциональность, мы обратились к примеру взаимодействия с PCIe-контроллером от производителя платы, но тот оказался нерабочим. Пришлось разбираться самим. В итоге мы сделали рабочий стенд: Linux-драйвер, хост-программа на C и аппаратное описание на Verilog. Все это выложили в открытый доступ, чтобы поделиться своим опытом и помочь другим безболезненно разобраться с этой проблемой.

Читать далее

Полупроводниковый завод своими руками

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели96K

Периодически ко мне обращаются люди с вопросами вроде: «Я нашел инвестора на строительство полупроводникового завода, подскажите, с чего начать, какие подводные камни?» или «Я хочу начать производить сенсоры для видеокамер с нуля», ну и опять про подводные камни. Ну, давайте посмотрим, с чего начать и какие подводные камни.

Посмотреть на подводные камни

Самый уникальный x86 процессор из 90-х — Cyrix MediaGX. Как инженерам Cyrix удалось уместить целый компьютер в два чипа?

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели20K

Все мы с вами привыкли к тому, что балом на рынке x86-процессоров правят всем известные Intel и AMD. Некоторые читатели могут вспомнить также процессоры VIA (Centaur), которые массово применялись в тонких клиентах и ноутбуках в середине нулевых, единицы знают про чипы Transmeta серии Crusoe, которые отличались концептуально близкой к Эльбрусу VLIW-архитектурой, ну а совсем уж гики могут вспомнить Vortex86 — экзотические x86-процессоры, предназначенные для встраиваемых систем.

Однако люди незаслуженно забывают про Cyrix MediaGX — уникальный процессор родом из 1997 года, который интегрировал в двух чипах целый компьютер: и видеокарту, и звуковую карту, и PCI/ISA/IDE-контроллеры, и даже USB! Что за чудесный процессор сделала Cyrix, каким образом он прожил почти до конца нулевых, и причём тут AMD - читайте в сегодняшней статье!

Читать далее

Ближайшие события

Глупый пользователь против Умного Ноутбука ч. 2. Флагманы — Зло

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K

Графомания - штука такая. В отсутствии новых идей, приходится возвращаться к старым. Собственно новая статья – является продолжением вот этой вотъ.

Сегодня в программе:

1. P-cores vs E-cores
2. Болезненный переход с АМД на Интел.
3. Почему не получается резать частоту, но можно резать PL.
4. Почему 80 ватт*час для Intel Ultra 9 275HX не тоже самое, что 80 ватт*час для ryzen 5 5600h.
5. Криво нанесенный ЖМ с завода.
6. Троттлинг.
7. Много троттлинга.
8. Графомания.
И полная безграмотность. Всё в общем как всегда.

Похихикать над автором... Снова :-)

Популяризаторство средневековой музыки и книга «Код» виндусоведа Чарльза Петзольда

Время на прочтение3 мин
Охват и читатели14K

Неделя соцсетей прошла под спорами о популяризаторше средневековой музыки с помощью выдуманных баек о ней. Но надо сказать что популяризатор, который создает ошибочную картину мира у широких масс — это не такое редкое явление. Иногда в это оказываются вовлечены большие корпорации, например Микрософт. Я конечно же говорю про изданную Микрософтом книгу Чарльза Петзольда «Код».

Читать далее

Написал свой ассемблер, чтобы понять, откуда берётся ff010113. Почти половину моей программы он выдумывает

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели16K

Написал свой ассемблер, чтобы понять, откуда в дизассемблере берётся ff010113. Заодно посчитал, сколько строк моей программы процессор вообще не умеет исполнять, и проверил это на четырёх наборах команд, включая живой ESP32 на столе. На кристалле первая программа серии сломалась: она пишет в UART быстрее, чем провод успевает передавать, и в эмуляторе этого не видно.

Что сказала плата?

skitter-creek-bath-salts — обход аппаратной изоляции памяти в современных CPU

Уровень сложностиСложный
Время на прочтение30 мин
Охват и читатели15K

Или как получить полный доступ к изнанке CPU через скремблирование DRAM — PSP, C6, микрокоду, среде SMM и всему остальному, что не попало на страницы спецификации.

Всё-таки не всегда &x == &x...

Через вмешательство в работу контроллера DRAM можно сделать так, что обращение по определённому адресу будет вести в любую нужную область памяти. skitter-creek-bath-salts изменяет нижние слои структуры памяти, перестраивая трансляцию физический адресов DRAM. Такой скрэмблинг раскрывает защищённые области памяти, в том числе изолированные зоны, которые не видит даже само ядро. Когда ломается трансляция памяти, следом рушатся построенные на ней механизмы безопасности, и мы получаем доступ буквально ко всему.

Читать далее

Структуры данных на практике. Глава 20: Исследование бенчмарков

Время на прочтение14 мин
Охват и читатели8.8K

«Существуют три вида лжи: ложь, наглая ложь и бенчмарки», — почти Марк Твен

В два часа ночи ведущий архитектор процессорного стартапа Сара Чен получила письмо, которое изменит траекторию движения её компании. Конкурент опубликовал подробный технический анализ, развенчивающий заявления о производительности флагманского продукта компании. Заголовок был жёстким: «Маркетинговый хайп против реальности: как X искусственно увеличила результаты бенчмарков на 300%».

Проблема заключалась не в том, что процессор был медленным; на самом деле, он был вполне хорош. Проблема заключалась в бенчмарке Dhrystone, который компания выбрала для демонстрации. Конкурент подробно показал, как современные компиляторы могут оптимизировать бóльшую часть работы Dhrystone, из‑за чего его результаты становятся бессмысленными. Хуже того: конкурент продемонстрировал это на реальных нагрузках, с которыми работают заказчики, и все преимущества в производительности процессора испарились.

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

Читать далее

Когда Chisel уже недостаточно: создаем свой фреймворк аппаратного тестирования на Verilator

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели11K

Привет! В этой статье я разберу, почему возможностей Chiseltest может не хватать для сложного аппаратного тестирования и как мы пришли к собственному фреймворку на базе Verilator и C++. Поговорим об архитектуре тестового окружения, BFM-агентах, автогенерации обвязки и интеграции с RTL и программными моделями. А заодно обсудим, какие задачи с таким подходом решаются лучше, чем с Chisel, и где все-таки остаются ограничения.

Читать далее

Продление закона Мура — переход на атомные размеры и 3D-архитектуру

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели12K

Закон Мура — это удвоение числа транзисторов на микросхеме каждые 24 месяца, что означает геометрический рост плотности чипов и пропорциональный рост производительности.

На Хабре неоднократно обсуждалось прекращение действия закона Мура (тут, тут и тут). Основной аргумент — то, что транзисторы физически приблизились к минимально возможному размеру. На таких размерах в работу чипов вмешивается квантовая механика.

Но есть факторы, которые поддерживают рост производительности — это научные открытия, новые архитектуры транзисторов, новые материалы, специализированные чипы и др.

Читать далее
1
23 ...