Altifigence Academy
Аппаратное обеспечение ИИБесплатно · Продвинутый

Проектирование RTL: ускорители CNN

Изучите индексацию свёртки и целочисленные числовые требования, затем потоковые окна, отображение на PE и разбиение на блоки. Проверьте исполняемый эталон и небольшой путь инференса, разделяя значения, оценки расписания и трафик.

Инференс CNNСвёртка и квантованиеПотоковые окнаPE и разбиение на блокиВерификация золотой моделью
Моё обучение

Чему вы научитесь

  • Вычислять формы и индексы свёртки с шагом, дополнением, прореживанием и каналами
  • Задавать единицы фиксированной точки, масштабы, нулевые точки, разрядность аккумулятора, округление и насыщение
  • Сравнивать прямую свёртку с золотой моделью im2col
  • Генерировать окна строчными буферами и приёмом передач, сохраняющим состояние при паузе
  • Вычислять повторное использование PE, хранение блоков, трафик и допущения расписания
  • Сообщать числовые результаты и границы доказательств небольшого пути инференса

Перед началом

Упражнения в браузере используют учебные модели и не компилируют и не запускают HDL. Для отдельного запуска исходного кода следуйте руководству Digital Design Studio для вашей ОС и войдите в аккаунт, если этого требует операция.

Установка и первый запуск ↗ · Загрузки ↗

Программа

  1. Спецификация инференса
    • Инференс и обучениеТеория

      Если только число выходных каналов увеличится с трёх до шести, как изменятся число 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?

  2. Числовая спецификация
    • Биты и единицы фиксированной точкиТеория

      Умножьте 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. Каковы код и деквантованное значение и какое утверждение вы добавите?

  3. Эталонные операторы
    • Эталон прямой свёрткиТеория

      Для входов [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]. Каков итоговый код?

  4. Генерация потоковых окон
    • Строчные буферы и окна 3×3Теория

      При W=8,H=6 вычислите места хранения, индекс первого достоверного принятого входа и общее число окон.

    • Ready/valid и остановленное состояниеТеория

      Выходная ступень удерживает A с out_ready=0 при достоверном входе B. Что должны сделать ступень и производитель на следующем фронте?

    • Лабораторная работа: окна, переживающие паузыПрактика

      Если вместо этого приостановить такты ноль,один,два и все входы со временем принять, изменятся ли значения или число окон? Каково общее число тактов?

    • Проверка: время первого окнаПроверка знаний

      Генератор 3×3 без дополнения для 4×4 ширины четыре не принимает вход в первые четыре такта, затем принимает пиксель каждый такт. Каковы индекс принятого входа первого окна и прошедший такт, оба с нуля?

  5. Отображение на 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.

  6. Верификация и измеримый итоговый проект
    • Золотые модели и классификация ошибокТеория

      Эталон [37,47;67,77] отличается от [38,48;68,78]. Что вы исследуете сначала и что запишете?

    • Лабораторная работа: испытайте угловые случаиПрактика

      В примере дополнения замените каждый вес ядра единицей. Каков первый выход и почему теста только центра недостаточно?

    • Итоговый проект: малый путь инференса и отчётПрактика

      Сохраните K=9,четыре выхода и один дополнительный такт на выход, но используйте три PE. Каковы общие моделируемые такты и загрузка мест только MAC?

    • Итоговая проверка: заявления и свидетельстваПроверка знаний

      Запуск итогового проекта Node проверяет числовое согласие, 36 MAC, модель расписания в 24 такта и 90% использования мест MAC. Какое заявление о завершении точно?

Выбор действует в этом браузере. Его можно изменить внизу страницы.