🗊 Презентация Программирование процессора Cell Киреев С.Е.

Категория: Информатика
Нажмите для полного просмотра!
Программирование процессора Cell Киреев С.Е., слайд №1 Программирование процессора Cell Киреев С.Е., слайд №2 Программирование процессора Cell Киреев С.Е., слайд №3 Программирование процессора Cell Киреев С.Е., слайд №4 Программирование процессора Cell Киреев С.Е., слайд №5 Программирование процессора Cell Киреев С.Е., слайд №6 Программирование процессора Cell Киреев С.Е., слайд №7 Программирование процессора Cell Киреев С.Е., слайд №8 Программирование процессора Cell Киреев С.Е., слайд №9 Программирование процессора Cell Киреев С.Е., слайд №10 Программирование процессора Cell Киреев С.Е., слайд №11 Программирование процессора Cell Киреев С.Е., слайд №12 Программирование процессора Cell Киреев С.Е., слайд №13 Программирование процессора Cell Киреев С.Е., слайд №14 Программирование процессора Cell Киреев С.Е., слайд №15 Программирование процессора Cell Киреев С.Е., слайд №16 Программирование процессора Cell Киреев С.Е., слайд №17 Программирование процессора Cell Киреев С.Е., слайд №18 Программирование процессора Cell Киреев С.Е., слайд №19 Программирование процессора Cell Киреев С.Е., слайд №20 Программирование процессора Cell Киреев С.Е., слайд №21 Программирование процессора Cell Киреев С.Е., слайд №22 Программирование процессора Cell Киреев С.Е., слайд №23 Программирование процессора Cell Киреев С.Е., слайд №24 Программирование процессора Cell Киреев С.Е., слайд №25 Программирование процессора Cell Киреев С.Е., слайд №26 Программирование процессора Cell Киреев С.Е., слайд №27 Программирование процессора Cell Киреев С.Е., слайд №28 Программирование процессора Cell Киреев С.Е., слайд №29 Программирование процессора Cell Киреев С.Е., слайд №30 Программирование процессора Cell Киреев С.Е., слайд №31 Программирование процессора Cell Киреев С.Е., слайд №32 Программирование процессора Cell Киреев С.Е., слайд №33 Программирование процессора Cell Киреев С.Е., слайд №34 Программирование процессора Cell Киреев С.Е., слайд №35 Программирование процессора Cell Киреев С.Е., слайд №36 Программирование процессора Cell Киреев С.Е., слайд №37 Программирование процессора Cell Киреев С.Е., слайд №38 Программирование процессора Cell Киреев С.Е., слайд №39 Программирование процессора Cell Киреев С.Е., слайд №40 Программирование процессора Cell Киреев С.Е., слайд №41 Программирование процессора Cell Киреев С.Е., слайд №42 Программирование процессора Cell Киреев С.Е., слайд №43 Программирование процессора Cell Киреев С.Е., слайд №44 Программирование процессора Cell Киреев С.Е., слайд №45 Программирование процессора Cell Киреев С.Е., слайд №46 Программирование процессора Cell Киреев С.Е., слайд №47 Программирование процессора Cell Киреев С.Е., слайд №48 Программирование процессора Cell Киреев С.Е., слайд №49 Программирование процессора Cell Киреев С.Е., слайд №50 Программирование процессора Cell Киреев С.Е., слайд №51 Программирование процессора Cell Киреев С.Е., слайд №52 Программирование процессора Cell Киреев С.Е., слайд №53 Программирование процессора Cell Киреев С.Е., слайд №54 Программирование процессора Cell Киреев С.Е., слайд №55 Программирование процессора Cell Киреев С.Е., слайд №56 Программирование процессора Cell Киреев С.Е., слайд №57 Программирование процессора Cell Киреев С.Е., слайд №58 Программирование процессора Cell Киреев С.Е., слайд №59 Программирование процессора Cell Киреев С.Е., слайд №60 Программирование процессора Cell Киреев С.Е., слайд №61 Программирование процессора Cell Киреев С.Е., слайд №62 Программирование процессора Cell Киреев С.Е., слайд №63 Программирование процессора Cell Киреев С.Е., слайд №64 Программирование процессора Cell Киреев С.Е., слайд №65 Программирование процессора Cell Киреев С.Е., слайд №66 Программирование процессора Cell Киреев С.Е., слайд №67 Программирование процессора Cell Киреев С.Е., слайд №68 Программирование процессора Cell Киреев С.Е., слайд №69

Содержание

Вы можете ознакомиться и скачать презентацию на тему Программирование процессора Cell Киреев С.Е.. Доклад-сообщение содержит 69 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Программирование процессора Cell Киреев С.Е.
Описание слайда:
Программирование процессора Cell Киреев С.Е.

Слайд 2


Сравнение современных процессоров
Описание слайда:
Сравнение современных процессоров

Слайд 3


Реализации систем на базе Cell Roadrunner – самый мощный суперкомпьютер в мире на базе процессоров Opteron и Cell
Описание слайда:
Реализации систем на базе Cell Roadrunner – самый мощный суперкомпьютер в мире на базе процессоров Opteron и Cell

Слайд 4


Реализации систем на базе Cell Системы на базе Cell – самые «зеленые»
Описание слайда:
Реализации систем на базе Cell Системы на базе Cell – самые «зеленые»

Слайд 5


Реализации систем на базе Cell Продукты IBM IBM BladeCenter QS 21 2 × Cell B.E. 3.2 GHz IBM BladeCenter QS 22 2 × PowerXCell 8i 3.2 GHz 2 ×...
Описание слайда:
Реализации систем на базе Cell Продукты IBM IBM BladeCenter QS 21 2 × Cell B.E. 3.2 GHz IBM BladeCenter QS 22 2 × PowerXCell 8i 3.2 GHz 2 × PowerXCell 8i 4.0 GHz Продукты Mercury Computer Systems Mercury Dual Cell Based System 2 2 × Cell B.E. 3.2 GHz Mercury Dual Cell Based Blade 2 2 × Cell B.E. 3.2 GHz Mercury PCI Express Cell Accelerator Board 2 1 × Cell B.E. 2.8 GHz Продукты Fixstars Fixstars GagaAccell 180 Accelerator Board 1 × PowerXCell 8i 2.8 GHz Продукты Т-Платформы PeakCell S 2 × PowerXCell 8i 3.2 GHz PeakCell W 2 × PowerXCell 8i 3.2 GHz PeakCell YPS 4 × PowerXCell 8i 3.2 GHz

Слайд 6


Программирование процессора Cell Киреев С.Е., слайд №6
Описание слайда:

Слайд 7


Sony PlayStation3 в ИВМиМГ в отделе МО ВВС
Описание слайда:
Sony PlayStation3 в ИВМиМГ в отделе МО ВВС

Слайд 8


План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы...
Описание слайда:
План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы передачи данных и сообщений Программирование вычислений на SPE Библиотеки

Слайд 9


Структура обычного многоядерного узла Все ядра в узле равноправные
Описание слайда:
Структура обычного многоядерного узла Все ядра в узле равноправные

Слайд 10


Структура процессора Cell Многоядерный процессор Cell Power Processor Element – ядро общего назначения (главное) Synergistic Processor Element –...
Описание слайда:
Структура процессора Cell Многоядерный процессор Cell Power Processor Element – ядро общего назначения (главное) Synergistic Processor Element – векторные ядра (дополнительные) Element Interconnect Bus – быстрая шина

Слайд 11


Структура процессора Cell 1 ядро PPE ядро общего назначения (PowerPC, 2 потока) выполняет код операционной системы управляет ходом вычислений 8 ядер...
Описание слайда:
Структура процессора Cell 1 ядро PPE ядро общего назначения (PowerPC, 2 потока) выполняет код операционной системы управляет ходом вычислений 8 ядер SPE специализированные векторные ядра (особый набор команд) обеспечивают вычислительную мощность процессора работают с ограниченной локальной памятью: 256 KB имеют много регистров: 128

Слайд 12


Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые могут быть выполнены одновременно на разных ядрах: 2 аппаратных...
Описание слайда:
Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые могут быть выполнены одновременно на разных ядрах: 2 аппаратных потока PPE 8 программ SPE

Слайд 13


Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые могут быть выполнены одновременно на разных ядрах: 2 аппаратных...
Описание слайда:
Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые могут быть выполнены одновременно на разных ядрах: 2 аппаратных потока PPE 8 программ SPE Векторизация. Регулярные векторные данные, обработка которых может быть векторизована: SPE SIMD PPE VMX

Слайд 14


Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые могут быть выполнены одновременно на разных ядрах: 2 аппаратных...
Описание слайда:
Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые могут быть выполнены одновременно на разных ядрах: 2 аппаратных потока PPE 8 программ SPE Векторизация. Регулярные векторные данные, обработка которых может быть векторизована: SPE SIMD PPE VMX Асинхронная передача данных

Слайд 15


Модель памяти
Описание слайда:
Модель памяти

Слайд 16


Сравнение подсистем памяти
Описание слайда:
Сравнение подсистем памяти

Слайд 17


Сравнение подсистем памяти Обычная иерархия памяти Ядро может обращаться к данным в оперативной памяти После запроса данные из памяти придут...
Описание слайда:
Сравнение подсистем памяти Обычная иерархия памяти Ядро может обращаться к данным в оперативной памяти После запроса данные из памяти придут неизвестно когда Гарантировать приход данных вовремя можно с помощью: Правильного порядка обращений к данным Предвыборки

Слайд 18


Сравнение подсистем памяти Иерархия памяти ядра SPE Ядро SPE может обращаться к данным в локальной памяти Ядро может отправлять запрос на перемещение...
Описание слайда:
Сравнение подсистем памяти Иерархия памяти ядра SPE Ядро SPE может обращаться к данным в локальной памяти Ядро может отправлять запрос на перемещение данных из оперативной в локальную память (или обратно) и проверять его завершение Данные из локальной памяти доступны за константное время

Слайд 19


Выполнение обменов на фоне вычислений
Описание слайда:
Выполнение обменов на фоне вычислений

Слайд 20


План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы...
Описание слайда:
План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы передачи данных и сообщений Программирование вычислений на SPE Библиотеки

Слайд 21


Программирование Cell Для организации вычислений на Cell необходимо: Разделить задачу на независимые фрагменты для обработки на ядрах SPE...
Описание слайда:
Программирование Cell Для организации вычислений на Cell необходимо: Разделить задачу на независимые фрагменты для обработки на ядрах SPE Организовать передачу данных между ядрами на одновременно с вычислениями Выполнить векторизацию вычислений на ядрах SPE

Слайд 22


Сравнение параллельных вычислений на Cell с «традиционными» подходами SMP-узел + потоки (OpenMP, PThreads, …) Кластер + библиотека MPI Узел на базе...
Описание слайда:
Сравнение параллельных вычислений на Cell с «традиционными» подходами SMP-узел + потоки (OpenMP, PThreads, …) Кластер + библиотека MPI Узел на базе процессоров Cell

Слайд 23


Сравнение параллельных вычислений на Cell с «традиционными» подходами SMP-узел + потоки (OpenMP, PThreads, …) На одном узле работают несколько...
Описание слайда:
Сравнение параллельных вычислений на Cell с «традиционными» подходами SMP-узел + потоки (OpenMP, PThreads, …) На одном узле работают несколько потоков исполнения Данные одинаково доступны всем потокам Каждый поток выполняет свою часть работы над общими данными

Слайд 24


Сравнение параллельных вычислений на Cell с «традиционными» подходами Кластер + библиотека MPI На каждом узле работает один или несколько процессов...
Описание слайда:
Сравнение параллельных вычислений на Cell с «традиционными» подходами Кластер + библиотека MPI На каждом узле работает один или несколько процессов Данные распределены по процессам Каждый процесс выполняет свою часть работы над своими данными Процессы обмениваются сообщениями

Слайд 25


Сравнение параллельных вычислений на Cell с «традиционными» подходами Узел на базе процессоров Cell На ядре PPE работает главный поток На ядрах SPE...
Описание слайда:
Сравнение параллельных вычислений на Cell с «традиционными» подходами Узел на базе процессоров Cell На ядре PPE работает главный поток На ядрах SPE работают вычислительные потоки копируют блоки данных из общей памяти в локальную память ядра производят вычисления над данными в локальной памяти копируют результаты в общую память

Слайд 26


Модели программирования процессора Cell Function offload model
Описание слайда:
Модели программирования процессора Cell Function offload model

Слайд 27


Модели программирования процессора Cell Портфель задач
Описание слайда:
Модели программирования процессора Cell Портфель задач

Слайд 28


Модели программирования процессора Cell Потоковый конвейер
Описание слайда:
Модели программирования процессора Cell Потоковый конвейер

Слайд 29


Модели программирования процессора Cell Взаимодействующие процессы с общей памятью
Описание слайда:
Модели программирования процессора Cell Взаимодействующие процессы с общей памятью

Слайд 30


Модели программирования процессора Cell Взаимодействующие процессы с распределенной памятью
Описание слайда:
Модели программирования процессора Cell Взаимодействующие процессы с распределенной памятью

Слайд 31


План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы...
Описание слайда:
План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы передачи данных и сообщений Программирование вычислений на SPE Библиотеки

Слайд 32


Библиотека libspe2 LibSPE предоставляет интерфейс к базовым средствам программирования процессора Cell, реализованным аппаратно. Разработка...
Описание слайда:
Библиотека libspe2 LibSPE предоставляет интерфейс к базовым средствам программирования процессора Cell, реализованным аппаратно. Разработка программы: Создается отдельная программа для PPE, Создается отдельная программа для SPE, PPE-программа запускает SPE-программу, SPE-программа может вызвать callback-функцию вызвавшей ее PPE-программы.

Слайд 33


Библиотека libspe2: Программа «Hello, World!» Программа для PPE (ppu_prog.c) #include extern spe_program_handle_t spu_hello; int main () { unsigned...
Описание слайда:
Библиотека libspe2: Программа «Hello, World!» Программа для PPE (ppu_prog.c) #include extern spe_program_handle_t spu_hello; int main () { unsigned int entry = SPE_DEFAULT_ENTRY; spe_context_ptr_t spe; spe = spe_context_create (0, NULL); spe_program_load (spe, &spu_hello); spe_context_run (spe, &entry, 0, (void *) 10, (void *) 20, NULL); spe_context_destroy (spe); return 0; } Программа для SPE (spu_prog.c) #include int main (unsigned long long spe, unsigned long long argp, unsigned long long envp) { printf("Hello, World! (%llu,%llu)\n", argp, envp); return 0; }

Слайд 34


Библиотека libspe2: Программа «Hello, World!» Компиляция программы для Cell:
Описание слайда:
Библиотека libspe2: Программа «Hello, World!» Компиляция программы для Cell:

Слайд 35


Библиотека libspe2: Многопоточная программа «Hello, World!» Создание параллельной программы для Cell: В программе на PPE создать несколько...
Описание слайда:
Библиотека libspe2: Многопоточная программа «Hello, World!» Создание параллельной программы для Cell: В программе на PPE создать несколько параллельных потоков, В потоках запустить программы на SPE.

Слайд 36


Библиотека libspe2: Многопоточная программа «Hello, World!» Программа для PPE многопоточная #include #include #define NTHREADS 40 extern...
Описание слайда:
Библиотека libspe2: Многопоточная программа «Hello, World!» Программа для PPE многопоточная #include #include #define NTHREADS 40 extern spe_program_handle_t spu_hello; void *thread_func (void *data) { unsigned int entry = SPE_DEFAULT_ENTRY; spe_context_ptr_t spe; spe = spe_context_create (0,NULL); spe_program_load (spe, &spu_hello); spe_context_run (spe, &entry, 0, (void *)data, (void *)NTHREADS, NULL); spe_context_destroy (spe); return 0; } int main () { pthread_t tid [NTHREADS]; unsigned long i; for (i=0;i

Слайд 37


План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы...
Описание слайда:
План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы передачи данных и сообщений Программирование вычислений на SPE Библиотеки

Слайд 38


Механизмы передачи данных и сообщений DMA-передача – блок данных до 16 KB: Операция Get: общая память  память SPE Операция Put: память SPE  общая...
Описание слайда:
Механизмы передачи данных и сообщений DMA-передача – блок данных до 16 KB: Операция Get: общая память  память SPE Операция Put: память SPE  общая память Mailbox-ы – очереди 32-битных сообщений: SPE in (4) SPE out (1) SPE out interrupt (1) Сигналы – 32-битные сообщения: Только к SPE

Слайд 39


Механизмы передачи данных и сообщений DMA-передача данных Может запускаться и на PPE, и на SPE
Описание слайда:
Механизмы передачи данных и сообщений DMA-передача данных Может запускаться и на PPE, и на SPE

Слайд 40


Механизмы передачи данных и сообщений DMA-передача данных Может запускаться и на PPE, и на SPE
Описание слайда:
Механизмы передачи данных и сообщений DMA-передача данных Может запускаться и на PPE, и на SPE

Слайд 41


Механизмы передачи данных и сообщений DMA-передача данных Может запускаться и на PPE, и на SPE
Описание слайда:
Механизмы передачи данных и сообщений DMA-передача данных Может запускаться и на PPE, и на SPE

Слайд 42


Механизмы передачи данных и сообщений DMA-передача данных Блоки данных должны быть выровнены в памяти по границе 16 байт. Размер передаваемых данных...
Описание слайда:
Механизмы передачи данных и сообщений DMA-передача данных Блоки данных должны быть выровнены в памяти по границе 16 байт. Размер передаваемых данных может быть 1,2,4,8,16 или 16*N байтов. Для идентификации группы DMA-передач используются 5-битные DMA-тэги. Тэг позволяет проверить статус или дождаться завершения соответствующей группы DMA-передач.

Слайд 43


Механизмы передачи данных и сообщений DMA-передача данных Чтобы упорядочить выполнение передач, используются специальные варианты команд get и put:...
Описание слайда:
Механизмы передачи данных и сообщений DMA-передача данных Чтобы упорядочить выполнение передач, используются специальные варианты команд get и put: Barrier: getb, putb Fence: getf, putf

Слайд 44


Библиотека libspe 2.0: Пример передачи данных DMA Программа для SPE // GET: Передача данных из PPE в SPE void get (void *dest_lsa, unsigned long long...
Описание слайда:
Библиотека libspe 2.0: Пример передачи данных DMA Программа для SPE // GET: Передача данных из PPE в SPE void get (void *dest_lsa, unsigned long long sour_ea, unsigned long size) { int tag=mfc_tag_reserve(), mask=1

Слайд 45


Механизмы передачи данных и сообщений Mailbox: передача 4-байтовых сообщений
Описание слайда:
Механизмы передачи данных и сообщений Mailbox: передача 4-байтовых сообщений

Слайд 46


Механизмы передачи данных и сообщений Mailbox: передача 4-байтовых сообщений Signal: передача 4-байтовых сообщений
Описание слайда:
Механизмы передачи данных и сообщений Mailbox: передача 4-байтовых сообщений Signal: передача 4-байтовых сообщений

Слайд 47


Библиотека libspe 2.0: Программа «Ping-pong» Фрагмент программы для PPE … while ( spe_out_mbox_status(spe) == 0 ); // ожидание данных в очереди...
Описание слайда:
Библиотека libspe 2.0: Программа «Ping-pong» Фрагмент программы для PPE … while ( spe_out_mbox_status(spe) == 0 ); // ожидание данных в очереди spe_out_mbox_read(spe ,&data ,1); // чтение одного элемента из очереди data++; // изменение данных spe_signal_write(spe, SPE_SIG_NOTIFY_REG_1, data); // запись в регистр сигнала 1 … Фрагмент программы для SPE … spu_write_out_mbox(data); // запись элемента данных в очередь data=spu_read_signal1(); // чтение данных из регистра сигнала 1 …

Слайд 48


Передача данных между SPE Локальная память SPE отображается в общее адресное пространство. Обращение SPE к заданному участку адресного пространства...
Описание слайда:
Передача данных между SPE Локальная память SPE отображается в общее адресное пространство. Обращение SPE к заданному участку адресного пространства позволяет обращаться к памяти другого SPE.

Слайд 49


Передача сообщений между SPE Регистры mailbox-ов и сигналов SPE отображаются в общее адресное пространство. Запись/чтение заданного элемента...
Описание слайда:
Передача сообщений между SPE Регистры mailbox-ов и сигналов SPE отображаются в общее адресное пространство. Запись/чтение заданного элемента адресного пространства позволяет одному SPE отправлять и получать сообщения другого SPE.

Слайд 50


План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы...
Описание слайда:
План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы передачи данных и сообщений Программирование вычислений на SPE Библиотеки

Слайд 51


Программирование вычислений на SPE Все регистры SPE векторные длиной 16 байт. Все арифметические инструкции являются параллельными по данным и...
Описание слайда:
Программирование вычислений на SPE Все регистры SPE векторные длиной 16 байт. Все арифметические инструкции являются параллельными по данным и работают с векторами. Скалярные операции выполняются путем соответствующего использования векторных команд. Скалярные аргументы, необходимые некоторым инструкциям, располагаются в «предпочтительных» позициях вектора:

Слайд 52


Локальная память SPE Объем локальной памяти для данных и кода: 256 KB Чтение и запись локальной памяти всегда выполняется выровненными блоками...
Описание слайда:
Локальная память SPE Объем локальной памяти для данных и кода: 256 KB Чтение и запись локальной памяти всегда выполняется выровненными блоками размером 16 байт: Если адрес не выровнен, он автоматически округляется до 16 байт Защита памяти отсутствует Можно свободно читать и писать в области данных, кода и стека

Слайд 53


Векторные типы данных
Описание слайда:
Векторные типы данных

Слайд 54


Векторные типы данных Элементы векторных типов данных выравниваются автоматически. Элементы других типов можно выравнивать явно: unsigned char...
Описание слайда:
Векторные типы данных Элементы векторных типов данных выравниваются автоматически. Элементы других типов можно выравнивать явно: unsigned char buffer[1024] __attribute__ ((aligned(16))); Пример инициализации векторной переменной: vector float vf1 = { 1.0, 2.0, 3.0, 4.0 }; vector float vf2[2] = {{1.0, 2.0, 3.0, 4.0}, {5.0, 6.0, 7.0, 8.0}}; vector float vf3[2] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0};

Слайд 55


Команды уровня компилятора Для манипуляции векторными данными используются intrinsics – встроенные в компилятор команды: Специальные (specific) –...
Описание слайда:
Команды уровня компилятора Для манипуляции векторными данными используются intrinsics – встроенные в компилятор команды: Специальные (specific) – отображаются в одну инструкцию процессора, Например: d = si_to_int(a); Обобщенные (generic) – отображаются в одну или несколько инструкций процессора в зависимости от входных параметров, Например: c = spu_add (a, b); Составные (built-ins) – последовательности обобщенных и специальных intrinsics (объединенные для удобства). Например, команды DMA-передачи.

Слайд 56


Операции над векторами Арифметические операции над элементами векторов: d = spu_add(a,b); d = spu_sub(a, b); d = spu_madd(a, b, c); d = spu_mul(a,...
Описание слайда:
Операции над векторами Арифметические операции над элементами векторов: d = spu_add(a,b); d = spu_sub(a, b); d = spu_madd(a, b, c); d = spu_mul(a, b); … Логические операции над битами векторов: d = spu_and(a, b); d = spu_or(a, b); d = spu_eqv(a, b); … Более сложные операции: библиотека simdmath.

Слайд 57


Операции над векторами Операции преобразования скалярных и векторных данных: d = spu_insert(s, v, n); d = spu_splats(s); d = spu_promote(s, n); s =...
Описание слайда:
Операции над векторами Операции преобразования скалярных и векторных данных: d = spu_insert(s, v, n); d = spu_splats(s); d = spu_promote(s, n); s = spu_extract(v, n); Операции преобразования типов: d = spu_convtf(a, scale); d = spu_convts(a, scale); d = spu_extend(a); …

Слайд 58


Операции над векторами Операции для манипулирования элементами векторов: Сдвиг, вращение элементов d = spu_rl(a, count); d = spu_sl(a, count); …...
Описание слайда:
Операции над векторами Операции для манипулирования элементами векторов: Сдвиг, вращение элементов d = spu_rl(a, count); d = spu_sl(a, count); … Перестановка элементов векторов d = spu_sel(a, b, pattern); d = spu_shuffle(a, b, pattern); …

Слайд 59


Пример: векторное умножение матриц void mulv (float *a, float *b, float *c, int n) { int i, j, k; vector float *bv = (vector float *) b; vector float...
Описание слайда:
Пример: векторное умножение матриц void mulv (float *a, float *b, float *c, int n) { int i, j, k; vector float *bv = (vector float *) b; vector float *cv = (vector float *) c; vector float s, t; s = spu_splats(0.0); for (i=0; i

Слайд 60


Особенности векторизации вычислений Простой пример: for (i=0; i
Описание слайда:
Особенности векторизации вычислений Простой пример: for (i=0; i

Слайд 61


Особенности векторизации вычислений Операнды должны быть приведены к одному типу Пример:
Описание слайда:
Особенности векторизации вычислений Операнды должны быть приведены к одному типу Пример:

Слайд 62


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

Слайд 63


Особенности реализации скалярных вычислений При выполнении операции над скалярными переменными в памяти происходит следующее: Чтение векторов,...
Описание слайда:
Особенности реализации скалярных вычислений При выполнении операции над скалярными переменными в памяти происходит следующее: Чтение векторов, содержащих операнды, в регистры, Относительное выравнивание операндов в векторах, Выполнение операции над векторами, Чтение вектора, содержащего результат, Помещение результата в нужную позицию результирующего вектора, Запись результирующего вектора в память.

Слайд 64


Оптимизация целочисленной арифметики На SPE отсутствует 32-битное умножение. Используйте short int вместо int, где это возможно. short int i,k; for...
Описание слайда:
Оптимизация целочисленной арифметики На SPE отсутствует 32-битное умножение. Используйте short int вместо int, где это возможно. short int i,k; for (i=0; i

Слайд 65


Оптимизация условных переходов Устранение условных переходов Подсказка компилятору
Описание слайда:
Оптимизация условных переходов Устранение условных переходов Подсказка компилятору

Слайд 66


План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы...
Описание слайда:
План Архитектура процессора Cell Принципы программирования Базовые средства программирования Создание и компиляция простых программ Механизмы передачи данных и сообщений Программирование вычислений на SPE Библиотеки

Слайд 67


Средства программирования процессоров Cell Средства от IBM (IBM Cell SDK) Библиотека libspe 2.0 Библиотеки векторизованых операций: SIMD Math...
Описание слайда:
Средства программирования процессоров Cell Средства от IBM (IBM Cell SDK) Библиотека libspe 2.0 Библиотеки векторизованых операций: SIMD Math Library, MASS Library, FFT, Game math, Image Processing, Matrix, Vector, Multi-precision math, BLAS, LAPACK, Monte-Carlo Sync Library: атомарные операции, мьютексы, условные переменные, … Software managed cache Распараллеливающие векторизующие компиляторы (OpenMP): xlc, xlf DaCS – Data Communication and Synchronization library ALF – Accelerated Library Framework Другие средства BSC Cell Superscalar Mercury Computer Systems: MultiCore Framework RapidMind Gedae

Слайд 68


Ссылки IBM Cell Broadband Engine resource center, Cell Developer's Corner, STI Center of Competence for the Cell Broadband Engine Processor,...
Описание слайда:
Ссылки IBM Cell Broadband Engine resource center, Cell Developer's Corner, STI Center of Competence for the Cell Broadband Engine Processor, Barcelona Supercomputing Center: Cell Superscalar, RapidMind Development Platform, Mercury Computer Systems: MultiCore Framework,

Слайд 69


Программирование процессора Cell Киреев С.Е., слайд №69
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию