Разработка для PlayStation 3 Linux - PullRequest
16 голосов
/ 22 января 2009

Я заинтересован в разработке программного обеспечения для консолей Sony PlayStation 3 , содержащего многоядерный процессор Cell , предназначенного для любого PS3-совместимого дистрибутива Linux .

"Одна PS3 работает на лучше , чем доступные настольные компьютеры самого высокого уровня, и сравнивается со 25 узлами суперкомпьютера IBM Blue Gene . " ~ PlayStation3 Gravity Grid

Самое главное:

  1. CPU - Любая ОС Linux имеет доступ к 6 из 7 синергетических элементов обработки
  2. GPU - Sony использует гипервизор, ограничивающий доступ к RSX
  3. Parallel - IBM предоставляет введение в программирование параллельных приложений на PS3

Итак, для начала:

  1. Установка Linux на PS3 :
  2. Получите IDE с компилятором, подходящим для этого Linux. .. (помощь!)

Ответы [ 4 ]

4 голосов
/ 22 января 2009

Вы также можете попробовать Ubuntu 8.10 (Intrepid Ibex). Их поддержка PS3 довольно хорошая, и инструкции по установке и примерный учебник по компиляции можно найти здесь . GCC 4.3 и binutils 4.18 включают цели для Cell PPU (общая цель PowerPC) и SPU, и в репозиториях Ubuntu есть пакеты (например, spu-gcc, spu-g ++, spu-binutils, ppu-gdb, spu-newlib). и т. д.), который скомпилирует двоичные файлы для вас.

Что касается надлежащей IDE, вышеупомянутые утилиты должны прекрасно интегрироваться практически с любой IDE (то есть KDevelop, Eclipse CDT, Code :: Blocks), при условии, что вы можете найти файлы подсветки синтаксиса (доступные для большинства популярных IDE). Cell SDK также доступен и потенциально может обеспечить лучшую интеграцию, а пакеты доступны для RHEL 5.2 и Fedora 9 (должен иметь возможность использовать alien для загрузки их в Debian / Ubuntu, но не уверен в что).

OpenMPI - хорошая идея, они смогли скомпилировать его для блэйдов на базе Cell ( здесь ), поэтому я не думаю, что это должно быть проблемой. Вы также можете прокрутить свою собственную передачу сообщений, так как низкие издержки являются ключом к извлечению хорошей производительности на Cell (хотя я не знаю, насколько хорошо подходит OpenMPI для этого, это могло бы быть здорово).

2 голосов
/ 27 февраля 2010

Возможно, вы захотите попробовать Offload C ++ от Codeplay Software. Он предоставляет расширенный диалект C ++, облегчая разработку программного обеспечения на многоядерном оборудовании, таком как процессор Cell.

Кросс-компиляторный набор инструментов позволяет компилировать код для PS3 в Windows, что может быть полезно с учетом ограничений ресурсов (например, системной памяти) на консоли PS3 под управлением Linux, что может повлиять на время компиляции и использовать PS3 в рабочий стол неловко.

Доступны версии компилятора и инструментов Offload C ++ для PS3 GameOS и Linux на Cell с Cell BE SDK. Версия Cell Linux интегрируется с Eclipse CDT для IDE.

Отказ от ответственности: я разработчик в Codeplay.

2 голосов
/ 16 марта 2009

Книга Мэтью Скарпино Программирование процессора ячеек довольно современна и содержит много полезной информации. Кроме того, на веб-сайте для книги имеется множество примеров кода, доступных для скачивания.

Был также курс MIT по параллельному программированию через процессор Cell, в котором есть некоторая полезная информация, хотя некоторые из них устарели, а именно, он использует старую механику ячейки, где libspe предоставил свою собственную потоки. В новейшей версии библиотеки вам нужно будет получать свои потоки из других источников (pthreads, boost, что угодно) для запуска параллельных программ.

Что касается ОС и компилятора, я использую Yellow Dog Linux 6.1. До настоящего времени YDL работал довольно хорошо, в любом случае намного лучше, чем Fedora 9, хотя это, вероятно, является результатом того, что YDL поставляется с сверхлегким оконным менеджером, а Fedora 9 - нет. У меня было несколько проблем с сетью, но это, скорее всего, продукт слегка странной сетевой среды, в которой я настроил систему.

После того, как у меня был запущен и запущен YDL, я установил пакеты fedora cell sdk поверх этого (это занимает немного работы, так как установочный скрипт celldk ошибочно распознает YDL как RHEL, а не Fedora). У YDL большая часть SDK доступна в одном из их репозиториев, но по умолчанию не большая его часть установлена, только компиляторы (конечно, я не понял этого, пока не взломал установщик IBM для выполнения правильная вещь). Я просто использую базовые компиляторы IBM (не XL).

Существует также масса информации, разбросанной по сайту IBM , но это может быть довольно сложно понять.

1 голос
/ 24 января 2012

Будьте внимательны при запуске кода на SPE их особого дизайна - размер стека по умолчанию сильно варьируется от компилятора к компилятору и может вызвать всевозможные проблемы при переполнении. Обычно рекомендуется объявлять большинство данных глобально в коде SPE и избегать использования стека, за исключением очень небольших распределений переменных.

Поскольку кеша нет (или ... в каком-то смысле весь кеш L2), это не сказывается на производительности, и вы никогда не столкнетесь с такими проблемами, как попытка передачи данных DMA на адрес памяти или с нее это больше не действует и т. д.

Компилятор IBM SPE, как правило, считается лучшим, на самом деле, хотя я никогда не использовал его лично.

...