Вопрос

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

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

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

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

Итак, чтобы начать:

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

Решение

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

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

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

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

Другие советы

Вы также можете попробовать 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 (должна быть возможность использовать чужой перенести их в Debian / Ubuntu, но не уверен в этом).

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

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

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

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top