2 points par GN⁺ 2024-06-14 | 1 commentaires | Partager sur WhatsApp
  • La CEO d’AMD Lisa Su a participé, à l’époque d’IBM, au développement du processeur Cell pour la PS3, avant de poursuivre une carrière liée au matériel des PlayStation 4 et 5 chez AMD
  • En 2001, alors qu’elle était Emerging Products Director chez IBM, Su explique qu’IBM, Sony et Toshiba ont imaginé à partir d’une feuille blanche « le processeur dont on aurait besoin cinq ans plus tard », avec une focalisation extrême sur la parallélisation
  • Cell était une conception ambitieuse pour l’époque, mais la PS3 était difficile à programmer, et les performances des jeux multiplateformes étaient parfois en deçà des attentes
  • Après que les développeurs first-party de Sony ont appris à maîtriser le matériel, les résultats visuels des exclusivités ont fortement progressé, mais le passage à la HD et la pression du multiplateforme ont accru le poids de la différenciation de Cell
  • À partir de la 8e génération de consoles, PlayStation et Xbox sont passées à des CPU·GPU x86 basés sur AMD, faisant d’AMD un fournisseur matériel central pour les deux grandes plateformes de consoles

Le lien entre Lisa Su et le matériel PlayStation

  • Peu après le Computex 2024, la CEO d’AMD Lisa Su a évoqué, dans une interview avec Stratechery, la résolution de problèmes difficiles tout au long de sa carrière, en mentionnant son passage chez IBM et son expérience liée à PlayStation
  • Su a cité « PlayStation 3, 4, 5 » comme exemples, expliquant avoir travaillé longtemps sur PlayStation au fil de plusieurs entreprises
  • Le processeur Cell de la PS3, basé sur IBM PowerPC, est connu pour son architecture difficile à programmer, mais le fait que Su y ait été impliquée n’était pas largement connu avant cette interview

En 2001, la conception de Cell par IBM, Sony et Toshiba

  • En 2001, Su, alors Emerging Products Director chez IBM, décrit le moment où IBM, Sony et Toshiba imaginaient l’architecture d’un processeur de nouvelle génération
  • Selon Su, l’équipe « est partie d’une feuille blanche pour imaginer quel type de processeur serait nécessaire cinq ans plus tard »
  • Les trois entreprises ont décidé de créer un CPU fortement axé sur la parallélisation
  • Dans le contexte de l’époque, cette approche relevait d’un choix assez en avance
    • Le SMT est apparu en 2002
    • Les premiers CPU multicœurs grand public d’AMD et d’Intel ne sont arrivés qu’en 2005
    • IBM a lancé en 2001 son premier multicœur pour stations de travail et serveurs, et planifiait la même année le processeur Cell de la PS3

La difficulté de développement sur PS3 et les résultats en fin de génération

  • La PS3 a été considérée comme l’une des consoles Sony les moins réussies, distancée selon certaines analyses par la Wii de Nintendo, moins chère et orientée casual, ainsi que par la Xbox 360 de Microsoft, moins puissante mais plus facile à maîtriser
  • En raison de la complexité de son architecture, les jeux multiplateformes n’atteignaient pas toujours les performances attendues sur PS3
  • À mesure que les développeurs, en particulier les studios first-party de Sony, apprenaient à maîtriser le matériel, les exclusivités Sony ont été vues, en fin de génération, comme des jeux console visuellement remarquables
    • Des titres comme Uncharted 3 sont cités en exemple
  • Su estime que Cell était très ambitieux pour l’époque et que sa manière d’exploiter le parallélisme se distinguait nettement
  • Elle affirme que Cell a été un succès du point de vue business, tout en ajoutant que l’évaluation historique pourrait le classer autrement

L’évolution des besoins des développeurs après le passage à la HD

  • Selon Su, l’ère des consoles a connu plusieurs phases, et le passage à la HD a fortement augmenté les coûts de création des assets
  • Les développeurs ont alors eu davantage intérêt à prendre en charge plusieurs processeurs, tandis que les moteurs de jeu émergeaient en parallèle
  • Dans ce contexte, les développeurs ont fini par vouloir que leurs jeux puissent simplement s’exécuter sur Cell, plutôt que de se différencier spécifiquement grâce à lui
  • L’architecture singulière de Cell était techniquement ambitieuse, mais elle est devenue une contrainte dans le développement multiplateforme et les workflows basés sur des moteurs

L’évolution de la position des fabricants de consoles et d’AMD

  • À l’époque de la 7e génération de consoles de salon — PlayStation 3, Xbox 360, Nintendo Wii/Wii U — les trois fabricants utilisaient tous une architecture CPU PowerPC
  • AMD fournissait alors des puces graphiques à Nintendo et Xbox
  • À partir de la 8e génération de consoles, les choix matériels ont changé
    • La PlayStation 4 et la Xbox One sont passées à une architecture CPU·GPU x86 basée sur AMD
    • La Nintendo Switch est passée à une conception de SoC basée sur Nvidia, incluant des cœurs CPU Arm
  • Su a été Product Director·Engineer chez IBM, impliquée dans la PS3, puis est devenue Senior Vice President d’AMD en 2012 et CEO d’AMD en 2014
  • AMD a fourni le matériel principal des consoles PlayStation et Xbox pendant deux générations consécutives, et devrait continuer à le faire lors de la prochaine génération

1 commentaires

 
GN⁺ 2024-06-14
Commentaires Hacker News
  • Dans un cours de programmation hétérogène, nous avions implémenté sur PS3 des choses comme un encodeur basique ressemblant à du MPEG
    C’était une expérience intéressante, mais ce dont je me souviens aujourd’hui, c’est qu’il fallait exploiter avec soin l’unité vectorielle des SPE pour obtenir de bonnes performances, et que la synchronisation entre SPE et PPE était assez pénible
    Pour chaque devoir, le professeur incluait des benchmarks afin de comparer les performances en cours, et l’écart était énorme entre les étudiants qui passaient du temps à optimiser et ceux qui se contentaient d’une implémentation de base

    • J’aurais vraiment voulu suivre ce cours
      Comme j’avais déjà suivi un cours d’OS où l’on construisait un système d’exploitation à partir de zéro, ça ressemblait à l’étape suivante
      Le cours d’OS valait 20 crédits, mais celui de programmation hétérogène seulement 10, et beaucoup disaient que la charge de travail réelle dépassait largement 10 crédits ; comme je devais aussi suivre d’autres cours et travailler sur mon mémoire, j’ai finalement dû y renoncer
      Le cours d’OS est ici : https://www.uio.no/studier/emner/matnat/ifi/IN4000/index-eng...
    • Je me demande vraiment comment ils avaient mis en place un programme ou un cours utilisant comme matériel de TP des PS3 de développement ou jailbreakées
      Je me demande aussi si c’était un cours qui traitait directement du développement de jeux/consoles
    • Le fait que la synchronisation entre SPE et PPE soit pénible relève précisément d’un domaine où le support des bibliothèques et du système d’exploitation est indispensable
      Comme l’expérience développeur est vécue directement par les développeurs, ce n’est pas si difficile à bien concevoir, et les gains sont importants quand c’est bien fait
      On voit aujourd’hui des situations similaires avec les GPU, où il faut déplacer les données, configurer les pipelines et tenir compte des particularités de tel ou tel GPU
    • Ça a vraiment l’air d’un cours passionnant
      Je me demande s’il existe encore
  • Je ne savais pas que Lisa Su avait participé à la conception de Cell, c’est assez impressionnant
    À certains égards, l’architecture Cell était très en avance sur son temps ; vue un peu différemment, la configuration PPE/SPE ressemble à des architectures actuelles comme Grace/Hopper, où un gros cœur gérant les branchements pilote des cœurs vectoriels plus petits et plus nombreux
    Mais elle était tellement différente du reste que la conception et le portage de jeux étaient un énorme casse-tête

    • Cell était une conception en avance sur son temps quand le concept a commencé à prendre forme au milieu des années 2000, et le CPU grand public le plus puissant de l’époque était le Pentium 3
      Mais lorsqu’il est arrivé sur le marché en 2005, x86_64 avait clairement pris la couronne des performances CPU, ARM dominait le domaine mobile basse consommation, et la concurrence GPU était menée par ATI et Nvidia
      Résultat, Cell est devenu un objet ambigu : coûteux, un peu bon à tout faire mais excellent nulle part, et difficile à programmer ; le nouveau marché n’avait pas besoin d’un tel produit
      Je ne pense pas que Sony, ni personne d’autre, ait prévu que les industries des CPU et GPU grand public progresseraient aussi vite à cette période ; s’ils l’avaient su, ils n’auraient sans doute pas dépensé des centaines de millions de dollars pour créer une architecture entièrement nouvelle
      Intel a commis la même erreur à l’époque avec Itanium, en essayant de réinventer l’industrie, et avec le recul c’est évident
      Le progrès technologique à cette époque était vraiment brutal
      On achetait un nouveau CPU, et deux ans plus tard les CPU 64 bits devenaient la norme ; on achetait un CPU 64 bits pour avoir l’air à la page, et peu après les CPU dual-core devenaient à la mode
  • Anecdote : Lisa Su et Jensen Huang sont de la même famille : https://www.tomshardware.com/news/jensen-huang-and-lisa-su-f...

    • Si la Chine prenait le contrôle de Taïwan, les États-Unis seraient vraiment en difficulté
      En réalité, la chaîne d’approvisionnement des puces semiconductrices est tellement dispersée qu’une guerre perturbant de façon significative le commerce international pourrait faire s’effondrer toute l’industrie
      Parmi les fournisseurs clés de la chaîne d’approvisionnement des semiconducteurs, beaucoup sont des entreprises uniques ou quasiment des oligopoles nationaux
    • Question annexe : je me demande s’il existe à Taïwan un service permettant de vérifier si la personne avec qui l’on sort est de sa famille
      Le contexte est ici : https://news.ycombinator.com/item?id=5561505
  • J’ai vraiment aimé travailler sur Cell
    Je me souviens avoir écrit mon premier code SPU à l’époque où le kit de développement PS3 était une énorme boîte en acier inoxydable
    Plus tard, sur Midnight Club, j’ai implémenté sur SPU de la physique prédictive pour optimiser les trajectoires de course, et c’était vraiment amusant
    Un point particulier était que la taille intermédiaire des bits de l’unité en virgule flottante différait de celle du PPU ; pour obtenir des résultats déterministes, il fallait donc planifier les threads de façon à ce qu’ils soient toujours affectés de manière déterministe au PPU ou au SPU
    C’était indispensable dans un jeu en réseau où la simulation devait être identique au bit près entre les joueurs

    • Pour quelqu’un qui aime les aspects système, travailler sur Cell était assez difficile mais gratifiant
      C’est loin maintenant, mais je me souviens encore de plusieurs défis
      Les SPE n’avaient pas d’accès en mémoire partagée à la RAM, donc le développeur devait gérer lui-même les transferts de données, et chaque SPE disposait de 256 Ko de RAM
      Pour l’époque, ces unités étaient très rapides et traitaient les données en un rien de temps ; on utilisait donc un double buffering de la RAM, avec environ 100 Ko pour les données et 100 Ko en même temps comme tampon de lecture du moteur DMA
      La partie la plus délicate était de faire entrer et sortir les données
      Il y avait 6 SPE disponibles, 2 étant réservés par l’OS, et pour les garder tous occupés il fallait utiliser le moteur DMA de manière presque optimale
      Les accès mémoire étaient lents : après l’émission d’un DMA, il fallait plus de 1000 cycles avant que les données commencent à arriver
      À l’époque, C++ était dominant et on utilisait divers patterns C++, mais les contraintes de taille des instructions étaient si fortes que le code destiné à tourner sur SPU était écrit à la main et ne s’intégrait pas au reste du moteur
      Au final, on se retrouvait à relier deux codebases différentes avec de la colle
      L’ingéniosité nécessaire à l’époque me manque, mais pas la complexité
      Les consoles actuelles sont en pratique des PC accompagnés d’outils de développement façon PC, ce qui rend les choses beaucoup plus simples
      Même si je me plains beaucoup de la PS3, au moins ce n’était pas la PS2
  • L’article affirme que la PS3 a été l’une des consoles les moins réussies de Sony, et qu’elle a largement perdu la bataille de sa génération face à la Nintendo Wii, peu chère et adaptée au jeu casual, ainsi qu’à la Xbox 360, moins puissante mais plus facile à exploiter.
    Mais en Europe, j’ai l’impression que la Xbox ne s’est pas vraiment imposée dans l’UE, et que la PS3 était assez largement populaire, notamment avec Call of Duty.
    La Wii était elle aussi extrêmement populaire à l’époque, mais les publics de la PS3 et de la Wii étaient différents.
    La Wii convenait mieux aux jeux casual familiaux, tandis que la PS3 visait les joueurs plus sérieux avec des titres plus hardcore comme COD, FIFA ou PES ; et pour les vrais joueurs hardcore, il y avait bien sûr le PC.

    • C’est possible, mais globalement, à l’époque, la PS3 était la perdante, et ce n’est qu’en fin de génération, après plusieurs baisses de prix et des années passées à construire un solide catalogue, qu’elle a légèrement dépassé la Xbox 360 dans le monde.
      Vu la domination écrasante de la PSX et de la PS2, ce n’était clairement pas le résultat que Sony espérait.
      Ce n’était pas aussi spectaculaire que Nintendo perdant le marché en passant de la SNES à la N64, mais il a probablement dû y avoir beaucoup de discussions similaires en interne chez Sony.
      À la génération précédente, la Xbox était une console largement distancée, en troisième position ; pour Microsoft, perdre de peu face à Sony au tout dernier moment a donc probablement été considéré comme un grand succès.
      D’autant plus après la catastrophe du RROD ; sans ce problème, Microsoft aurait très probablement dépassé Sony en ventes.
    • La PS3 est restée derrière la Xbox 360 en ventes mondiales pendant la majeure partie de sa vie, et cela a pu être décevant pour Sony après la domination de la PS2.
      Mais il est difficile de dire qu’elle s’est fait « écraser » par la Xbox 360 ; cela a pris du temps, mais elle a fini par se vendre davantage.
      La formulation de l’intervieweur me semble exagérément négative et imprécise.
      On sous-estime aussi, à mon avis, la puissance de la Xbox 360.
      Il est vrai que son CPU était sensiblement plus petit que le Cell, mais on parle d’environ 150 millions de transistors contre 250 millions pour le Cell, pas d’un écart de plusieurs fois comme certains articles le laissent entendre.
      Côté GPU, on peut même considérer que la Xbox était nettement en avance.
      La puce était de taille comparable, voire légèrement plus grande, et reposait sur une architecture de shaders unifiée, qui allait ensuite dominer les GPU.
      Grâce à cette structure plus flexible, elle pouvait aussi exécuter des tâches GPU généralistes que les SPU du Cell auraient probablement prises en charge sur PS3.
      Cela dit, ces premiers modèles de GPU généralistes étaient eux aussi difficiles à programmer, comme les SPU du Cell.
      Il est donc plus juste de dire que l’une avait ses éléments expérimentaux sur le die CPU/Cell et l’autre sur le die GPU, plutôt que de présenter l’une comme simple et facile et l’autre comme follement complexe et avancée.
      Les techniques utilisées dans les GPU ont continué à évoluer et ont remplacé une grande partie de l’approche de type Cell.
    • Au Royaume-Uni, la Xbox 360 était clairement beaucoup plus populaire.
    • Si vous étiez là à l’époque, impossible de ne pas connaître le mème nogaems.
  • Ce qui est le plus regrettable avec la PS3, c’est que, faute de compatibilité ascendante, d’excellents jeux comme MGS4 ou Demon’s Souls se sont retrouvés enfermés sur cette plateforme.
    À l’inverse, côté Xbox, il existe 633 jeux Xbox 360 auxquels on peut jouer en insérant simplement le disque dans une nouvelle Xbox.
    Cela tient en partie à des différences d’approche commerciale entre les entreprises, mais d’après ce que j’ai lu, l’architecture particulière et chaotique de la PS3 y est aussi pour beaucoup.
    https://en.m.wikipedia.org/wiki/List_of_backward-compatible_...

    • Malgré son architecture exotique, la PS3 s’émule assez bien sur des machines « ordinaires ».
      Grâce à l’excellent émulateur RPCS3, j’ai été surpris de pouvoir réellement jouer à des jeux PS3 sur un vieux laptop qui n’est même pas haut de gamme.
      La PS5 étant bien plus puissante que mon laptop, SONY pourrait théoriquement proposer ces jeux PS3 via émulation.
    • À cause de la PlayStation 3, j’ai continué à garder un lecteur DVD/Blu-ray séparé et je ne suis pas entré dans l’écosystème PlayStation.
      Quelques jeux PS3 m’intéressaient, et s’ils avaient fonctionné sur PS4, j’aurais acheté une PS4, et probablement aussi une PS5.
    • Xbox a annulé le développement de l’émulateur.
  • Les puces graphiques de la Xbox 360 et de la Wii ont été développées par ATI.
    AMD a bien racheté ATI quelques mois avant la sortie de la Wii, mais dire qu’AMD a fabriqué cette puce me semble un peu révisionniste.

    • Même dire qu’ATI les a développées est un peu plus compliqué.
      En réalité, la conception venait surtout d’ArtX, composée d’anciens de SGI qui avaient aussi travaillé sur la N64 ; ATI a ensuite racheté ArtX.
  • Il existe un excellent billet de blog sur l’architecture de la PS3 : https://www.copetti.org/writings/consoles/playstation-3/
    Il donne une bonne vue d’ensemble du processeur Cell, avec des ressources liées si l’on veut aller plus loin.

    • Ce site est vraiment excellent.
      Il regorge de détails sur les consoles, et la combinaison de texte, d’images et même de modèles 3D est très agréable à parcourir.
  • Je comprends que l’article commence par poser la question de l’expression « tristement célèbre », mais cela renvoie à un problème plus profond qui me dérange depuis quelques années
    Les consoles de jeux d’aujourd’hui sont en fait des PC optimisés
    Elles n’ont pratiquement plus rien à voir avec les consoles de 1re, 2e et 3e génération, qui avaient un matériel unique et des exclusivités séduisantes
    Le Cell était peut-être difficile à programmer correctement, mais le simple fait de s’inquiéter de savoir si les développeurs peuvent se montrer paresseux dans les portages en dit long, selon moi, sur l’état actuel des consoles
    Comme si les consommateurs idiots allaient acheter n’importe quoi de toute façon
    Grâce au matériel relativement singulier des premières générations, les jeux devaient réellement être optimisés et adaptés au hardware
    Il n’y avait pas de portages paresseux, et les exclusivités devaient être bonnes, ou au moins montrer ce dont la console était capable
    Alors, le Cell est-il tristement célèbre ? C’était aussi un composant qui a fait parler de lui parce qu’on pouvait le faire fonctionner en cluster
    Mon interprétation est différente
    Le Cell est un vestige d’une époque où les consoles valaient encore qu’on y consacre du temps
    [1]https://en.wikipedia.org/wiki/PlayStation_3_cluster

    • La réponse est dans l’article
      Ce n’est pas une question de paresse dans les portages, mais de budget des assets de jeu, devenu tellement énorme que produire un jeu coûte excessivement cher
      Pour une entreprise normale qui veut rentabiliser son investissement, il faut en pratique sortir le jeu sur plusieurs systèmes
      Plus les graphismes s’améliorent, plus le problème s’aggrave
      Modèles, textures, niveau de détail : il faut davantage de tout, et tout cela coûte de l’argent
      À moins d’avoir un énorme succès comme Zelda ou Last of Us, une seule machine peut ne pas suffire à amortir les coûts
      Et même si c’est possible, il n’y a aucune raison de ne pas le sortir aussi sur d’autres machines pour gagner davantage
      Ce n’est pas pour rien que les exclusivités viennent presque uniquement de studios first-party
    • Le hardware exotique me manque, et la N64 reste personnellement ma console préférée de tous les temps, mais au final ce que les gens veulent, ce sont d’excellents jeux ; le matériel n’est qu’un moyen d’y parvenir
      Le plus gros problème des consoles de génération actuelle, surtout la PS5 et la Xbox, me semble être l’homogénéisation et la stagnation des périphériques d’entrée
      Historiquement, les consoles regardaient vers l’avenir en permettant de nouvelles façons de jouer grâce à leurs manettes
      Si l’on exclut les accessoires optionnels et qu’on ne regarde que les capacités fournies de base, la N64 proposait le contrôle analogique, 4 ports manette et un port d’extension sur la manette ; la PS1, le double contrôle analogique ; la PS2, des boutons sensibles à la pression et des vibrations intégrées ; la Wii, le motion control ; la Wii U, l’écran du GamePad ; la PS4, le pavé tactile ; la Switch, des manettes détachables et partageables ; et la XB1, Kinect
      Cela ne veut pas dire que tous les nouveaux modes de saisie ont réussi, mais jusqu’à peu près l’époque PS3/360, les consoles apportaient quelque chose de nouveau dans la manière de vivre les jeux
      Aujourd’hui, cela s’est presque arrêté, et Nintendo est quasiment le seul à introduire régulièrement de nouvelles façons de jouer qui ne se reproduisent pas facilement sur PC
      De nos jours, si l’on branche une manette PS5/Xbox à un PC, on obtient une expérience égale ou meilleure que celle d’une console dédiée ; dès lors, les raisons d’acheter une console diminuent
    • Je ne sais pas comment tu comptes les générations, mais la 2e génération correspondait à l’Atari 2600 et aux machines contemporaines, et la 3e à la NES et à la Master System
      Les consoles ont conservé un matériel distinctif jusqu’à la 7e génération, celle de la PS3 et de la Xbox 360
    • Sa mauvaise réputation vient, à mon avis, de la combinaison entre le marketing exagéré de Sony autour de l’architecture, façon « superordinateur sur une puce », et la difficulté réelle à programmer dessus
      C’est aussi similaire au battage autour de l’Emotion Engine de la PS2
      Le gros problème était que les SPE n’avaient aucun moyen d’accéder à la mémoire principale, si bien qu’il fallait copier les données de la RAM vers la mémoire locale de chaque SPE
    • Traiter les développeurs de paresseux est le signe qu’on ne comprend absolument rien à la gestion de projet
  • Comme il s’agit d’un article de commentaire sur l’interview, lire l’interview originale permettra de l’interpréter directement et sans doute mieux
    Il y a davantage de détails que j’ai trouvés intéressants dans l’interview originale
    https://stratechery.com/2024/an-interview-with-amd-ceo-lisa-...