НЕОДНОРОДНЫЙ МНОГОЯДЕРНЫЙ ПРОЦЕССОР CELL: АРХИТЕКТУРА И ПРОГРАММИРОВАНИЕ
Автор: Недоводеев К. В.,
мл. науч. сотр., ин-т ВКиСТ, ГУАП,
ассистент каф. АиВТ ФТК СПбГПУ
Санкт-Петербург, 2008
Краткое содержание модуля
Данный модуль содержит описание ключевых архитектурных особенностей многоядерного процессора CELL, отличающих его от представителей семейства однородных многоядерных процессоров таких как процессоры Intel Core Duo (Quad), AMD Phenom и др. В процессе изложения затрагиваются все ключевые элементы процессора CELL: PPE-ядро, SPE-ядра, DMA-ядра (входят в состав контроллера памяти MFC) и шина EIB. Помимо рассмотрения архитектуры процессора в данный модуль включено рассмотрение моделей программирования вычислительных систем, построенных на базе многоядерного процессора CELL. Для каждой модели приводится описание особенностей ее применения. В процессе изучения модуля студентам предлагается выполнить ряд лабораторных работ, направленных на закрепление полученных знаний.
Лекция 1. Архитектура многоядерного процессора CELL (2 часа)
Презентация
В данной лекции приведен обзор архитектуры многоядерного процессора CELL, рассматриваются все основные компоненты процессора. Указывается одно из основных отличий многоядерного процессора CELL от представителей семейства однородных многоядерных процессоров – наличие трехзвенной архитектуры подсистемы памяти с программируемым обменом данными между различными модулями памяти. Приведено описание архитектуры конвейера PPE-ядра и SPE-ядер.
Лекция 2. Модели программирования многоядерного процессора CELL (2 часа)
Презентация
В данной лекции приведен обзор пяти моделей программирования многоядерного процессора CELL, получивших наибольшее распространение. В процессе рассмотрения каждой модели программирования указываются преимущества и недостатки ее использования, а также особенности ее реализации. В конце лекции делаются обобщающие материал выводы.
Лабораторные работы
- Создание программ для многоядерного процессора CELL (1 час / 1 час)
- Статический анализ характеристик программы SPE-ядра (1 час / 1 час)
- Оценка производительности программы (PPE-ядро либо SPE-ядро) (2 часа / 2 часа)
- Организация векторной обработки данных (SPE-ядро) (2 часа / 4 часа)
- Организация DMA-обмена (Инициируемый со стороны PPE-ядра, либо со стороны SPE-ядра) (2 часа / 4 часа)
Задания на индивидуальные исследования
- Организация блочной обработки данных на уровне регистров (register tiling) (SPE-ядро)
- Оптимизация программ (исследование механизма статического предсказания переходов) (SPE-ядро)
- Организация блочной обработки данных на уровне кэш-памяти (cache tiling) (PPE-ядро)
- Организация блочной обработки данных на уровне регистров (register tiling) (PPE-ядро)
- Оптимизация программ (конвейеризация циклов) (SPE-ядро)
На данный момент выполнено 5 индивидуальных заданий:
Дипломные работы
Помимо выполнения индивидуальных заданий в дальнейшем студентам предлагается выполнить дипломный проект, либо магистерскую диссертацию. На данный момент уже выполнен и защищен 1 дипломный проект:
- «ОБРАБОТКА МАТРИЦ НА МНОГОЯДЕРНОМ ПРОЦЕССОРЕ» (тезисы, презентация)
Автор: Страхов А.С.
Магистерские диссертации
Предлагаются следующие темы магистерских диссертаций:
- «ПРИМЕНЕНИЕ SIMD-ОБРАБОТКИ В МНОГОЯДЕРНЫХ ПРОЦЕССОРАХ ДЛЯ ОБРАБОТКИ МАТРИЦ»
В данной работе предлагается на примере SPE-ядер процессора CELL провести исследование подсистемы организации векторной обработки данных. Предлагается изучить особенности векторизации вычислений в задачах обработки матриц.
- «ИССЛЕДОВАНИЕ ПОДСИСТЕМЫ ОБМЕНА ДАННЫМИ В МНОГОЯДЕРНЫХ ПРОЦЕССОРАХ»
Данная работа предполагает проведение исследования различных подсистем организации обмена данными в процессоре CELL: подсистемы организации DMA-обменов, подсистемы обмена короткими сообщениями (messaging). В процессе выполнения работы предполагается на примере задачи с регулярным характером доступа к данным изучить различные варианты организации вычислений, зависимость производительности обработки данных при варьировании гранулярности пересылок.
- «ОРГАНИЗАЦИЯ КОНВЕЙЕРНОЙ ОБРАБОТКИ БОЛЬШИХ МАССИВОВ ДАННЫХ В НЕОДНОРОДНЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРАХ»
Одной из предлагаемых разработчиками неоднородного многоядерного процессора CELL моделей программирования является модель потоковой обработки данных. При этом вычислительный процесс может быть организован таким образом, что вычислительные ядра процессора CELL связываются друг с другом посредством имеющихся каналов передачи данных между модулями их локальной памяти. Такая организация вычислительного процесса позволяет снизить количество обращений к относительно медленной общей памяти процессора.
В рамках данной работы предлагается исследовать вопросы, связанные с эффективной организацией вычислительного процесса при различных вариантах структуры вычислительного конвейера (вилочное распараллеливание некоторых стадий конвейера, суперскалярная обработка и др.).
- «РЕАЛИЗАЦИЯ СИСТОЛИЧЕСКИХ АЛГОРИТМОВ В НЕОДНОРОДНЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРАХ»
Решение некоторых вычислительно емких задач может быть сформулировано в виде систолического алгоритма. Такая формулировка решения позволяет распараллелить вычисления при условии, что решаемая задача имеет регулярный характер доступа к элементам данных. Исходно, данная формулировка решения задач была применена при организации обработки данных в систолических массивах (специализированный тип вычислителей) и сетях транспьютеров.
В данной работе предлагается исследовать возможность организации решения вычислительно емких задач в неоднородных многоядерных процессорах при использовании систолических алгоритмов для организации вычислений.
Программное обеспечение
При выполнении практических и исследовательских работ студенты используют следующее программное обеспечение, любезно предоставленное компанией IBM:
- Виртуальная машина VMWare с предустановленными:
1. ОС Linux Fedora Core 6.0;
2. Симулятор процессора CELL Systemsim;
3. Интегрированная среда разработки Eclipse;
4. Набор системных утилит: компиляторы для PPE и SPE ядер, ассемблеры, линковщики и пр.
Опубликованные работы
- Ахин М. Х., Пяйт А. Л. Определение пропускной способности единичных DMA-обменов в многоядерном процессоре Cell // Наука и инновации в технических университетах. Материалы Всероссийского Форума студентов, аспирантов и молодых ученых.- СПб.: Изд-во Политехнического университета, 2008.- 256 с., c. 63-65
- Большев Р. А., Таубергер Т. В. Исследование эффективности применения развертки циклов в программе PPE-ядра многоядерного процессора Cell // Наука и инновации в технических университетах. Материалы Всероссийского Форума студентов, аспирантов и молодых ученых.- СПб.: Изд-во Политехнического университета, 2008.- 256 с., с. 86-87
- Карпенко А. В., Баженов А. С. Организация цепочечного DMA-обмена в многоядерном процессоре Cell // Наука и инновации в технических университетах. Материалы Всероссийского Форума студентов, аспирантов и молодых ученых.- СПб.: Изд-во Политехнического университета, 2008.- 256 с., с. 69-70
- Недоводеев К. В. Оценка производительности мультиядерной СБИС Мультикор 12 // Тезисы Всероссийской научно-практической конференции студентов, аспирантов и молодых специалистов (4-9 апреля 2005, г. Красноярск)
- Недоводеев К. В. Организация взаимодействия RISC- и DSP-ядер сверхбольшой интегральной схемы «Мультикор» в задачах обработки сигналов // Материалы IX Междунар. науч. конф., посвящ. 45-летию Сиб. гос. аэрокосмич. ун-та имени акад. М. Ф. Решетнева (10-12 нояб. 2005, г.Красноярск)
- Недоводеев К. В., Шейнин Ю. Е. Высокопроизводительная обработка больших массивов данных в неоднородных мультиядерных процессорах // Электронные компоненты, 2006, № 9, с. 116-122.
- Недоводеев К. В. Организация (макро) потоковых вычислений в неоднородных мультиядерных процессорах // Шестой международный научно-практический семинар и молодежная школа «Высокопроизводительные параллельные вычисления на кластерных системах» (12-16 Декабря 2006, Санкт-Петербург)
- Недоводеев К. В. Применение модели потоков данных для описания (макро)блочных алгоритмов // Материалы всероссийского форума студентов, аспирантов и молодых ученых «Наука и инновации в технических университетах» (10 — 12 Октября 2007, Санкт-Петербург)
- Недоводеев К. В. Метод синтеза блочного алгоритма по его графовому представлению // Научно-технические ведомости, 2007, № 4, том 2, с. 141-148
- Маслов А. Ю., Тимофеева Т. А. Векторизация вычислений в SPE-ядрах процессора Cell // Наука и инновации в технических университетах. Материалы Всероссийского Форума студентов, аспирантов и молодых ученых.- СПб.: Изд-во Политехнического университета, 2008.- 256 с., с. 48-50
- Nedovodeev K. V. Multimedia Data Processing On Dual-Core Soc Multicore-24 // Proceedings of the IEEE Tenth International Symposium on Consumer Electronics (ISCE 2006) 28 June — 1 July 2006 St. Petersburg, Russia
Литература
- Дж. Голуб, Ч. Ван Лоун Матричные вычисления М.: Мир, 1999. – 548 стр.
- David F. Bacon, Susan L. Graham and Oliver J. Sharp Compiler transformations for high-performance computing // ACM Computing Surveys Vol. 26, No. 4, 1994 pp. 345 420
- K. Yotov, X. Li, G. Ren, et al. A comparison of empirical and model-driven optimization // Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation, San Diego, California, 2003 pp. 63 – 76
- Cell Broadband Engine Programming Handbook: Version 1.1
- C/C++ Language Extensions for Cell Broadband Engine Architecture: Version 2.5
- IBM Full-system simulator User’s guide. Modeling systems based on the Cell Broadband Engine processor: Version 3.0
- Performance Analysis with the IBM Full-System Simulator. Modeling the Performance of the Cell Broadband Engine Processor: Version 3.0
Интернет
- http://www.research.ibm.com/cell
- http://www-128.ibm.com/developerworks/power/cell