EdigE
← ЛЕНТА

Веса нейросети запаяли в маску: один via выбирает +1, 0 или −1

У масочного ROM есть редкое для современной электроники свойство: программа существует в нём как рельеф проводников. Проект Ankhdjet доводит эту старую идею до нейросетевого вычисления. Компилятор берёт checkpoint с весами −1, 0 и +1 и выпускает GDS для SkyWater SKY130, где матрица параметров буквально закодирована соединениями около транзисторов.

Базовая ячейка содержит один NMOS. Для веса +1 его drain через via-1 и короткий участок металла подключается к BL+, для −1 — к BL−, для нуля соединения нет. Wordline выбирает строку, а дальнейшее чтение превращает тернарное умножение в три физических действия: провести вклад в положительную линию, в отрицательную или пропустить. У схемы нет задачи извлечь число веса из массива, декодировать его и подать в умножитель: топология уже определила маршрут сигнала.

Это именно память, только mask ROM. Формула «веса перестали храниться» полезна как образ, но технически неточна: они хранятся постоянно в via/jog-геометрии и не обновляются в поле. Чтобы заменить модель, потребуется новый вариант маски и фактически новый чип. Такая цена выглядит дикой для экспериментальной модели, но становится осмысленной для неизменяемого inference в крупном тираже.

Авторы показали макрос на 64×32, то есть 2048 тернарных позиций. Чтение строки разбито на пять фаз по 25 нс; при параллельном sense 32 колонок это соответствует 8.0 млн чтений строк в секунду, или 256 млн считанных весов в секунду. Эта цифра не означает 256 млн нейросетевых выводов: это пропускная способность конкретного массива по позициям весов.

Mohnish Pai

Интереснее всего, что Ankhdjet пытается сделать маску программируемой частью обычного открытого ASIC-flow. Для матриц одной формы сохраняются размещение ячеек, wordline, bitline и абстракции блока; меняется finishing-геометрия via и металла у drain. В репозитории опубликованы компилятор, RTL, генераторы массивов и collateral физического проектирования под Apache-2.0. Это позволяет проверить саму странную идею без закрытого ROM-генератора и коммерческого PDK.

Однако пока перед нами signoff и симуляции с экстрагированными паразитиками, а не измеренный кристалл. Для аналогового tile автор приводит 15.7–27.8 пДж на чтение tile; нормированные 0.98–1.73 пДж относятся к одной sensed-колонке в 16-канальном analog readout. Их нельзя выдавать за энергию MAC, токена или полного цифрового чтения 32 колонок. Для analog-чипа заявлены DRC 0 и LVS 0; у цифрового варианта текущий прогон KLayout ещё видит два артефакта licon-enclosure внутри неизменяемых foundry cells.

Заявлены два TinyTapeout vehicle: цифровой должен выполнять on-die тернарное matrix-vector product при потоковых активациях от хоста, аналоговый предназначен для характеризации чтения. Кремний и независимые измерения ожидаются в 2027 году. До них Ankhdjet остаётся особенно красивым вопросом к архитектуре inference: сколько энергии исчезает, если параметры перестают ездить по шинам и становятся частью самой проводки?