Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемЗоя Каймакова
1 Планирование выполнения инструкций для векторных процессоров с переменной длиной векторов Пантелеев Алексей Юрьевич Национальный исследовательский ядерный университет «МИФИ»
2 Векторные инструкции (SIMD) применяются во многих современных процессорах – MMX, SSE, AVX (X86) – AltiVec (PowerPC) – NEON (ARM) Повышают производительность – Явно параллельная обработка массивов данных Повышают энергоэффективность – Планирование выполнения одной инструкции вместо цикла Введение 2
3 Длина (размерность) векторов 3
4 Переменная длина векторов 4
5 Следующие инструкции используют результаты выполнения предыдущих C = A × B; E = C + D; Когда запускать следующую инструкцию? – Слишком ранний запуск приведет к функциональным ошибкам – Слишком поздний запуск приведет к потере производительности – Существуют простые решения для скалярных и фиксированных векторных инструкций Зависимые инструкции 5
6 Простейшее решение 6
7 Ранний запуск 7
8 Зацепление 8 Требует выполнения зависимых инструкций на разных функциональных устройствах. В данной работе не используется.
9 Одно функциональное устройство – Невозможно использовать зацепление – Поддерживает различные вычислительные операции – Запуск операции – 1 или 2 такта – Длинный конвейер – от 2 до 24 стадий Память: два порта чтения, один порт записи – Операции имеют до трех операндов (например, MAD) – Чтение операндов – от 1 до 3 тактов, зависит от расположения данных Переменная длина векторов Требуется высокая производительность Конкретная задача 9
10 Подготовить план чтения операндов заранее – «На первом такте прочитать операнд А с первого порта» и т.п. Рассчитать время запуска инструкции – Учесть различные планы для данной и предыдущих инструкций В нужное время выполнить план для всех векторных элементов последовательно Решение 10
11 Структурная схема планировщика 11
12 Основной блок планировщика Каждая запись в таблице: – Содержит конечный автомат и несколько регистров для расчета времени – Представляет одну инструкцию, находящуюся в конвейере – Может блокировать выполнение других инструкций, если есть неразрешенная RAW-зависимость Достаточно 4-8 записей, в зависимости от максимальной глубины конвейера и типичной длины векторов Таблица зависимостей 12
13 Пример расчета времени 13 CPE = Cycles Per Element для зависимых инструкций с разной скоростью выполнения
14 Простая тестовая программа: a = a + const; b = b + const; c = c + const; (NI операций) a = a + const; b = b + const; c = c + const; … Аналитический расчет времени выполнения: – T Overall = max (T Issue, T Latency, T Control, T Scoreboard ) – Подробные формулы приведены в печатном варианте доклада Экспериментальная производительность в 97% случаев отличается от теоретической не более чем на 3% Производительность 14
15 Производительность 15
16 Ускорение от раннего запуска 16
17 Представлен способ планирования инструкций для векторных процессоров с переменной длиной векторов: – Поддерживаются зависимые инструкции с разной скоростью выполнения и разной длиной конвейера – Применение раннего запуска повышает производительность на 10 – 90% при использовании коротких векторов Может применяться в сопроцессорах, предназначенных для быстрой обработки небольших вычислительных задач (например, при цифровой обработке сигналов) Заключение 17
18 Вопросы? Адрес для связи: Спасибо за внимание! 18
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.