PPt4Web Хостинг презентаций

Главная / Информатика / Программирование процессора Cell
X Код для использования на сайте:

Скопируйте этот код и вставьте его на свой сайт

X

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

После чего скачивание начнётся автоматически!

Кнопки:

Презентация на тему: Программирование процессора Cell


Скачать эту презентацию

Презентация на тему: Программирование процессора Cell


Скачать эту презентацию

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

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

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

Сравнение современных процессоров

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

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

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

Реализации систем на базе Cell Системы на базе Cell – самые «зеленые»

№ слайда 5 Реализации систем на базе Cell Продукты IBM IBM BladeCenter QS 21 2 × Cell B.E.
Описание слайда:

Реализации систем на базе 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
Описание слайда:

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

Sony PlayStation3 в ИВМиМГ в отделе МО ВВС

№ слайда 8 План Архитектура процессора Cell Принципы программирования Базовые средства прог
Описание слайда:

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

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

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

№ слайда 10 Структура процессора Cell Многоядерный процессор Cell Power Processor Element –
Описание слайда:

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

№ слайда 11 Структура процессора Cell 1 ядро PPE ядро общего назначения (PowerPC, 2 потока)
Описание слайда:

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

№ слайда 12 Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые
Описание слайда:

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

№ слайда 13 Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые
Описание слайда:

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

№ слайда 14 Виды параллелизма в процессоре Cell Многоядерность. Независимые задачи, которые
Описание слайда:

Виды параллелизма в процессоре 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 необходимо: Разделить з
Описание слайда:

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

№ слайда 22 Сравнение параллельных вычислений на Cell с «традиционными» подходами SMP-узел +
Описание слайда:

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

№ слайда 23 Сравнение параллельных вычислений на Cell с «традиционными» подходами SMP-узел +
Описание слайда:

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

№ слайда 24 Сравнение параллельных вычислений на Cell с «традиционными» подходами Кластер +
Описание слайда:

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

№ слайда 25 Сравнение параллельных вычислений на Cell с «традиционными» подходами Узел на ба
Описание слайда:

Сравнение параллельных вычислений на 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 предоставляет интерфейс к базовым средствам программир
Описание слайда:

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

№ слайда 33 Библиотека libspe2: Программа «Hello, World!» Программа для PPE (ppu_prog.c) #in
Описание слайда:

Библиотека libspe2: Программа «Hello, World!» Программа для PPE (ppu_prog.c) #include <libspe2.h> 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 <stdio.h> 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!» Создание параллельно
Описание слайда:

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

№ слайда 36 Библиотека libspe2: Многопоточная программа «Hello, World!» Программа для PPE мн
Описание слайда:

Библиотека libspe2: Многопоточная программа «Hello, World!» Программа для PPE многопоточная #include <libspe2.h> #include <pthread.h> #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<NTHREADS;i++) pthread_create (&tid[i], NULL, &thread_func, (void *) i); // Параллельная часть for (i=0;i<NTHREADS;i++) pthread_join (tid[i], NULL); return 0; }

№ слайда 37 План Архитектура процессора Cell Принципы программирования Базовые средства прог
Описание слайда:

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

№ слайда 38 Механизмы передачи данных и сообщений DMA-передача – блок данных до 16 KB: Опера
Описание слайда:

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

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

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

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

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

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

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

№ слайда 42 Механизмы передачи данных и сообщений DMA-передача данных Блоки данных должны бы
Описание слайда:

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

№ слайда 43 Механизмы передачи данных и сообщений DMA-передача данных Чтобы упорядочить выпо
Описание слайда:

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

№ слайда 44 Библиотека libspe 2.0: Пример передачи данных DMA Программа для SPE // GET: Пере
Описание слайда:

Библиотека 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<<tag; mfc_get (dest_lsa, sour_ea, size, tag, 0, 0); // запуск передачи данных mfc_write_tag_mask (mask); mfc_read_tag_status_any(); // ожидание завершения передачи mfc_tag_release(tag); } // PUT: Передача данных из SPE в PPE void put (void *sour_lsa, unsigned long long dest_ea, unsigned long size) { int tag=mfc_tag_reserve(), mask=1<<tag; mfc_put (sour_lsa, dest_ea, size, tag, 0, 0); // запуск передачи данных mfc_write_tag_mask (mask); mfc_read_tag_status_any(); // ожидание завершения передачи mfc_tag_release(); }

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

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

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

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

№ слайда 47 Библиотека libspe 2.0: Программа «Ping-pong» Фрагмент программы для PPE … while
Описание слайда:

Библиотека 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.

№ слайда 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 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 Команды уровня компилятора Для манипуляции векторными данными используются intri
Описание слайда:

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

№ слайда 56 Операции над векторами Арифметические операции над элементами векторов: d = spu_
Описание слайда:

Операции над векторами Арифметические операции над элементами векторов: 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 =
Описание слайда:

Операции над векторами Операции преобразования скалярных и векторных данных: 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_sel(a, b, pattern); d = spu_shuffle(a, b, pattern); …

№ слайда 59 Пример: векторное умножение матриц void mulv (float *a, float *b, float *c, int
Описание слайда:

Пример: векторное умножение матриц 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<n*n/4; i++) cv[i] = s; for (i=0; i<n; i++) for (k=0; k<n; k++) { s = spu_splats ( a[i*n+k] ); for (j=0; j<n/4; j++) { t = spu_mul (s, bv[k*n/4+j] ); cv[i*n/4+j] = spu_add ( cv[i*n/4+j], t ); } } }

№ слайда 60 Особенности векторизации вычислений Простой пример: for (i=0; i<n; i++) a[i]=
Описание слайда:

Особенности векторизации вычислений Простой пример: for (i=0; i<n; i++) a[i]=b[i]+c[i];

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

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

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

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

№ слайда 63 Особенности реализации скалярных вычислений При выполнении операции над скалярны
Описание слайда:

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

№ слайда 64 Оптимизация целочисленной арифметики На SPE отсутствует 32-битное умножение. Исп
Описание слайда:

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

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

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

№ слайда 66 План Архитектура процессора Cell Принципы программирования Базовые средства прог
Описание слайда:

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

№ слайда 67 Средства программирования процессоров Cell Средства от IBM (IBM Cell SDK) Библио
Описание слайда:

Средства программирования процессоров 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, http://www.ibm.com/developerwo
Описание слайда:

Ссылки IBM Cell Broadband Engine resource center, http://www.ibm.com/developerworks/power/cell/documents.html Cell Developer's Corner, http://www.power.org/resources/devcorner/cellcorner STI Center of Competence for the Cell Broadband Engine Processor, http://sti.cc.gatech.edu Barcelona Supercomputing Center: Cell Superscalar, www.bsc.es/cellsuperscalar RapidMind Development Platform, www.rapidmind.net Mercury Computer Systems: MultiCore Framework, http://www.mc.com/software/multicore_framework.aspx

№ слайда 69
Описание слайда:

Скачать эту презентацию

Презентации по предмету
Презентации из категории
Лучшее на fresher.ru