Процессор
This presentation is the property of its rightful owner.
Sponsored Links
1 / 37

Процессор Cell PowerPoint PPT Presentation


  • 155 Views
  • Uploaded on
  • Presentation posted in: General

Процессор Cell. Киреев Сергей ИВМиМГ. План. Общая информация о процессоре Cell Архитектура процессора Cell Программирование процессора Cell Реализации систем на базе Cell. История Cell. IBM, SCEI/Sony, Toshiba Alliance formed in 2000 Austin-based Design Center opened in March 2001

Download Presentation

Процессор Cell

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cell

Процессор Cell

Киреев Сергей

ИВМиМГ


Cell

План

  • Общая информация о процессоре Cell

  • Архитектура процессора Cell

  • Программирование процессора Cell

  • Реализации систем на базе Cell


Cell

История Cell

  • IBM, SCEI/Sony, Toshiba Alliance formed in 2000

  • Austin-based Design Center opened in March 2001

  • Single CellBE operational Spring 2004

  • 2-way SMP operational Summer 2004

  • February 7, 2005: First technical disclosures

  • October 6, 2005: Mercury announces Cell Blade

  • November 9, 2005: Open source SDK & simulator published

  • November 14, 2005: Mercury announces Turismo Cell offering

  • February 8, 2006: IBM announced Cell Blade


Cell

Предпосылки архитектуры Cell

Immersive Interaction

Online Gaming

Эволюция пользовательского интерфейса

Уровень взаимодействия

Client/Server

Internet

Stand Alone PC

Windows

Mini-Computer

WYSIWYG

Gaming

Main Frame

Multitasking

WWW

Cell

Spreadsheet

Main Frame

Batch

Word

Processing

Green Screen/

Teletype

Source: J.A. Kahle

Punch Cards

Время


Cell

Предпосылки архитектуры Cell

  • Преодоление барьеров производительности

    • Power Wall – барьер мощности,

    • Memory Wall – барьер памяти,

    • Frequency Wall – барьер частоты.


Cell

Характеристики процессора Cell

  • Cell – многоядерный микропроцессор, содержащий ядра различных типов:

    1 PPE – Power Processor Element

    8 SPE – Synergistic Processor Element

  • Cell – это не набор различных процессоров, а согласованное целое:

    • Согласованные принципы функционирования, форматы и семантика данных,

    • Используется общая модель памяти.

  • Cell – специально создавался для работы на высоких частотах (более 4 ГГц)

    • Фиксированная частота: 3.2 ГГц


Cell

Структура процессора Cell

  • SPE – Synergistic Processor Element

  • PPE – Power Processor Element


Cell

План

  • Общая информация о процессоре Cell

  • Архитектура процессора Cell

  • Программирование процессора Cell

  • Реализации систем на базе Cell


Power processor element

Power Processor Element

  • PPE исполняет код операционной системы и управляет заданиями

    • 64-битная архитектура Power с расширением VMX

    • Упорядоченное исполнение (in-order)

    • Аппаратная поддержка 2-х параллельных потоков

    • Кэш-память: 32 KB L1code, 32 KB L1data, 512 KB L2 общий


Synergistic processor element

Synergistic Processor Element

  • SPE обеспечивает вычислительную мощность

    • До 2-х 128-битных SIMD команд за такт

    • Большие ресурсыпамяти: 128 128-битных регистров, 256 KB локальной памяти

    • DMA – асинхронный доступ в общую память: до 16 одновременных запросов


Cell

Характеристики SPE

  • Организация по типу RISC

    • Фиксированные 32-битные инструкции

    • Простая структура – общий регистровый файл

  • Нет поддержки системных функций

  • SIMD-архитектура: большой набор векторных операций

    • 8,16,32-битные целочисленные

    • 32,64-битные вещественные

  • Два исполнительных конвейера

  • Общий регистровый файл

    • 128 регистров по 128 бит (16 байт)

  • 256 KB локальной памяти

    • Общая для кода и данных

    • 16 B/тактдля чтения/записи регистров

    • 128 B/тактдля передач DMA


Element interconnect bus

Element Interconnect Bus

  • Обмен данными для внутренних коммуникаций

    • Четыре 16-байтных кольцевых канала с поддержкой нескольких одновременных передач

    • 96 B/такт пиковая пропускная способность

    • До 100 одновременных запросов


Element interconnect bus1

Пример восьми одновременных транзакцийна Element Interconnect Bus


Cell

Интерфейсы памятии ввода-вывода

  • Двойнойконтроллер памяти XDR (25.6 GB/s)

  • Два конфигурируемых интерфейса

    • Конфигурируемое число байтна канал

    • Когерентность

  • Позволяет создавать системы различных конфигураций


Cell

Предпосылки архитектуры Cell

  • Преодоление барьеров производительности

    • Power Wall. Увеличение эффективности затрачиваемой энергии за счет разделения функций:

      • Процессор, оптимизированный для работы операционной системы и кода со сложным управлением.

      • Процессор, оптимизированный для выполнения приложений с интенсивными вычислениями.

    • Memory Wall. Уменьшение влияния задержек памяти за счет:

      • 3-х уровневая структура памяти (основная память, локальная память SPE, большой регистровый файл SPE).

      • Асинхронная передача между основной и локальной памятью.

    • Frequency Wall.Достижение высоких частот благодаря специализации процессоров под решение конкретных задач.


Cell

Пиковая производительность


Cell

План

  • Общая информация о процессоре Cell

  • Архитектура процессора Cell

  • Программирование процессора Cell

    • Уровни параллелизма

    • Взаимодействие ядер

    • Программирование SPE

  • Реализации систем на базе Cell


Cell

Программирование процессора Cell

Два уровня параллелизма:

  • Независимые задачи, которые могут быть выполнены параллельно:

    • 2 аппаратных потока PPE

    • 8 программ SPE

  • Регулярные векторные данные, обработка которых может быть векторизована:

    • SPE SIMD

    • PPE VMX


Cell

Параллелизм по данным

Параллелизм задач

Конвейер (параллелизм задач)

Основная память

SPE

Основная память

SPE

SPE

SPE

SPE

SPE

SPE

SPE

PPE

PPE

Модели параллельного программирования


Hello world

Программа «Hello, World!»

  • Программа для PPE

    #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

    #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;

    }


Hello world1

Программа «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;

    }


Ppe spe

Взаимодействие между PPE и SPE

  • Доступ к основной памяти

    • PPE – с помощью обычных инструкций чтения/записи памяти:

      • Регистр память

      • Память  регистр

    • SPE – с помощью команд DMA (через EIB)

      • Доступ к основной памяти асинхронный

      • Используется для передачи команд и данных


Ppe spe1

Взаимодействие между PPE и SPE

  • Основные механизмы общения SPE и PPE

    • Mailbox-ы – очереди 32-битных сообщений:

      • SPU in (4), SPU out (1), SPU out interrupt (1)

    • Сигналы – 32-битные сообщения

      • PPE  SPE

    • Прямой доступ к памяти (DMA-передача)

      • get, put – блок данных до 16 KB

  • SPE может обмениваться данными и сообщениями с другими SPE.


Cell

Пример передачи данных DMA

  • Программа для SPE

    void get (void *dest_lsa, unsigned long long sour_ea, unsigned long size)

    {

    int tag=15,mask=1<<tag;

    mfc_get (dest_lsa, sour_ea, size, tag, 0, 0);

    mfc_write_tag_mask(mask);

    mfc_read_tag_status_any();

    }

    void put (void *sour_lsa, unsigned long long dest_ea, unsigned long size)

    {

    int tag=15,mask=1<<tag;

    mfc_put (sour_lsa, dest_ea, size, tag, 0, 0);

    mfc_write_tag_mask(mask);

    mfc_read_tag_status_any();

    }


Ping pong

Программа «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


Cell

Программирование SPE

  • Все регистры SPE векторные.

  • Все инструкции являются параллельными по данным и работают с векторами.

  • Скалярные операции выполняются путем соответствующего использования векторных команд.

  • Скалярные аргументы, необходимые некоторым инструкциям, располагаются в «предпочтительных» позициях вектора:


Cell

Векторные типы данных


Cell

Векторизация вычислений

  • Для манипуляции векторными данными используются intrinsics– встроенные в компилятор команды:

    • Специальные – отображаются в одну инструкцию процессора,

      • Например: d = si_to_int(a);

    • Обобщенные – отображаются в одну или несколько инструкций процессора в зависимости от входных параметров,

      • Например: c = spu_add (a, b);

    • Составные – последовательности обобщенных и специальных intrinsics (объединенные для удобства).

      • Например, команды DMA-передачи.


Cell

Инструкции SPE

  • Ядро SPE имеет 2 конвейера (load & execute)

    • Инструкции каждого типа исполняются только на «своем» конвейере

  • Не все инструкции реализованы для всех типов данных

    • Отсутствуют инструкции деления (для всех типов)

    • Отсутствуют инструкции 32-битного целочисленного умножения

      • Реализуется программно с помощью 16-битного умножения


Cell

Предсказание ветвлений в SPE

  • Аппаратное предсказание отсутствует

  • Используется упрощенное предсказание:

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

    • Таблица ветвлений (BTB – Branch Target Buffer)

  • Пример программы:


Cell

Пример: векторное умножение матриц

  • Программа для SPE

    void mulv(float *a,float *b,float *c,int n)

    {int i,j,k;

    vector float *av=(vector float *)a;

    vector float *bv=(vector float *)b;

    vector float *cv=(vector float *)c;

    vector float s={0.0,0.0,0.0,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++)

    cv[i*n/4+j]=spu_add(cv[i*n/4+j],spu_mul(s,bv[k*n/4+j]));

    }

    }


Cell

Типичный порядок разработки программы для Cell

  • Изучение алгоритма

  • Изучение размещения и потоков данных

  • Экспериментальное разбиение и отображение алгоритма и структуры программы на архитектуру

  • Разработка PPE-управления, PPE-скалярного кода

  • Разработка PPE-управления, распределенного SPE-скалярного кода

    • Коммуникации, синхронизация, задержки при пересылках

  • Преобразование SPE-скалярного кода в SPE SIMD код

  • Перебалансировка вычислений / пересылок данных

  • Другие оптимизации

    • PPE SIMD, узкие места системы, балансировка загрузки


Cell

План

  • Общая информация о процессоре Cell

  • Архитектура процессора Cell

  • Программирование процессора Cell

  • Реализации систем на базе Cell


Cell

Реализации систем на базе Cell

  • IBM BladeCenter QS 21

    • 2 × Cell B.E.

  • IBM BladeCenter QS 22

    • 2 × PowerXCell 8i

  • Sony PlayStation 3

    • 1 × Cell B.E. (6 SPE)


Cell

Cell в отделе МО ВВС


Cell

Спасибо за внимание!


  • Login