14 / 20 · Теория
Полоса пропускания и полезная загрузка
Отделяйте пиковую мощность MAC от затрат заполнения, опустошения, дополнения и памяти.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Определите интервал и единицы
Пик сетки N×N — N² MAC на фронт advance. Заполнение и опустошение снижают загрузку изолированного задания. В нашей модели без остановок с полным блоком и пересылкой за один фронт полезная работа равна N²K, доступные места — N²(K+2N−2), поэтому загрузка вычислительного интервала равна K/(K+2N−2).
При N=4, K=16 сетка выполняет 256 MAC за двадцать два фронта advance. Загрузка равна 256/352=8/11, примерно 72.73%. При предполагаемых 100MHz пиковая мощность — 1.6 GMAC/s, а пропускная способность изолированного вычислительного интервала — около 1.164 GMAC/s. Отдельный подсчёт умножения и сложения удваивает число операций. Это оценки при предполагаемой частоте, а не измеренные результаты синтеза.
Вычислите трафик на каждой границе
Подача A и B требует 2NK значений: 128 байт для восьмибитных операндов. PE потребляют 512 значений операндов, показывая четырёхкратное повторное использование каждого граничного входа. Перекрывающийся интервал подачи может требовать восемь байт на фронт, или 0.8GB/s при 100MHz. Пиковая потребность подачи отличается от средней за заполнение и опустошение.
Пусть шестнадцать результатов используют тридцатидвухбитные места хранения, несмотря на двадцатибитный аккумулятор. Записи результатов добавляют шестьдесят четыре байта, поэтому внешний трафик равен 192 байтам без повторного использования между блоками, затрат команд или потерь выравнивания. Арифметическая интенсивность — 256/192=4/3 MAC на байт.
При 0.4GB/s одна передача требует хотя бы 480ns; вычисление — 220ns. Даже идеальное перекрытие не может обойти более длинный интервал, ограничивая пропускную способность примерно 0.533 GMAC/s. Это верхняя граница, а не гарантированная производительность. Без перекрытия загрузка занимает тридцать два фронта, вычисление — двадцать два, сохранение — шестнадцать, всего семьдесят фронтов и около 0.366 GMAC/s до инициализации и других ожиданий.
Дополненный пример 3×3 на N=2 имеет двадцать семь полезных MAC в восьмидесяти местах PE: 33.75% полезной загрузки. Подсчёт MAC дополненных нулей вместо этого даёт 60%, другое измерение. Статья Jouppi и соавторов о TPU — исследовательский источник о разделении пиковой мощности ускорителя и производительности нагрузки; наши числовые примеры выведены из собственного расписания.
Попробуйте сами
Для полного блока N=2, K=8 найдите MAC, вычислительные фронты, загрузку и байты восьмибитных граничных входов.
Прочитать объяснение
Имеется 32 MAC, десять вычислительных фронтов и сорок мест PE, поэтому загрузка — 80%. Граничный вход — 2×2×8=32 байта. Вычислительная загрузка исключает загрузку данных и записи результатов.