2009-01-22 60 views
15

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

“A单一PS3执行更好比最高端的桌面提供和进行比较,以多达25个节点的IBM蓝色基因超级计算机”。PlayStation3 Gravity Grid

最重要的是:

  1. CPU - 7 Synergistic Processing Elements
  2. GPU的任何Linux OS has access to 6 - 索尼实现了虚拟机管理程序限制进入RSX
  3. 并行 - IBM提供introduction to programming parallel applications在PS3上

所以上手:

  1. 安装Linux on the PS3
  2. 获得一个适用于该Linux的编译器的IDE。 。(帮助!)
+0

您正在考虑开发哪种软件? – 2009-01-22 01:03:55

回答

2

您可能想试试Codeplay Software的Offload C++。它提供了一个扩展的C++ ++语言处理器多核硬件软件开发方言。

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

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

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

4

你也可以试试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,代码::块),只要你能找到(仅适用于最流行的IDE)语法高亮文件。 Cell SDK也可用,并且可能提供更好的集成,并且软件包可用于RHEL 5.2和Fedora 9(应该能够使用外部版本将这些文件拖入Debian/Ubuntu,但不确定)。

OpenMPI是一个好主意,他们已经能够编译它基于单元的刀片(here),所以我不认为这应该是一个问题。你也可以自己传递消息,因为低开销是提取Cell良好性能的关键(虽然我不知道OpenMPI的适用性如何,但它可能很棒)。

2

Matthew Scarpino的书,编程细胞处理器,是相当新的和有很多好的信息。此外,website for the book有很多示例代码可供下载。

通过Cell处理器的并行编程还有一个MIT course,它有一些很好的信息,尽管它有些已经过时了,也就是说,它使用libspe提供自己线程的旧细胞机制。使用最新版本的库,您需要从其他位置获取线程(pthreads,boost,以及其他),以便运行并行程序。

至于OS和编译器,我一直在使用Yellow Dog Linux 6.1。 YDL到现在为止工作得非常好,无论如何都比Fedora 9好得多,尽管这可能是由于YDL带有超轻量级窗口管理器而Fedora 9没有。我有一些与网络有关的问题,但这些很可能是我有系统设置的略有离奇的网络环境的产品。

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

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

1

在特殊设计的SPE上运行代码时要小心 - 编译器和编译器的默认堆栈大小差别很大,并且在溢出时会导致各种问题。在SPE代码中全局声明大部分数据通常是一种很好的做法,并且避免除非常小的变量分配之外的堆栈。由于没有缓存(或者说......它的所有L2缓存,在某种意义上),所以这样做并没有真正的性能损失,并且你永远不会遇到像试图从内存中DMA数据或从内存中DMA数据那样的问题地址不再有效等。

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