Проектирование RTL: ускорители CNN
Изучите индексацию свёртки и целочисленные числовые требования, затем потоковые окна, отображение на PE и разбиение на блоки. Проверьте исполняемый эталон и небольшой путь инференса, разделяя значения, оценки расписания и трафик.
Чему вы научитесь
- Вычислять формы и индексы свёртки с шагом, дополнением, прореживанием и каналами
- Задавать единицы фиксированной точки, масштабы, нулевые точки, разрядность аккумулятора, округление и насыщение
- Сравнивать прямую свёртку с золотой моделью im2col
- Генерировать окна строчными буферами и приёмом передач, сохраняющим состояние при паузе
- Вычислять повторное использование PE, хранение блоков, трафик и допущения расписания
- Сообщать числовые результаты и границы доказательств небольшого пути инференса
Перед началом
Упражнения в браузере используют учебные модели и не компилируют и не запускают HDL. Для отдельного запуска исходного кода следуйте руководству Digital Design Studio для вашей ОС и войдите в аккаунт, если этого требует операция.
Установка и первый запуск ↗ · Загрузки ↗Программа
- Спецификация инференса
- Инференс и обучениеТеория
Если только число выходных каналов увеличится с трёх до шести, как изменятся число MAC и количество хранимых bias?
- Свёртка и взаимная корреляцияТеория
Каковы результаты взаимной корреляции и перевёрнутого ядра для [1,2;4,5] с ядром [1,0;0,-1]?
- Формы, шаг, дополнение и прореживаниеТеория
При H=7,R=3,шаге 2,дополнении сверху 0,снизу 1,прореживании 2 вычислите Ho и входную координату для h=1,r=2.
- Проверка: форма и число MACПроверка знаний
Используйте N=1,C=2,H=W=5,M=3,ядро 3×3,шаг 2,дополнение один со всех сторон,прореживание один. Каковы форма выхода и число MAC?
- Числовая спецификация
- Биты и единицы фиксированной точкиТеория
Умножьте 0.5 и −1.25 при F=4, затем добавьте bias 0.25 при F=8. Каковы код аккумулятора и действительное значение?
- Масштаб и нулевая точкаТеория
При sx=0.25,zx=128 каковы код дополнения и действительное значение q=132? Какой код bias представляет 0.75 при sw=0.5?
- Разрядность аккумулятора, округление и насыщениеТеория
Достаточно ли восемнадцати знаковых бит для девяти произведений signed-int8 с нулевым bias?
- Лабораторная работа: выполните спецификацию квантованияПрактика
Квантуйте −40 с теми же параметрами uint8. Каковы код и деквантованное значение и какое утверждение вы добавите?
- Эталонные операторы
- Эталон прямой свёрткиТеория
Для входов [2,3], весов [4,−1] и bias один какой неверный результат получится, если bias добавлять один раз на итерацию входного канала?
- im2col и умножение матрицТеория
Для H=W=4,C=1 и ядра 3×3 без дополнения вычислите число исходных входных элементов, P,K и элементов расширенных окон.
- Соединение ReLU и максимального пулингаТеория
При нулевой точке выхода uint8 100 примените ReLU и максимальный пулинг 2×2 к [98,103;101,97].
- Проверка: порядок обработки выходаПроверка знаний
Примените множитель 0.5,zy=0,округление к ближайшему чётному,насыщение int8,ReLU и максимальный пулинг 2×2 к аккумуляторам [−1,2;3,−4]. Каков итоговый код?
- Генерация потоковых окон
- Строчные буферы и окна 3×3Теория
При W=8,H=6 вычислите места хранения, индекс первого достоверного принятого входа и общее число окон.
- Ready/valid и остановленное состояниеТеория
Выходная ступень удерживает A с out_ready=0 при достоверном входе B. Что должны сделать ступень и производитель на следующем фронте?
- Лабораторная работа: окна, переживающие паузыПрактика
Если вместо этого приостановить такты ноль,один,два и все входы со временем принять, изменятся ли значения или число окон? Каково общее число тактов?
- Проверка: время первого окнаПроверка знаний
Генератор 3×3 без дополнения для 4×4 ширины четыре не принимает вход в первые четыре такта, затем принимает пиксель каждый такт. Каковы индекс принятого входа первого окна и прошедший такт, оба с нуля?
- Отображение на PE и память
- PE, поток данных и повторное использование MACТеория
Отобразите P=3,M=2,K=8 на четыре PE с неподвижным выходом. Каковы такты MAC и полезная загрузка мест MAC без записей?
- Блоки, окружающие области и частичные суммыТеория
При Th=Tw=2,Tc=1,Tm=2,ядре 3×3,шаге два,прореживании один вычислите байты однобуферных входов/весов/32-битных сумм/bias.
- Границы полосы пропускания и вычисленийТеория
Для 1152 MAC и 224 байт используйте восемь PE, сохранив полосу 0.5 байта/такт. Какова нижняя граница идеального перекрытия?
- Расписания, хвосты и двойная буферизацияТеория
При K=10,четырёх выходах,трёх PE и одном дополнительном такте на выход вычислите моделируемые такты и загрузку только MAC.
- Верификация и измеримый итоговый проект
- Золотые модели и классификация ошибокТеория
Эталон [37,47;67,77] отличается от [38,48;68,78]. Что вы исследуете сначала и что запишете?
- Лабораторная работа: испытайте угловые случаиПрактика
В примере дополнения замените каждый вес ядра единицей. Каков первый выход и почему теста только центра недостаточно?
- Итоговый проект: малый путь инференса и отчётПрактика
Сохраните K=9,четыре выхода и один дополнительный такт на выход, но используйте три PE. Каковы общие моделируемые такты и загрузка мест только MAC?
- Итоговая проверка: заявления и свидетельстваПроверка знаний
Запуск итогового проекта Node проверяет числовое согласие, 36 MAC, модель расписания в 24 такта и 90% использования мест MAC. Какое заявление о завершении точно?