Altifigence Academy

11 / 20 · Теория

Масштабируйте до N×N и считайте фронты завершения

Параметризуйте пространственный размер N отдельно от длины свёртки K.

Разделяйте пространственный размер и длину свёртки

Сетка PE N×N производит один выходной блок N×N. K — размерность свёртки, не обязательно равная N. При N=3 и K=5 матрица A имеет размер 3×5, B — 5×3, C — 3×3. Девять PE потребляют по пять членов, выполняя сорок пять MAC. N определяет соединения и сдвиг; K — разрядность накопления, подсчёт членов и длительность подачи.

Используйте установленное соглашение: clear заканчивается до E0, входы стабильны до E_t, MAC и регистровая пересылка происходят на этом фронте, дополнительного конвейера умножителя нет. A(i,k) подаётся на k+i и проходит j переходов. B(k,j) подаётся на k+j и проходит i переходов. Оба достигают PE(i,j) на k+i+j.

tlast(i,j)=K−1+i+jt_{last}(i,j)=K-1+i+j

Последний PE завершает после E_(K+2N−3). Подсчёт включая E0 даёт K+2N−2 фронтов advance. При N=K=2 номер последнего фронта — три, число фронтов — четыре. При N=3, K=5 последний номер — восемь, число — девять.

Параметризуйте связи и счётчики

В столбце ноль вход A элемента PE приходит с границы; в остальных — с зарегистрированного выхода A левого соседа. Правило B аналогично для верхней границы и соседа сверху. Соединяйте valid и метки job/k теми же связями и распространяйте общие clear и advance на сетку.

Требуйте N≥1, K≥1 и AW≥2W. Счётчик, хранящий от нуля до K, требует max(1,ceil(log2(K+1))) бит. Метка k, хранящая от нуля до K−1, требует max(1,ceil(log2 K)) бит. Эти ширины различаются, когда K — степень двух; избегайте объявлений нулевой ширины при K=1.

Последняя граничная подача происходит на E_(K+N−2), затем следуют N−1 фронтов опустошения. Подсчёт вычислений исключает инициализацию, загрузку памяти и передачу выхода. С P фронтами паузы прошедшие физические фронты составляют K+2N−2+P. Дополнительные ступени конвейера требуют нового временного анализа.

Попробуйте сами

При N=4, K=3 найдите первый/последний фронты MAC для PE(2,1), последний фронт сетки, число вычислительных фронтов и физических фронтов с двумя паузами.

Прочитать объяснение

PE(2,1) потребляет k0 на E3 и k2 на E5. Сетка завершает после E8, требуя девять фронтов advance E0..E8. Две паузы дают одиннадцать физических фронтов, исключая инициализацию и передачу выхода.

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