Samsung представила свою работу по processing-in-memory на Hot Chips, а опубликованный ранним утром 29 августа материал раскладывает цифры по обе стороны этой сделки. Показатель пропускной способности получил широкое распространение; архитектурная цена — нет.
Где находится пропускная способность
Большой множитель сравнивает пропускную способность, доступную вычислительным блокам внутри устройства памяти, с пропускной способностью, которую то же устройство предоставляет через внешний интерфейс. В этом и состоит смысл вычислений в памяти: широкий внутренний канал — это ресурс, и он существовал всегда; меняется лишь то, что арифметические блоки теперь находятся по его ближнюю сторону. Это не дополнительная пропускная способность, доставленная хост-процессору.
Цена, которую платит хост
Чтобы схема работала, память, содержащая операнды PIM, должна быть отображена как некэшируемая и без спекуляции. Закэшированная копия устареет в тот момент, когда её запишет вычислительный блок внутри памяти, а спекулятивное чтение может запустить вычисление, которого с архитектурной точки зрения никогда не было. Поэтому процессор, обращающийся к этой области, лишается кэширования, теряет аппаратную предвыборку и не может перестраивать порядок вокруг этих обращений. Три механизма, делающие современные ядра быстрыми, отключаются именно для тех данных, которые ускоряют.
Что неверно в распространённой трактовке
В публикациях внутренний показатель подают как прирост на уровне всей системы — словно машина получает в восемь раз больше пропускной способности памяти. Это не так. Корректная формулировка уже, но всё равно интересна: для операций, ограниченных пропускной способностью и арифметически тривиальных, прежде всего поэлементной обработки и редукций при декодировании LLM, перенос операции к данным позволяет избежать обратного пути, который иначе определялся бы внешней шиной. Для всего, что насыщено вычислениями, PIM — не то место, а отключённый кэш приносит чистый ущерб.
Производительность в контексте
Вычисления на корпус, доступные извне, дают несколько INT8 TOPS; восемь таких устройств вместе обеспечивают однозначные десятки TOPS — сопоставимо с NPU в массовом ноутбучном процессоре. Отличительная особенность здесь не сырая производительность, а то, что эта производительность привязана к полной ёмкости памяти этих устройств, а именно это и создаёт проблему при декодировании больших моделей.
