ide - sistema - Desarrollar para PlayStation 3 Linux
sistema operativo yellow dog (4)
Estoy interesado en desarrollar software para consolas Sony PlayStation 3 que contenga un procesador Cell de varios núcleos , enfocándose en cualquier distribución de Linux compatible con PS3 .
"Una sola PS3 funciona mejor que las computadoras de escritorio de más alto nivel disponibles y se compara con hasta 25 nodos de una supercomputadora IBM Blue Gene". ~ PlayStation3 Gravity Grid
Más importante:
- CPU : cualquier sistema operativo Linux tiene acceso a 6 de los 7 elementos de procesamiento sinérgico
- GPU : Sony implementa un hipervisor que restringe el acceso al RSX
- Paralelo : IBM proporciona una introducción a la programación de aplicaciones paralelas en la PS3.
Entonces para comenzar:
- Instalar Linux en la PS3 :
- Obtenga un IDE con un compilador adecuado para ese Linux. ..(¡ayuda!)
- C ++ IDE : KDevelop , Eclipse CDT , Código :: Bloques
- GCC 4.3 con Binutils 4.1
- IBM XL for the Cell: disponible como parte del Cell SDK de IBM
- OpenMPI para PowerPC Linux ... (¿qué?)
También puedes probar Ubuntu 8.10 (Intrepid Ibex). Su soporte para PS3 es bastante bueno, y las instrucciones para la instalación y un manual básico sobre compilación se pueden encontrar aquí . GCC 4.3 y binutils 4.18 incluyen objetivos para Cell PPU (un objetivo PowerPC genérico) 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 apropiado, las utilidades anteriores deben integrarse bien con cualquier IDE (es decir, KDevelop, Eclipse CDT, Code :: Blocks), siempre que pueda encontrar archivos de resaltado de sintaxis (disponibles para IDE más populares). El SDK de Cell también está disponible y podría proporcionar una mejor integración, y hay paquetes disponibles para RHEL 5.2 y Fedora 9 (debería poder usar alien para incorporarlos a Debian / Ubuntu, pero no estoy seguro de eso).
OpenMPI es una buena idea, han podido compilarla para blades basados en Cell ( aquí ), así que no creo que deba ser un problema. También podría lanzar su propio mensaje, ya que una sobrecarga baja es clave para extraer un buen rendimiento en la Celda (aunque no sé qué tan apropiado es OpenMPI para esto, podría ser genial).
El libro de Matthew Scarpino, Programming the Cell Processor , está bastante actualizado y tiene mucha información buena. Además, el sitio web del libro tiene muchos códigos de ejemplo disponibles para descargar.
También hubo un curso de MIT sobre programación paralela a través del procesador Cell que tiene buena información, aunque parte de ella está desactualizada, es decir, usa la vieja mecánica de la celda donde libspe proporcionó sus propios hilos. Con la versión más nueva de la biblioteca, necesitará obtener sus hilos de otra parte (pthreads, boost, lo que sea) para ejecutar programas paralelos.
En cuanto al sistema operativo y el 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 es probable que sea el resultado del hecho de que YDL viene con un administrador de ventanas superligero y Fedora 9 no. Tuve algunos problemas con la creación de redes, pero es muy probable que sean producto del entorno de red un poco extraño en el que tengo configurado el sistema.
Una vez que tuve YDL en funcionamiento, instalé los paquetes sdk fedora de la celda encima (esto lleva un poco de trabajo, ya que el script de instalación de cellsdk reconoce falsamente a YDL como RHEL, no como Fedora). YDL tiene la mayor parte del SDK disponible en uno de sus repositorios de paquetes, pero por defecto no se instala gran parte de él, solo los compiladores (por supuesto, no resolví 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 las cosas XL).
También hay una gran cantidad de información diseminada por el sitio de IBM , pero puede ser un poco difícil de entender.
Es posible que desee probar descargar C ++ del software Codeplay. Proporciona un dialecto extendido de desarrollo de software C ++ easing en hardware multinúcleo como el procesador Cell.
Una herramienta de compilación cruzada permite la compilación de código para PS3 en Windows, que puede ser útil dadas las limitaciones de recursos (por ejemplo, memoria del sistema) en una consola PS3 que ejecuta Linux, lo que puede afectar los tiempos de compilación y hacer que el uso de una PS3 sea incómodo. .
Las versiones del compilador y las herramientas de descarga de C ++ están disponibles para PS3 GameOS y Linux on Cell con el SDK de Cell BE. La versión de Cell de Cell se integra con Eclipse CDT para un IDE.
Descargo de responsabilidad: soy un desarrollador en Codeplay.
Tenga en cuenta al ejecutar código en las entidades de seguridad de su diseño especial: el tamaño predeterminado de la pila varía mucho de compilador a compilador, y puede causar todo tipo de problemas cuando se desborda. En general, es una buena práctica declarar la mayoría de los datos globalmente en el código SPE y evitar la pila, excepto para las asignaciones de variables muy pequeñas.
Como no hay caché (o ... todo es caché L2, en cierto sentido), no hay una penalización real en el rendimiento al hacer esto, y nunca se encontrará con problemas como intentar datos DMA hacia o desde una dirección de memoria que no es más tiempo válido, etc.
El compilador IBM SPE generalmente se considera el mejor, afaik, aunque nunca lo he usado personalmente.