Диссертация (1150736), страница 25
Текст из файла (страница 25)
Ограничивающим фактором при таком выборе процессорного элемента является количество чтений из памяти.Лемма 26 Пусть = 2 и конвейер имеет длину . Тогда время исполнениябыстрого алгоритма Шура 2 () для вещественных данных на 2 процессо+−(), где() ≤ 2 () ≤ 2рах удовлетворяет неравенству 2−2() = 2− (13 · 2 − 1.5 + 1.252 − 1.25 2 − 7.75)+( − 1)(13 · 2 − 2 − 4),+2() = 2− (17 · 2 − 1.5 + 1.252 − 1.25 2 − 2.75)+( − 1)(17 · 2 − 2 − 4).Доказательство. Время исполнения быстрого алгоритма Шура для вещественных данных на 2 процессорах можно представить в виде2 () = 2 (2 ) = ˆ2 (2 ) + ( − 1) (2 ),где ˆ2 - время исполнения при длине конвейера = 1.
Поскольку для началазависимых вычислений требуется очистка конвейера.Вычислим ˆ2 . Быстрый алгоритм Шура содержит 2−+1 последовательновыполняемых подзадач размера 2−1 , каждая из них выполняется за длинукритического пути (2−1 ) при = 1Оставшиеся 1 (2 ) − 2−+1 1 (2−1 ) на более высоких уровнях рекурсииоперации идеально распараллеливаются на 2 процессоров без простоя.2 (2 ) = 2−+1−1 (21 (2 ) − 2−+1 1 (2−1 ))++ ( − 1) (2 )2 (1) = 1 (1)2+1 (2 ) = (2 )Вычислим верхнюю и нижнюю оценки для 2 (2 ) используем верхние инижние оценки для 1 и .2− (2 )−+1=2−(2−1 )1− (2 ) − 2−+1 1+ (2−1 )−+ ( − 1)(2 )+2= 2− (13 · 2 − 1.5 + 1.252 − 1.25 2 − 7.75) + ( − 1)(13 · 2 − 2 − 4)1582+ (2 )=2−+1+(2−1 )1+ (2 ) − 2−+1 1− (2−1 )+++ ( − 1)(2 )2= 2− (17 · 2 − 1.5 + 1.252 − 1.25 2 − 2.75) + ( − 1)(17 · 2 − 2 − 4)Вычислим среднюю оценку2* (2 )2− (2 ) + 2+ (2 )=2(4.2)= 2− (15 · 2 − 1.5 + 1.252 − 1.25 2 − 5.25) + ( − 1)(15 · 2 − 2 − 4)4.5.4Оценка оптимального параллелизмаПредположим, что требуется разработать блок аппаратного ускорения вычисления быстрого алгоритма Шура для задачи акустического эхоподавления.Частота дискретизации 16 кГц, длина импульсной характеристики 4096 отсчетов, что соответствует длительности 0.25 сек.
Все вычисления будем проводить с плавающей точкой FP32 с округлением денормализованных чисел.Частота адаптации * = 1 Гц.В качестве базового вычислительного блока рассмотрим блок, содержащий один комплексный умножитель, два комплексных сумматора и модульвычисления комплексных экспонент и 1/.Пусть блок имеет конвейер длины = 5. Для последовательного вычисления БПФ по основанию 4 требуется ≥ 4. Кроме того, по теореме 10 дляприменения однопортовой 1rw памяти должно быть нечетным.Пусть блок не хранит данные в памяти во время простоя, загрузка и выгрузка осуществляется до и сразу после завершения вычислений.
Следовательно, количество вентилей в неоключаемой от питания во время простоячасти схемы 0 = 0. Следует обратить внимание, что данный блок является универсальным акселератором вычисления БПФ и векторных вычисленийи не специфичен для алгоритма Шура. При добавлении к модулю вычисления элементарных функций дополнительных таблиц для вычисления log2 и√, что незначительно увеличивает его размер, этот блок покрывает широкийкласс алгоритмов цифровой обработки сигналов.159По лемме 22 для реализации быстрого алгоритма Шура длины 4096 с данными FP32 необходимый размер памяти составляет 64 Кибибайта.Воспользуемся таблицами 1.2 и 1.5. При использовании однопортовой памяти количество вентилей памяти можно оценить как 1 = 48 , где количество вентилей умножителя FP32 без денормализации.Будем рассматривать простейшие реализации комплексного умножителя ввиде 4 вещественных умножителей и 2 вещественных сумматоров и комплексного сумматора в виде 2 вещественных сумматоров.
Дополнительные таблицыдля 1/ оценим как 0.5 от от площади блока. Воспользуемся таблицами 1.4и 2.3.Таблица 4.4: Размер вычислительной части блока в вещественныхумножителях FP32 w/o denormОперацияКоличествоКомплексное умножениеРазмер1Умножение4MСложение20.64MКомплексное сложение2СложениеКомплексная экспонента и 1/20.64M2.51.5MВсего10.31MВ таблице 4.4 приведен расчет количества вентилей в вычислительной чаˆ2 = 10.31 .сти блока, общее количество составляет По формуле 1.4 без распараллеливания мощность равнаˆ2 + 1 ) = 58.31,1 = (0 / + 1 )(где - некоторая константа, не зависящая от алгоритма.Минимальная мощность при бесконечном распараллеливании равна 0 =10.31, что соответствует уменьшению энергопотребления в 6 раз или на 82%.Предположим, что внешний интерфейс блока имеет ширину 64 бита.
Пустьоперации загрузки и выгрузки данных происходят без перекрытия через внешний интерфейс блока, то есть за такт происходит чтение или запись словапамяти.160Будем рассматривать только распараллеливание в степень 2 раз = 2 .Такой выбор связан со сложностью разбиения памяти на банки и организацииих адресации в других случаях.Оценим общее время работы в тактах, используя оценку времени исполнения на 2 процессорах 2* (2 ).¯2 (2 ) = 2* (2 ) + (2 )Здесь () = 2 - время ввода-вывода данных. За один такт происходитчтение или запись пары вещественных данных.Используя оценку 4.2, определим¯2 (2 ) = 2− (15·2 −1.5+1.252 −1.25 2 −5.25)+4(15·2 −2−4)+2+1= 77 · 2 + 2− (1.252 − 1.25 2 − 1.5 − 5.25) − 8 − 16.Общее время работы алгоритма без распараллеливания¯1 (2 ) = 77 · 2 + 2 (1.252 − 5.25) − 8 − 16.При = 12, = 0 и скважности = 1 тактовая частота = * ¯1 (4096) ≃1.03 МГц, что находится в интервале линейного роста мощности от частотыдля низкомикронных литографических процессов.Для распараллеливания БПФ в раз на однопортовой памяти используяалгоритм из теоремы 10 требуется 2 банков памяти.
Однако на практике минимальный размер банка однопортовой статической памяти в библиотеках составляет 8 Кибибайт, что соответствует максимальному распараллеливанию в4 раза.Воспользуемся формулой 1.5 оптимального параллелизма на основе законаАмдала.Критический путь¯ (2 ) = ¯2+1 (2 ) = 77 · 2 − 10 − 20.Таким образом, для = 12, нераспараллеливаемая часть алгоритма длязакона Амдала =¯ (4096)¯1 (4096)=≃ 0.31√︂0 = arg min =48(1 − )≃ 3.2510.31161Ближайшее допустимое распараллеливание равно 4. Данная оценка не учитывает граф вычислений а только длину критического пути.Вычислим оценку мощности, используя формулу 1.4 () = ˆ 2 + 1,* ()* () =.1 + ( − 1)При этом мощность (4) ≃ 42.77, что соответствует уменьшению мощности на 27%.Проверим адекватность этой оценки, проведя более точные вычисления наоснове времени работы алгоритма в зависимости от распараллеливания.Заменим заменим оценку функции ускорения по закону Амдала на ее определение в оценке мощности 1.4¯1 (2 )() = ¯ (2 )77 · 2 + 2 (1.252 − 5.25) − 8 − 16,77 · 2 + 2− (1.252 − 1.25 2 − 1.5 − 5.25) − 8 − 16При = 2 и = 4 мощность составляет соответственноˆ2 +1 ) () = ( (2) ≃ 44.43 (4) ≃ 42.07.Таким образом, оптимальный параллелизм равен = 4, что приводит куменьшению мощности на 28%.Оценка оптимального параллелизма и мощности на основе закона Амдалаобеспечивает адекватные качественные результаты, близкие к оценке мощности на основе анализа времени работы алгоритма.Мы можем использовать регистровую двухпортовую память, блоки которой имеют меньший размер, но большую площадь одной ячейки.
Минимальный размер блока составляет 1 Кибибайт. Допустимое распараллеливание составляет = 1..64. При этом относительная площадь 64К памяти составляет1 = 96 , а (1) = 106.31.Опять воспользуемся формулой 1.5 оптимального параллелизма на основезакона Амдала.√︂0 = arg min =16296(1 − )≃ 4.610.31Вычислим оценку мощности, используя формулу 1.4 и функцию ускоренияпо Амдалу для ⌊0 ⌋ = 4 и ⌈0 ⌉ = 8.При этом мощность (8) = 70.06, а (4) = 65.78, что соответствуетуменьшению мощности на 38%.Используем функцию ускорения на основе анализа алгоритма. Вычислимдля такой архитектуры значения () и () для степеней 2 в интервале параллелизма = 1..64.Таблица 4.5: Зависимость мощности от параллелизма при использованиирегистровой памяти.1() ()/1106.312 1.5475.542.164.6982.668.66162.989.44323.1137.4364 3.19236.78По таблице 4.5 видим, что минимальная мощность (4) = 64.69 достигается при = 4, что совпадает с оптимумом при использовании законаАмдала.Обе оценки мощности больше, чем оценки мощности при использованииоднопортовой памяти и = 4.Мы можем заключить, что оптимальной с точки зрения энергоэффективности для реализации быстрого алгоритма Шура в поставленных условиях является архитектура с 4 параллельными вычислительными блоками и 8 банкамиоднопортовой статической памяти.