Применение конвертируемых режимов адресации для повышения производительности сопроцессоров цифровой обработки сигналов в составе многоядерной СнК Пантелеев Алексей Юрьевич Шагурин Игорь Иванович Национальный исследовательский ядерный университет «МИФИ»
DSP-процессоры поддерживают специальные режимы адресации – Пост-инкремент (обработка массивов данных) – Адресация по модулю (кольцевой буфер) Такие режимы повышают производительность В векторных процессорах не используются – Вектора заменяют циклы и пост-инкремент – Простые режимы адресации: С заданным шагом: VecA[N] = Mem[Base + N * Step] Косвенная векторная: VecA[N] = Mem[VecB[N]] Введение 2
Простое БПФ по основанию 2: – Бит-реверсная перестановка отсчетов – Транспонирование в пространстве {0,1} N БПФ как двумерное разложение: – Бит-реверсная перестановка векторов – Транспонирование двумерной матрицы Свертка и корреляция: – Адресация векторов по некратному смещению Адресация в алгоритмах DSP 3
Формы доступа к данным в алгоритмах DSP плохо согласуются с тем, что поддерживается векторными процессорами: – Быстрое транспонирование требует поддержки косвенной векторной адресации либо произвольной перестановки данных в регистрах – Свертка требует загрузки векторных регистров на каждой итерации алгоритма – Вычисление векторов адресов требует дополнительных ресурсов процессора Проблема 4
Векторная память с несколькими банками – Число банков соответствует числу вычислительных конвейеров – По аналогии с разделяемой памятью в CUDA/OpenCL Один запрос, разные адреса для банков – Реализуются различные режимы доступа – Адреса генерируются аппаратно в соответствии с режимом и настройками – нет необходимости тратить на это инструкции – Конфликты банков невозможны Решение 5
Схема блока памяти 6
Инструкции работают с векторами из чисел Переменная длина вектора – От 1 до 256 векторных элементов – Векторный элемент – «квант» доступа в память Вектора называются «регистрами» и находятся в «сегментах» – Регистры размещаются в векторной памяти – Сегмент – независимая область памяти – В инструкциях указывается сегмент и регистр («C12») – Каждый сегмент имеет свой режим адресации Программная модель 7
5 режимов адресации: – Простой – Скалярный – Сверточный – Матричный прямой – Матричный транспонированный Переключение режима меняет представление данных – Не все режимы совместимы друг с другом Режимы адресации 8
Первая группа: простой, сверточный, скалярный – Загрузка и выгрузка – только в простом – Скалярный – только для чтения Вторая группа: матричные режимы – Загрузка и выгрузка – в любом из двух режимов – Размер матрицы – N * 2 k, измерения независимы – «Бесплатное» транспонирование матриц Режимы адресации 9
10
Размещение матриц в памяти 11 Прямой матричный режим
Размещение матриц в памяти 12 Транспонированный матричный режим
Реализация БПФ 13 Схема алгоритма для БПФ-16
БПФ в потоковом режиме 14 Представлены времена для БПФ-1024 на ВКС с 8 конвейерами
Производительность БПФ 15 При обработке БПФ на сопроцессорах с большим количеством параллельных вычислительных устройств производительность может быть ограничена передачей данных. Применение конвертируемых режимов адресации снижает объем передаваемых данных.
Сравнение производительности БПФ 16 Млн. отсчетов в секунду, лог. масштаб
Предложена система векторной памяти с поддержкой конвертируемых режимов адресации данных Плюсы: – Реализуются типичные для DSP формы доступа – «Бесплатное» транспонирование матриц Минусы: – Все рабочие данные необходимо хранить в SRAM большого объема с малым количеством портов – Схемы генерации адресов удлиняют конвейер Заключение 17
Вопросы? Адрес для связи: Спасибо за внимание! 18