180 likes | 470 Views
Применение конвертируемых режимов адресации для повышения производительности сопроцессоров цифровой обработки сигналов в составе многоядерной СнК. Пантелеев Алексей Юрьевич Шагурин Игорь Иванович. Национальный исследовательский ядерный университет «МИФИ». Введение.
E N D
Применение конвертируемых режимов адресации для повышения производительности сопроцессоров цифровой обработки сигналов в составе многоядерной СнК Пантелеев Алексей Юрьевич Шагурин Игорь Иванович Национальный исследовательский ядерный университет «МИФИ»
Введение • DSP-процессоры поддерживают специальные режимы адресации • Пост-инкремент (обработка массивов данных) • Адресация по модулю (кольцевой буфер) • Такие режимы повышают производительность • В векторных процессорах не используются • Вектора заменяют циклы и пост-инкремент • Простые режимы адресации: • С заданным шагом: VecA[N] = Mem[Base + N * Step] • Косвенная векторная: VecA[N] = Mem[VecB[N]]
Адресация в алгоритмах DSP • Простое БПФ пооснованию 2: • Бит-реверсная перестановка отсчетов • Транспонирование в пространстве {0,1}N • БПФ как двумерное разложение: • Бит-реверсная перестановка векторов • Транспонирование двумерной матрицы • Свертка и корреляция: • Адресация векторов по некратному смещению
Проблема • Формы доступа к данным в алгоритмах DSP плохо согласуются с тем, что поддерживается векторными процессорами: • Быстрое транспонирование требует поддержки косвенной векторной адресации либо произвольной перестановки данных в регистрах • Свертка требует загрузки векторных регистров на каждой итерации алгоритма • Вычисление векторов адресов требует дополнительных ресурсов процессора
Решение • Векторная память с несколькими банками • Число банков соответствует числу вычислительных конвейеров • По аналогии с разделяемой памятью в CUDA/OpenCL • Один запрос, разные адреса для банков • Реализуются различные режимы доступа • Адреса генерируются аппаратно в соответствии с режимом и настройками – нет необходимости тратить на это инструкции • Конфликты банков невозможны
Программная модель • Инструкции работают с векторами из чисел • Переменная длина вектора • От 1 до 256 векторных элементов • Векторный элемент – «квант» доступа в память • Вектора называются «регистрами» и находятся в «сегментах» • Регистры размещаются в векторной памяти • Сегмент – независимая область памяти • В инструкциях указывается сегмент и регистр(«C12») • Каждый сегмент имеет свой режим адресации
Режимы адресации • 5 режимов адресации: • Простой • Скалярный • Сверточный • Матричный прямой • Матричный транспонированный • Переключение режима меняет представление данных • Не все режимы совместимы друг с другом
Режимы адресации • Первая группа: простой, сверточный, скалярный • Загрузка и выгрузка – только в простом • Скалярный – только для чтения • Вторая группа: матричные режимы • Загрузка и выгрузка – в любом из двух режимов • Размер матрицы – N * 2k, измерения независимы • «Бесплатное» транспонирование матриц
Размещение матриц в памяти Прямой матричный режим
Размещение матриц в памяти Транспонированный матричный режим
Реализация БПФ Схема алгоритма для БПФ-16
БПФ в потоковом режиме Представлены времена для БПФ-1024 на ВКС с 8 конвейерами
Производительность БПФ При обработке БПФ на сопроцессорах с большим количеством параллельных вычислительных устройств производительность может быть ограничена передачей данных. Применение конвертируемых режимов адресации снижает объем передаваемых данных.
Сравнение производительности БПФ Млн. отсчетов в секунду, лог. масштаб
Заключение • Предложена система векторной памяти с поддержкой конвертируемых режимов адресации данных • Плюсы: • Реализуются типичные для DSP формы доступа • «Бесплатное» транспонирование матриц • Минусы: • Все рабочие данные необходимо хранить в SRAM большого объема с малым количеством портов • Схемы генерации адресов удлиняют конвейер
Спасибо за внимание! • Вопросы? • Адрес для связи: apanteleev87@gmail.com