Разработка сотового программного обеспечения - Cell software development - Wikipedia

Разработка программного обеспечения для Микропроцессор клетки включает в себя сочетание традиционных методов разработки для PowerPC -совместимое ядро ​​PPU и новые задачи разработки программного обеспечения в отношении сопроцессоров SPU с уменьшенными функциональными возможностями.

Linux на Cell

Стратегия, основанная на программном обеспечении с открытым исходным кодом, была принята для ускорения разработки экосистемы Cell BE и предоставления среды для разработки приложений Cell, включая компилятор Cell на основе GCC, binutils и порт для операционной системы Linux.[1]

Осьминог

Осьминог является IBM прототип компилятор позволять разработчики программного обеспечения написать код за Сотовые процессоры.[2][3][4]

Переносимость программного обеспечения

Адаптация VMX для SPU

Различия между VMX и SPU

В VMX Технология (Vector Multimedia Extensions) концептуально аналогична векторной модели, предоставляемой процессорами SPU, но есть много существенных отличий.

Сравнение VMX и SPU[1]
незаконченный
особенностьVMXСПУ
слово размер32 бит32 бит
количество регистры32128
ширина регистра128-битное четверное слово128-битное четверное слово
целое число форматы8, 16, 328, 16, 32, 64
поддержка насыщенияданет
порядок байтовбольшой (по умолчанию), маленькийпрямой порядок байтов
плавающая точка режимыJava, не Javaодинарная точность, двойная IEEE
Выравнивание памятитолько четырехсловотолько четырехслово

VMX Ява Режим соответствует Спецификация языка Java 1 подмножество по умолчанию Стандарт IEEE, расширен за счет включения IEEE и C9X соответствие там, где стандарт Java умалчивает. В типичной реализации режим, отличный от Java, преобразует ненормальный значения равны нулю, но режим Java перехватывает эмулятор, когда процессор обнаруживает такое значение.

В руководстве IBM PPE Vector / SIMD не определены операции для операций с плавающей запятой двойной точности, хотя IBM опубликовала материал, подразумевающий определенные показатели производительности двойной точности, связанные с технологией Cell PPE VMX.

Внутренние

Компиляторы для Cell[ВОЗ? ] предоставлять внутренняя сущность предоставить полезные инструкции SPU на C и C ++. Инструкции, которые различаются только типом операнда (например, a, ai, ah, ahi, fa и dfa для сложения), обычно представлены одной внутренней функцией C / C ++, которая выбирает правильную инструкцию на основе типа операнда.

Перенос кода VMX для SPU

Есть большой объем кода, который был разработан для других IBM. Процессоры питания это потенциально может быть адаптировано и перекомпилировано для работы на SPU. Эта кодовая база включает код VMX, который работает под PowerPC версия Apple Mac OS X, где он более известен как Altivec. В зависимости от того, сколько конкретных функций VMX задействовано, адаптация может варьироваться от простой до обременительной или совершенно непрактичной. Наиболее важные рабочие нагрузки для SPU обычно отображаются достаточно хорошо.

В некоторых случаях можно напрямую перенести существующий код VMX. Если код VMX является очень общим (делает мало предположений о среде выполнения), перевод может быть относительно простым. Два процессора указывают разные формат двоичного кода, поэтому требуется как минимум перекомпиляция. Даже где инструкции существуют с одинаковым поведением, у них разные имена инструкций, поэтому это также должно быть отображено. IBM предоставляет компилятор внутренняя сущность которые прозрачно заботятся об этом отображении как часть инструментария разработки.

Однако во многих случаях прямо эквивалентной инструкции не существует. Обходной путь может быть очевиден, а может и нет. Например, если для SPU требуется режим насыщения, его можно закодировать, добавив для этого дополнительные инструкции SPU (с некоторой потерей эффективности). С другой стороны, если требуется семантика Java с плавающей точкой, этого практически невозможно достичь на процессоре SPU. Для достижения тех же вычислений на SPU может потребоваться совершенно другой алгоритм быть написанным с нуля.

Наиболее важное концептуальное сходство между VMX и архитектурой SPU заключается в поддержке одного и того же модель векторизации. По этой причине большинство алгоритмов, адаптированных для Altivec, обычно также успешно адаптируются к архитектуре SPU.

Эксплуатация местного магазина

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

Приложения с высокой локальностью, такие как вычисления с плотной матрицей, представляют собой идеальный класс рабочей нагрузки для локальных магазинов в Cell BE.[5]

Потоковые вычисления могут быть эффективно выполнены с помощью конвейерная обработка программного обеспечения передачи блоков памяти с использованием стратегии мультибуферизации.[1]

Программный кеш предлагает решение для случайного доступа.[6]

Более сложные приложения могут использовать несколько стратегий для разных типов данных.[7]

Рекомендации

  1. ^ а б «Среда с открытым исходным кодом для системного программного обеспечения Cell Broadband Engine» (PDF). Июнь 2007 г.
  2. ^ Исследовательский проект IBM - Технология компиляции для масштабируемых архитектур
  3. ^ IBM Systems Journal - Использование передовой технологии компилятора для использования производительности архитектуры Cell Broadband Engine, 2017-10-23, архивировано с оригинал на 2006-04-11
  4. ^ Octopiler от IBM, или почему PS3 опаздывает, ArsTechnica, 2006-02-26
  5. ^ «Синергетическая обработка в многоядерной архитектуре Cell» (PDF). Март 2006 г.
  6. ^ «Использование передовой технологии компилятора для использования производительности архитектуры Cell Broadband Engine» (PDF). Январь 2006 г.
  7. ^ "Cell GC: использование синергетического процессора Cell в качестве сопроцессора сборки мусора" (PDF). Март 2008 г.