Question

Dans les dernières fois, j'ai entendu beaucoup de gens affirmant que le processeur cellulaire est mort, principalement pour les raisons suivantes:

  • Manque de support dans la nouvelle PlayStation 3, car l'utilisateur ne peut pas installer Linux
  • La puissance de traitement croissante des GPU et ses coûts qui coulent
  • L'existence d'une approche de programmation unifiée (OpenCL) pour différents GPU et non pour le CBE (eh bien aujourd'hui a été annoncée pour la cellule!)
  • Carency of Real World Exemples d'utilisation de la cellule (en dehors des cercles académiques)
  • Sentiment mondial de non-succès

Qu'est-ce que tu penses? Si vous avez commencé il y a deux ou trois ans pour programmer la cellule, continuerez-vous à ce sujet ou envisagez-vous de passer aux GPU? Une nouvelle version de la cellule arrive-t-elle?

Merci

Était-ce utile?

La solution

Je dirais que les raisons du manque de popularité pour le développement des cellules sont plus proches de:

  • Le manque de succès dans la PS3 (en raison de nombreuses erreurs de la part de Sony et de la forte concurrence de la Xbox 360)
  • Rendement à faible fabrication, coût élevé (en partie en raison du faible rendement) et manque de systèmes matériels abordables autres que la PS3
  • Difficulté de développement (la cellule est un processeur inhabituel pour la conception et l'outillage fait défaut)
  • Échec à réaliser des différences de performances significatives par rapport au matériel de base basé sur X86 existant. Même le processeur d'architecture Triple Power de plusieurs années du Xbox 360, s'est révélé compétitif, par rapport à un processeur Core2 Quad moderne, les avantages de la cellule ne sont tout simplement pas évidents.
  • Augmentation de la concurrence des plateformes d'informatique générale GPU telles que CUDA

Autres conseils

Il est plus facile d'écrire des programmes parallèles pour 1000s de threads que pour 10s de threads. Les GPU ont des milliers de threads, avec la planification des threads matériels et l'équilibrage de charge. Bien que les GPU actuels soient principalement adaptés aux données de petits grains parallèles, ils ont des outils qui font de la réalisation de tels programmes triviaux. La cellule n'a que quelques-uns, l'ordre de 10s, de processeurs dans les configurations de consommation. (Les dérivés cellulaires utilisés dans les superordinateurs franchissent la ligne et ont 100s de processeurs.)

IMHO L'un des plus gros problèmes avec les cellules était le manque de cache d'instructions. (Je l'ai fait valoir bruyamment avec les architectes cellulaires sur un avion de la micro-conférence Barcelone en 2005. Bien qu'ils soient en désaccord avec moi, j'ai entendu la même chose des utilisateurs d'ordinateurs de BigSuper.) Les gens peuvent faire face à l'installation dans des souvenirs de données de taille fixe - Les GPU ont le même problème, bien qu'ils se plaignent. Mais l'ajustement du code dans la mémoire d'instructions à taille fixe est une douleur. Ajoutez une instruction IF et les performances peuvent tomber d'une falaise car vous devez commencer à utiliser des superpositions. Il est beaucoup plus facile de contrôler vos structures de données que d'éviter d'avoir à ajouter du code pour corriger les bogues en fin de cycle de développement.

Les GPU avaient à l'origine les mêmes problèmes que les cellules - pas de caches, ni moi ni D.

Mais les GPU ont fait plus de threads, le parallélisme des données tellement mieux que la cellule, qu'ils ont mangé ce marché. Ne laissant la cellule que ses clients en console et les codes plus compliqués que les GPU, mais moins compliqués que le code CPU. Serré au milieu.

Et, en attendant, les GPU ajoutent i $ et d $. Ils deviennent donc plus faciles à programmer.

Pourquoi la cellule est-elle morte?

1) Le SDK était horrible. J'ai vu des développeurs très brillants pour se gratter les yeux versant des listes de diffusion IBM essayant de comprendre ce problème ou cela avec le SDK cellulaire.

2) Le bus entre les unités de calcul commençait à montrer des problèmes de mise à l'échelle et n'aurait jamais atteint 32 cœurs.

3) OpenCL était environ 3 à 4 ans trop tard pour être utile.

Si vous avez commencé il y a deux ou trois ans pour programmer la cellule, continuerez-vous à ce sujet ou envisagez-vous de passer aux GPU?

J'aurais pensé que 90% des personnes qui programment pour le processeur cellulaire ne sont pas dans une position où ils peuvent décider arbitrairement d'arrêter la programmation pour cela. Visez-vous cette question à une communauté de développement très spécifique?

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