Процессор CELL. Модели программирования. (Часть 2)

Содержание

Слайд 2

Наибольшую трудность при программировании процессора CELL вызывает наличие у SPE ядер

Наибольшую трудность при программировании процессора CELL вызывает наличие у SPE ядер

локальной памяти. Однако, именно локальная память позволяет достичь высокой производительности.

Отличительные особенности

SPE ядра поддерживают параллелизм по данным (SIMD).

В состав процессора входит PPE архитектуры Power, который способен выполнять код ОС, а также программы для процессоров Power без модификации. Но для достижения максимальной производительности необходимо использовать SPE ядра!

Слайд 3

Модель выгрузки функций (function offload model); Модель ускорения вычислений (computational acceleration

Модель выгрузки функций (function offload model);
Модель ускорения вычислений (computational acceleration model);
Потоковые

модели (streaming models);
Модель мультипроцессора с разделяемой памятью (shared-memory multiprocessor model);
Модель ассиметричных потоков (asymmetric thread runtime model).

Рассматриваемые модели программирования

Слайд 4

Наиболее проста в реализации. PPE выполняет основную программу. SPE выполняет код

Наиболее проста в реализации.
PPE выполняет основную программу.
SPE выполняет код функций, критичных

к времени выполнения.
Программист явным образом указывает – какие функции должны выполняться на SPE.

Модель выгрузки функций

Слайд 5

Является развитием предыдущей модели. Более гибкая. SPE выполняют наиболее вычислительно емкие

Является развитием предыдущей модели.
Более гибкая.
SPE выполняют наиболее вычислительно емкие участки кода

программы.
Необходимо распараллеливать программу и данные.
Необходимо организовывать эффективный DMA обмен кодом и данными.

Модель ускорения вычислений

Слайд 6

SPE ядра организуются в вычислительный конвейер. PPE играет роль контроллера потока

SPE ядра организуются в вычислительный конвейер.
PPE играет роль контроллера потока (stream

controller).
Конвейеры могут иметь различную конфигурацию.
Необходимо равномерно загружать SPE ядра для более полной загрузки.
SPE обмениваются сообщениями с PPE и между собой.

Потоковые модели

Слайд 7

CELL можно программировать как мультипроцессор с разделяемой памятью. Отличие от обычного

CELL можно программировать как мультипроцессор с разделяемой памятью.
Отличие от обычного мультипроцессора

состоит в том, что операции загрузки/сохранения для разделяемой памяти заменяются на пары операций загрузки/сохранения для локальной памяти SPE и DMA операции для разделяемой памяти.
В локальной памяти SPE можно организовать совмещенный программный кэш инструкций и данных.

Модель мультипроцессора
с разделяемой памятью

Eichenberger A.E., et. al. Optimizing compiler for a Cell processor // Proceedings
of the PACT’05. – Washington: IEEE, 2005. – P. 161-172 (Compiler-Controlled Software Cache)

Слайд 8

Является расширением широко распространенной модели многопоточности на случай наличия ядер с

Является расширением широко распространенной модели многопоточности на случай наличия ядер с

различной архитектурой инструкций.
SPE не поддерживает аппаратную смену контекста, поэтому на SPE нельзя организовать вытесняющую многозадачность (preemptive multitusking) Для SPE возможно применять модель работы потока до завершения (run-to-completion model), а также кооперативную многозадачность (cooperative multitusking).

Модель ассиметричных потоков

Кооперативная многозадачность – каждый поток сам определяет момент времени передачи ресурсов
другому потоку ОС.

Слайд 9

При программировании процессора CELL можно выбрать любую из вышеописанных моделей программирования.

При программировании процессора CELL можно выбрать любую из вышеописанных моделей программирования.

У каждой из моделей есть свои сильные и слабые стороны. Такой широкий выбор моделей программирования процессора CELL обусловлен:
наличием вычислительных ядер с различной архитектурой инструкций;
наличием локальной памяти у SPE ядер;
наличием разделяемой памяти;
присутствием в архитектуре процессора PPE ядра архитектуры Power;
а также, наличием большого числа вычислительных ядер.

Выводы