【问题标题】:Develop for PlayStation 3 Linux [closed]为 PlayStation 3 Linux 开发 [关闭]
【发布时间】:2009-01-22 00:57:41
【问题描述】:

我有兴趣为 Sony PlayStation 3 控制台开发软件,其中包含一个多核 Cell 处理器,面向任何 PS3-compatible Linux 发行版。

“单个 PS3 的性能比现有的最高端台式机更好,与 IBM Blue Gene 超级计算机的多达 25 个节点相比。” ~ PlayStation3 Gravity Grid

最重要的是:

  1. CPU - 7 个Synergistic Processing Elements 中的任何Linux 操作系统has access to 6
  2. GPU - 索尼实现了一个管理程序来限制对RSX 的访问
  3. Parallel - IBM 在 PS3 上提供introduction to programming parallel applications

所以开始吧:

  1. 安装Linux on the PS3:
  2. 获取带有适合该 Linux 的编译器的 IDE。 ..(帮助!)

【问题讨论】:

  • 您正在考虑开发什么样的软件?
  • 让我们看看如何开始为 PS3 的 6 个 SPE 进行并行编程,然后我们将从那里开始!
  • 这个问题不是基于意见的。
  • @PCM 是的,这太离题了
  • 回答离题的问题鼓励写这样的问题。

标签: ide sdk playstation ps3


【解决方案1】:

您也可以尝试 Ubuntu 8.10 (Intrepid Ibex)。他们的 PS3 支持非常好,安装说明和粗略的编译入门可以在here 找到。 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 是一个好主意,他们已经能够为基于单元的刀片 (here) 编译它,所以我认为这应该不是问题。你也可以滚动你自己的消息传递,因为低开销是在 Cell 上提取良好性能的关键(虽然我不知道 OpenMPI 是否适合这个,但它可能很棒)。

【讨论】:

    【解决方案2】:

    您可能想试试 Codeplay Software 的 Offload C++。它提供了 C++ 的扩展方言,便于在 Cell 处理器等多核硬件上开发软件。

    交叉编译器工具链允许在 Windows 上为 PS3 编译代码,考虑到运行 Linux 的 PS3 控制台上的资源限制(例如系统内存),这可能很有用,这可能会影响编译时间并使 PS3 用作桌面尴尬。

    Offload C++ 编译器和工具的版本适用于带有 Cell BE SDK 的 PS3 GameOS 和 Linux on Cell。 Cell Linux 版本与用于 IDE 的 Eclipse CDT 集成。

    免责声明:我是 Codeplay 的开发人员。

    【讨论】:

      【解决方案3】:

      Matthew Scarpino 的书,Programming the Cell Processor,是最新的并且有很多很好的信息。此外,website for the book 有很多示例代码可供下载。

      还有一个MIT course 通过 Cell 处理器进行并行编程,其中有一些很好的信息,尽管其中一些已经过时,即它使用 libspe 提供自己的线程的旧单元机制。使用最新版本的库,您需要从其他地方(pthreads、boost 等)获取线程才能运行并行程序。

      至于操作系统和编译器,我一直在使用 Yellow Dog Linux 6.1。到目前为止,YDL 运行良好,无论如何都比 Fedora 9 好得多,尽管这可能是因为 YDL 带有超轻量级窗口管理器而 Fedora 9 没有。我在网络方面遇到了一些问题,但这些问题很可能是我设置系统的网络环境有点奇怪的产物。

      一旦我启动并运行了 YDL,然后我在上面安装了 cell sdk fedora 软件包(这需要一些工作,因为 cellsdk 安装脚本错误地将 YDL 识别为 RHEL,而不是 Fedora)。 YDL 确实在他们的一个包 repos 中提供了大部分 SDK,但默认情况下没有安装太多,只安装了编译器(当然,直到我已经破解了 IBM 安装程序来执行正确的事)。我只是在使用基本的 IBM 编译器(不是 XL 的东西)。

      IBM site 周围还有大量信息,但可能有点难以理解。

      【讨论】:

        【解决方案4】:

        在特殊设计的 SPE 上运行代码时请注意——默认堆栈大小因编译器而异,溢出时可能会导致各种问题。在 SPE 代码中全局声明大多数数据并避免堆栈(非常小的变量分配除外)通常是一种好习惯。

        由于没有缓存(或者......从某种意义上说,它的所有 L2 缓存),这样做并没有真正的性能损失,而且您永远不会遇到诸如尝试 DMA 数据进出内存地址之类的问题不再有效,等等。

        IBM SPE 编译器通常被认为是最好的,afaik,虽然我个人从未使用过它。

        【讨论】:

          猜你喜欢
          • 2010-09-07
          • 1970-01-01
          • 2010-12-06
          • 2011-01-10
          • 1970-01-01
          • 2012-06-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多