Question

Je suis intéressé par le développement d'un logiciel pour les consoles Sony PlayStation 3 qui contient un processeur cellulaire multi-cœur , ciblant toute distribution compatible avec PS3.

  

"Une seule PS3 fonctionne mieux que les ordinateurs de bureau haut de gamme disponibles et se compare à autant de 25 noeuds d'un IBM Blue Gene super-ordinateur . " ~ Grille PlayStation3 Gravity

Plus important encore:

  1. CPU : tout système d'exploitation Linux a accès à 6 des 7 Processus de traitement synergique
  2. GPU - Sony implémente un hyperviseur limitant l'accès au RSX.
  3. Parallèle - IBM fournit un introduction à la programmation d'applications parallèles sur PS3

Donc pour commencer:

  1. Installez Linux sur la PS3 :
  2. Obtenez un IDE avec un compilateur adapté à ce Linux. .. (aide!)
Était-ce utile?

La solution

Vous pouvez essayer Décharger C ++ de Codeplay Software. Il fournit un dialecte étendu de développement C ++ facilitant le développement de logiciels sur du matériel multicœur tel que le processeur Cell.

Une chaîne d’outils de compilation croisée permet de compiler le code de la PS3 sous Windows, ce qui peut être utile compte tenu des contraintes de ressources (mémoire système, par exemple) sur une console PS3 exécutant Linux, ce qui peut avoir une incidence sur les temps de compilation et rendre la PS3 utilisable en tant que telle. un bureau maladroit.

Des versions du compilateur Offload C ++ et des outils sont disponibles pour cibler les consoles GameOS et Linux on Cell sur PS3 avec le SDK Cell BE. La version Cell Linux s’intègre à Eclipse CDT pour un IDE.

Avertissement: je suis développeur chez Codeplay.

Autres conseils

Vous pouvez également essayer Ubuntu 8.10 (Intrepid Ibex). Leur support PS3 est très bon, et on peut trouver des instructions pour l’installation ainsi qu’un manuel approximatif de compilation ici . GCC 4.3 et binutils 4.18 incluent des cibles pour Cell PPU (une cible PowerPC générique) et des SPU. Des packages sont également disponibles dans les référentiels Ubuntu (par exemple, spu-gcc, spu-g ++, spu-binutils, ppu-gdb, spu-newlib , etc.) qui compilera les fichiers binaires pour vous.

En ce qui concerne un IDE approprié, les utilitaires ci-dessus devraient s'intégrer parfaitement à tout IDE (par exemple, KDevelop, CDT Eclipse, Code :: Blocks), tant que vous pouvez trouver des fichiers mettant en évidence la syntaxe (disponibles pour les IDE les plus courants). Le kit de développement logiciel cellulaire est également disponible et pourrait potentiellement offrir une meilleure intégration. Des packages sont également disponibles pour RHEL 5.2 et Fedora 9 (ils devraient pouvoir utiliser alien pour les extraire dans Debian / Ubuntu, mais ils ne sont pas sûrs. sur cela).

OpenMPI est une bonne idée, ils ont été en mesure de le compiler pour les lames basées sur cellules ( ici ) donc je ne pense pas que cela devrait être un problème. Vous pouvez également faire passer votre propre message en passant, car il est essentiel d’extraire de bonnes performances sur la Cellule (bien que je ne sache pas à quel point OpenMPI convient à cela, cela pourrait être génial).

Le livre de Matthew Scarpino, Programmation du processeur de cellules , est relativement récent et contient de nombreuses informations utiles. En outre, le site Web du livre dispose de nombreux exemples de code à télécharger.

Un cours MIT sur la programmation parallèle via le processeur Cell a également été mis en place. a quelques bonnes informations, bien que certaines soient obsolètes, à savoir qu’il utilise la vieille mécanique de cellules où libspe fournissait ses propres threads. Avec la version la plus récente de la bibliothèque, vous devrez vous procurer vos threads ailleurs (pthreads, boost, etc.) pour pouvoir exécuter des programmes parallèles.

En ce qui concerne l'OS et le compilateur, j'utilise Yellow Dog Linux 6.1. YDL a plutôt bien fonctionné jusqu'à présent, bien mieux que Fedora 9 de toute façon, bien que cela soit probablement dû au fait que YDL est fourni avec un gestionnaire de fenêtres ultra-léger, contrairement à Fedora 9. J'ai eu quelques problèmes avec la mise en réseau, mais ceux-ci sont probablement le produit de l'environnement réseau légèrement bizarre dans lequel le système est configuré.

Une fois que j'avais créé YDL, j’ai installé les paquets fedora de cellule sdk au-dessus de (cela demande un peu de travail, car le script d’installation cellsdk reconnaît faussement que YDL est RHEL, et non Fedora). YDL a la plupart du SDK disponible dans l’un de leurs paquets, mais par défaut, une grande partie n’est pas installée, à part les compilateurs (bien sûr, je n’avais pas compris cela avant d’avoir déjà piraté le programme d’installation d’IBM bonne chose). J'utilise simplement les compilateurs IBM de base (pas le matériel XL).

Il existe également une tonne d'informations dispersées sur le site IBM , mais il peut être un peu difficile à comprendre.

Soyez attentif lorsque vous exécutez du code sur les SPE avec leur conception spéciale - la taille de pile par défaut varie considérablement d'un compilateur à l'autre et peut entraîner toutes sortes de problèmes lorsque vous débordez. Il est généralement recommandé de déclarer globalement la plupart des données dans le code SPE et d'éviter la pile, à l'exception de très petites allocations de variables.

Comme il n'y a pas de cache (ou ... c'est tout le cache L2, dans un sens), il n'y a pas de réelle pénalité en termes de performances, et vous ne rencontrerez jamais de problèmes comme essayer de transférer des données DMA vers ou depuis une adresse de mémoire. qui n'est plus valide, etc.

Le compilateur IBM SPE est généralement considéré comme le meilleur, autant que je sache, même si je ne l'ai jamais utilisé personnellement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top