Pregunta

Estoy interesado en desarrollar software para consolas Sony PlayStation 3 que contiene una procesador Cell multi-core , dirigido a cualquier distribución Linux compatible con PS3 .

  

" Una sola PS3 funciona mejor que los escritorios de más alta gama disponibles y se compara con hasta 25 nodos de un IBM Blue Gene supercomputadora . " ~ PlayStation3 Gravity Grid

Lo más importante:

  1. CPU : cualquier sistema operativo Linux tiene acceso a 6 de los 7 Elementos de procesamiento sinérgico
  2. GPU : Sony implementa un hipervisor que restringe el acceso a RSX
  3. Paralelo : IBM proporciona un introducción a la programación de aplicaciones paralelas en la PS3

Entonces, para comenzar:

  1. Instale Linux en la PS3 :
  2. Obtenga un IDE con un compilador adecuado para ese Linux. .. (¡ayuda!)
¿Fue útil?

Solución

Es posible que desee probar Descargar C ++ del software Codeplay. Proporciona un dialecto extendido de C ++ que facilita el desarrollo de software en hardware multinúcleo como el procesador Cell.

Una cadena de herramientas de compilación cruzada permite la compilación de código para la PS3 en Windows, lo que puede ser útil dadas las limitaciones de recursos (por ejemplo, la memoria del sistema) en una consola PS3 que ejecuta Linux, lo que puede afectar los tiempos de compilación y hacer uso de una PS3 como Un escritorio incómodo.

Las versiones del compilador y las herramientas Offload C ++ están disponibles para PS3 GameOS y Linux on Cell con Cell BE SDK. La versión Cell Linux se integra con el Eclipse CDT para un IDE.

Descargo de responsabilidad: soy desarrollador en Codeplay.

Otros consejos

También puede probar Ubuntu 8.10 (Intrepid Ibex). Su compatibilidad con PS3 es bastante buena, y las instrucciones para la instalación y un manual básico sobre la compilación se pueden encontrar aquí . GCC 4.3 y binutils 4.18 incluyen objetivos para Cell PPU (un objetivo genérico de PowerPC) y SPU, y hay paquetes disponibles en los repositorios de Ubuntu (por ejemplo, spu-gcc, spu-g ++, spu-binutils, ppu-gdb, spu-newlib , etc.) que compilará binarios para usted.

En cuanto a un IDE adecuado, las utilidades anteriores deben integrarse bien con casi cualquier IDE (es decir, KDevelop, Eclipse CDT, Code :: Blocks), siempre que pueda encontrar archivos de resaltado de sintaxis (disponibles para los IDE más populares). El SDK de Cell también está disponible, y podría proporcionar una mejor integración, y los paquetes están disponibles para RHEL 5.2 y Fedora 9 (deberían poder usar alien para extraerlos en Debian / Ubuntu, pero no estoy seguro en eso).

OpenMPI es una buena idea, han podido compilarlo para blades basados ??en Cell ( aquí ), así que no creo que deba ser un problema. También puede pasar su propio mensaje, ya que la baja sobrecarga es clave para extraer un buen rendimiento en la celda (aunque no sé qué tan adecuado es OpenMPI para esto, podría ser excelente).

El libro de Matthew Scarpino, Programación del procesador celular , está bastante actualizado y tiene mucha buena información. Además, el sitio web para el libro tiene muchos códigos de ejemplo disponibles para descargar.

También hubo un curso MIT en programación paralela a través del procesador Cell que tiene buena información, aunque parte de ella está desactualizada, es decir, utiliza la vieja mecánica celular donde libspe proporcionaba sus propios hilos. Con la versión más reciente de la biblioteca, necesitará obtener sus hilos desde otro lugar (pthreads, boost, lo que sea) para ejecutar programas paralelos.

En cuanto a SO y compilador, he estado usando Yellow Dog Linux 6.1. YDL ha funcionado bastante bien hasta ahora, mucho mejor que Fedora 9 de todos modos, aunque eso es probablemente el resultado del hecho de que YDL viene con un administrador de ventanas súper liviano y Fedora 9 no. Tuve algunos problemas con las redes, pero probablemente sean producto del entorno de red ligeramente extraño en el que tengo configurado el sistema.

Una vez que tuve YDL en funcionamiento, instalé los paquetes de la célula sdk fedora encima (esto requiere un poco de trabajo, ya que el script de instalación de Celldk reconoce falsamente a YDL como RHEL, no como Fedora). YDL tiene la mayoría del SDK disponible en uno de sus repositorios de paquetes, pero por defecto no está instalado gran parte, solo los compiladores (por supuesto, no descubrí esto hasta que ya había pirateado el instalador de IBM para hacer el cosa correcta). Solo estoy usando los compiladores básicos de IBM (no el material XL).

También hay un montón de información dispersa alrededor del sitio de IBM , pero puede ser un poco difícil de entender.

Tenga en cuenta al ejecutar código en los SPE de su diseño especial: el tamaño predeterminado de la pila varía mucho de un compilador a otro, y puede causar todo tipo de problemas cuando se desborda. Por lo general, es una buena práctica declarar la mayoría de los datos globalmente en código SPE y evitar la pila, excepto las asignaciones de variables muy pequeñas.

Dado que no hay caché (o ... todo es caché L2, en cierto sentido), no hay una penalización de rendimiento real por hacer esto, y nunca se encontrará con problemas como intentar datos DMA hacia o desde una dirección de memoria eso ya no es válido, etc.

El compilador de IBM SPE generalmente se considera el mejor, afaik, aunque nunca lo he usado personalmente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top