Архитектура ИИ-чипов: от базовых логических гейтов до систолических массивов 🧠 0:00
Проектирование микросхем — это искусство баланса между вычислениями и стоимостью передачи данных. В основе современного ИИ-чипа лежит фундаментальная задача: эффективное умножение матриц. По словам Райнера Поупа, генерального директора MatX, понимание работы «железа» начинается с базовых примитивов, которые в конечном итоге масштабируются до сложнейших вычислительных систем.
🛠 Фундаментальные кирпичики: логика и арифметика 0:25
На самом низком уровне чип состоит из логических вентилей (AND, OR, NOT), соединенных металлическими трассами. Основная вычислительная операция, выполняемая ИИ-чипами — это умножение матриц, которое на уровне «железа» сводится к операции «умножить-накопить» (multiply-accumulate, MAC).
- Почему именно MAC? Это естественная операция для матричного умножения: в каждом шаге цикла происходит накопление результата.
- Точность: Поуп отмечает, что при умножении матриц ошибки накапливаются быстрее на этапе накопления. Именно поэтому в ИИ-чипах часто используют низкую точность (например, 4 бита) для умножения, но более высокую (8 бит) для аккумуляции.
- Логические гейты: Для вычислений используются AND-гейты (для умножения битов) и полные сумматоры (full adders, для сложения результатов). Использование 3→2 компрессоров (полных сумматоров) позволяет эффективно суммировать биты в колонках.
С точки зрения Дваркеша Патела, интересным моментом является масштабируемость: Nvidia в последних поколениях чипов (B300) начала официально признавать, что при переходе на FP4 достигается трехкратное ускорение по сравнению с FP8, что близко к теоретическому квадратичному выигрышу от уменьшения точности.
⚡ Проблема передачи данных и систолические массивы 16:11
Значительная часть площади чипа тратится не на сами вычисления, а на перемещение данных из регистрового файла в АЛУ (арифметико-логическое устройство) и обратно через мультиплексоры (mux). Как объясняет Поуп, работа мультиплексора — это «невидимая» для программиста, но чрезвычайно затратная с точки зрения площади операция.
Для решения этой проблемы были внедрены систолические массивы (Tensor Cores в терминологии Nvidia).
- Идея: Вместо того чтобы постоянно гонять данные из регистра в АЛУ, систолический массив «запекает» цикл умножения матриц прямо в аппаратное обеспечение.
- Локализация: Веса матрицы хранятся локально внутри массива, что позволяет использовать их многократно для разных векторов, резко сокращая потребность в пропускной способности памяти.
По мнению Поупа, это фундаментальный сдвиг: вместо того чтобы тратить ресурсы на провода к регистрам, архитекторы стараются наклонить баланс в сторону самих вычислений.
⏱ Синхронизация и тактовая частота 39:08
Тактовая частота определяет, как часто вся схема синхронизируется через регистры.
- Зачем это нужно: Из-за вариативности производства (manufacturing variance) разные части чипа работают с разной скоростью. Если сигналы не синхронизировать, они могут прийти в разные моменты времени, что приведет к ошибкам.
- Компромисс: Разработчики вставляют регистры в логические цепочки (pipeline registers), чтобы разделить длинные пути прохождения сигнала. Однако слишком агрессивная вставка регистров увеличивает площадь и энергопотребление, съедая все преимущества от высокой частоты.
💻 ASIC vs FPGA vs CPU 52:25
Дискуссия затрагивает разницу в подходах к проектированию:
- ASIC: Оптимален по цене и энергии ($30 млн за tape-out), но фиксирован.
- FPGA: Позволяет менять логику («перепрошивать в поле»), но обходится в 10 раз дороже и работает медленнее из-за использования LUT (lookup tables) вместо выделенных гейтов.
- CPU: В отличие от ИИ-ускорителей, процессоры общего назначения страдают от непредсказуемой задержки из-за кэш-систем. ИИ-чипы (например, TPU) используют «скретчпад» (scratchpad) — память, где доступ к данным жестко управляется программно, обеспечивая детерминизм.
В завершение Поуп отмечает, что будущее архитектур, возможно, лежит в «разбиваемых систолических массивах» (splittable systolic arrays), которые могут адаптироваться под разные размеры матриц, сохраняя при этом эффективность GPU и простоту TPU.