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

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


  • 172 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

  • 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

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

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

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

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

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


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

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

    1 PPE – Power Processor Element

    8 SPE – Synergistic Processor Element

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

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

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

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

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


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

  • SPE – Synergistic Processor Element

  • PPE – Power Processor Element


План

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

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

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

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


Power Processor Element

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

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

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

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

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


Synergistic Processor Element

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Element Interconnect Bus

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

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

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

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


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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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


План

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

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

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

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

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

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

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


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

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

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

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

    • 8 программ SPE

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

    • SPE SIMD

    • PPE VMX


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

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

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

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

SPE

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

SPE

SPE

SPE

SPE

SPE

SPE

SPE

PPE

PPE

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


Программа «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, 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 – с помощью команд DMA (через EIB)

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

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


Взаимодействие между 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.


Пример передачи данных 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»

  • Фрагмент программы для 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


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

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

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

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

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


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


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

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

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

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

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

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

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

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


Инструкции SPE

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

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

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

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

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

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


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

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

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

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

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

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


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

  • Программа для 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

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

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

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

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

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

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

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

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

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

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


План

  • Общая информация о процессоре 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 в отделе МО ВВС


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


  • Login