2 pontos por GN⁺ 2024-06-14 | 1 comentários | Compartilhar no WhatsApp
  • A CEO da AMD, Lisa Su, participou do desenvolvimento do processador Cell do PS3 na época em que estava na IBM, e depois seguiu na AMD com uma trajetória ligada também ao hardware do PlayStation 4 e 5
  • Su, que em 2001 era directora de produtos emergentes na IBM, disse que IBM, Sony e Toshiba imaginaram do zero “o processador que seria necessário dali a 5 anos”, com foco extremo em paralelização
  • O Cell era um projeto ambicioso para a época, mas o PS3 era difícil de programar, e por isso o desempenho de jogos multiplataforma nem sempre correspondia às expectativas
  • Depois que os desenvolvedores first-party da Sony dominaram o hardware, os resultados visuais dos exclusivos cresceram, mas a transição para HD e a pressão do multiplataforma aumentaram o peso de diferenciar o Cell
  • A partir da 8ª geração de consoles, PlayStation e Xbox migraram para CPUs e GPUs x86 baseadas em AMD, consolidando a AMD como fornecedora do hardware central das duas grandes plataformas de console

A ligação entre Lisa Su e o hardware do PlayStation

  • Logo após a Computex 2024, a CEO da AMD, Lisa Su, falou sobre resolver problemas difíceis ao longo da carreira em uma entrevista ao Stratechery e mencionou sua época na IBM e experiências ligadas ao PlayStation
  • Su disse que trabalhou com “PlayStation 3, 4 e 5” e que passou muito tempo envolvida com o PlayStation em diferentes empresas
  • O processador Cell do PS3, baseado em IBM PowerPC, era conhecido por sua arquitetura difícil de programar, mas o envolvimento de Su com ele não era amplamente conhecido até esta entrevista

A concepção do Cell por IBM, Sony e Toshiba em 2001

  • Su, que em 2001 era directora de produtos emergentes na IBM, explicou o momento em que IBM, Sony e Toshiba estavam concebendo a arquitetura de processador da próxima geração
  • Segundo Su, a equipe “começou do zero e imaginou que tipo de processador seria necessário dali a 5 anos”
  • As três empresas decidiram criar uma CPU com forte foco em paralelização
  • No contexto da época, essa abordagem foi uma escolha bastante adiantada
    • SMT surgiu em 2002
    • As primeiras CPUs multicore para consumidores da AMD e da Intel só chegaram em 2005
    • A IBM lançou seu primeiro multicore para workstations e servidores em 2001, e no mesmo ano já estava planejando o processador Cell do PS3

A dificuldade de desenvolvimento no PS3 e os resultados no fim da geração

  • O PS3 é visto como um dos consoles menos bem-sucedidos da Sony, tendo ficado atrás do Wii, da Nintendo, com foco em baixo custo e público casual, e do Xbox 360, da Microsoft, menos poderoso, mas mais fácil de usar
  • Por causa da complexidade da arquitetura, jogos multiplataforma no PS3 nem sempre entregavam o desempenho esperado
  • À medida que os desenvolvedores, especialmente os estúdios first-party da Sony, dominaram o hardware, os exclusivos da Sony passaram a ser vistos, no fim da geração, como alguns dos jogos de console visualmente mais impressionantes
    • Um exemplo citado é Uncharted 3
  • Su avaliou que o Cell era muito ambicioso para a época e se destacava pela forma como buscava extrair paralelismo
  • Ela disse que, do ponto de vista de negócios, o Cell foi bem-sucedido, embora tenha acrescentado que uma avaliação histórica possa colocá-lo em outra posição

Como as exigências dos desenvolvedores mudaram após a transição para HD

  • Segundo Su, a era dos consoles passou por várias fases, e após a transição para HD os custos de produção de assets cresceram bastante
  • Os desenvolvedores passaram a ter um incentivo maior para dar suporte a vários processadores, e os engines de jogo também surgiram junto com essa mudança
  • Nesse contexto, os desenvolvedores passaram a querer que o jogo simplesmente rodasse no Cell, em vez de diferenciá-lo separadamente
  • A estrutura única do Cell era tecnicamente ambiciosa, mas acabou se tornando um peso no fluxo de desenvolvimento multiplataforma e na produção baseada em engines

A mudança de posição entre as fabricantes de consoles e a AMD

  • Na 7ª geração de consoles de mesa — PlayStation 3, Xbox 360 e o período de Nintendo Wii/Wii U — as três fabricantes usavam arquitetura de CPU PowerPC
  • Na época, a AMD fornecia chips gráficos para Nintendo e Xbox
  • A partir da 8ª geração de consoles, as escolhas de hardware mudaram
    • PlayStation 4 e Xbox One migraram para uma arquitetura de CPU e GPU x86 baseada em AMD
    • O Nintendo Switch mudou para um design SoC baseado em Nvidia com núcleos de CPU Arm
  • Su atuou como directora de produto e engenheira envolvida com o PS3 na IBM, tornou-se Senior Vice President da AMD em 2012 e CEO da AMD em 2014
  • A AMD forneceu o principal hardware de console de PlayStation e Xbox por duas gerações consecutivas, e a expectativa é que isso continue na próxima geração

1 comentários

 
GN⁺ 2024-06-14
Comentários do Hacker News
  • Em uma disciplina de programação heterogênea, implementei coisas como um encoder básico parecido com MPEG no PS3
    Foi uma experiência interessante, mas o que lembro hoje é que, para obter um desempenho decente, era preciso usar com cuidado a unidade vetorial do SPE, e que a sincronização entre SPE e PPE era bem incômoda
    Em cada trabalho, o professor incluía benchmarks para comparar o desempenho em sala, e a diferença entre os alunos que investiam tempo em otimização e os que faziam apenas a implementação básica era enorme

    • Eu queria muito ter feito essa disciplina
      Como eu já tinha feito uma disciplina de SO em que se criava um sistema operacional do zero, ela parecia o próximo passo
      A disciplina de SO valia 20 créditos, mas a de programação heterogênea valia só 10; muita gente dizia que a carga real era bem maior do que 10 créditos, então, como eu precisava conciliar outras disciplinas e a dissertação, acabei tendo que desistir
      A disciplina de SO está aqui: https://www.uio.no/studier/emner/matnat/ifi/IN4000/index-eng...
    • Fico muito curioso para saber como foi montado um programa ou disciplina que usava PS3s de desenvolvimento ou desbloqueados como material prático
      Também queria saber se era uma disciplina que tratava diretamente de desenvolvimento de jogos/consoles
    • A parte sobre a sincronização entre SPE e PPE ser incômoda é uma área em que suporte de bibliotecas e do sistema operacional é essencial
      A experiência do desenvolvedor é algo que os próprios desenvolvedores vivenciam, então não deveria ser tão difícil fazê-la direito, e o ganho quando isso é bem feito é grande
      Vejo uma situação parecida nas GPUs de hoje, em que ainda é preciso mover dados, configurar pipelines e se preocupar com as características de uma GPU específica
    • Parece uma disciplina muito divertida
      Fico curioso se ainda é oferecida
  • Eu não sabia que Lisa Su tinha participado do projeto do Cell, e isso é bem legal
    Em certo sentido, a arquitetura Cell estava bem à frente de seu tempo; vista de outro jeito, a configuração PPE/SPE lembra a estrutura de hoje do Grace/Hopper, em que um núcleo grande de controle de desvios comanda núcleos vetoriais menores e mais numerosos
    Só que ela era tão diferente de todo o resto que projetar e portar jogos era uma dor de cabeça enorme

    • O Cell era um projeto à frente de seu tempo quando começou a ser concebido em meados de 2000, e a CPU de consumo mais poderosa da época era o Pentium 3
      Mas, quando chegou ao mercado em 2005, o x86_64 já tinha assumido de forma clara o trono de desempenho em CPUs, a ARM dominava o segmento móvel de baixo consumo, e a disputa em GPUs era liderada por ATI e Nvidia
      Com isso, o Cell acabou virando um produto estranho: caro, fazia um pouco de tudo, mas não era o melhor em nada, e ainda era difícil de programar; o novo mercado não precisava de algo assim
      Acho que nem a Sony nem ninguém previu que as indústrias de CPUs e GPUs de consumo avançariam tão rápido naquele período; se soubessem, provavelmente não teriam gasto centenas de milhões de dólares criando uma arquitetura totalmente nova
      A Intel cometeu o mesmo erro na época ao tentar reinventar a indústria com o Itanium, e em retrospecto isso fica claro
      O avanço tecnológico naquela época era realmente brutal
      Você comprava uma CPU nova e, dois anos depois, CPUs de 64 bits viravam tendência; comprava uma CPU de 64 bits para parecer moderno e, logo em seguida, CPUs dual-core entravam na moda
  • Curiosidade: Lisa Su e Jensen Huang são parentes: https://www.tomshardware.com/news/jensen-huang-and-lisa-su-f...

    • Se a China tomar Taiwan, os EUA ficarão em uma situação realmente difícil
      Na prática, a cadeia de suprimentos de chips semicondutores é tão dispersa que, em uma guerra que atrapalhe de forma significativa o comércio internacional, todo o setor poderia entrar em colapso
      Entre os fornecedores essenciais da cadeia de semicondutores, há muitos casos de empresa única ou de algo próximo a um oligopólio em um único país
    • Pergunta paralela: fico curioso se em Taiwan também existe algum serviço para verificar se a pessoa com quem você está saindo é parente
      O contexto está aqui: https://news.ycombinator.com/item?id=5561505
  • Eu gostava muito de trabalhar com o Cell
    Lembro de quando escrevi meu primeiro código para SPU, na época em que o kit de desenvolvimento do PS3 era uma enorme caixa de aço inoxidável
    Mais tarde, em Midnight Club, implementei nas SPUs a física preditiva para otimização das linhas de corrida, e foi muito divertido
    Uma peculiaridade era que o tamanho intermediário dos bits da unidade de ponto flutuante era diferente do da PPU; então, para obter resultados determinísticos, era preciso escalonar as threads de modo que elas fossem sempre colocadas deterministicamente na PPU ou na SPU
    Isso era indispensável em jogos em rede nos quais a simulação precisava ser idêntica bit a bit entre os jogadores

    • Para quem gosta da parte de sistemas, trabalhar com o Cell era bem difícil, mas recompensador
      Faz muito tempo, mas ainda me lembro de vários desafios
      As SPEs não tinham acesso a memória compartilhada na RAM, então o desenvolvedor precisava resolver a transferência de dados manualmente, e cada SPE tinha 256 KB de RAM
      Para a época, essas unidades eram muito rápidas e processavam os dados num instante; por isso, usávamos double buffering na RAM, com cerca de 100 KB para dados e outros 100 KB simultaneamente como buffer de leitura do motor de DMA
      A parte mais complicada era colocar e retirar os dados
      Havia 6 SPEs disponíveis, e 2 eram reservadas pelo SO; para manter todas ocupadas, era preciso usar o motor de DMA de forma quase ideal
      O acesso à memória era lento: depois de emitir um DMA, levava mais de 1000 ciclos até os dados começarem a chegar
      Na época, C++ era dominante e vários padrões de C++ eram usados, mas as restrições de tamanho das instruções eram severas demais; por isso, o código que rodaria na SPU era escrito manualmente e não se encaixava com o restante da engine
      No fim, virou uma espécie de colagem de duas bases de código diferentes unidas por cola
      Sinto falta da esperteza que era necessária naquela época, mas não da complexidade
      Os consoles de hoje são essencialmente PCs com ferramentas de desenvolvimento no estilo PC, então tudo ficou muito mais simples
      Ainda assim, embora eu reclame bastante do PS3, pelo menos ele não era o PS2
  • O artigo diz que o PS3 foi um dos consoles menos bem-sucedidos da Sony e que perdeu feio a disputa daquela geração para o Nintendo Wii, mais barato e amigável ao público casual, e para o Xbox 360, menos potente, mas mais fácil de programar
    Mas na Europa fica a impressão de que o Xbox não se firmou muito na UE e que o PS3 era bastante popular, especialmente junto com Call of Duty
    O Wii também era imensamente popular na época, mas os públicos compradores do PS3 e do Wii eram diferentes
    O Wii era mais adequado para jogos casuais em família, enquanto o PS3 era para gamers mais sérios que jogavam títulos mais hardcore como COD, FIFA e PES; para os gamers realmente hardcore, claro, havia o PC

    • Pode até ser, mas, no geral, na época o PS3 foi o perdedor e só passou por pouco o Xbox 360 no mundo todo perto do fim daquela geração, depois de vários cortes de preço e anos construindo um catálogo forte
      Considerando o domínio esmagador do PSX e do PS2, certamente não foi o resultado que a Sony esperava
      Não foi tão dramático quanto a Nintendo perdendo mercado na transição do SNES para o N64, mas é provável que tenha havido muitas discussões parecidas dentro da Sony
      Na geração anterior, o Xbox era um console em terceiro lugar, muito atrás dos outros, então perder por pouco para a Sony no último instante provavelmente foi visto como um grande sucesso pela Microsoft
      Ainda mais depois do desastre do RROD; sem esse problema, é bem provável que a Microsoft tivesse superado as vendas da Sony
    • O PS3 ficou atrás do Xbox 360 nas vendas mundiais durante a maior parte de sua vida útil, e pode ter sido decepcionante para a Sony depois do domínio do PS2
      Mas é difícil dizer que ele “perdeu de lavada” para o Xbox 360; demorou, mas acabou vendendo mais
      Acho que a formulação do entrevistador foi forte e imprecisa
      Além disso, parece que também se subestima o quanto o Xbox 360 era poderoso
      É verdade que a CPU era bem menor que o Cell, mas eram cerca de 150 milhões de transistores contra algo como 250 milhões do Cell, não uma diferença de várias vezes como alguns artigos sugerem
      A GPU, por outro lado, pode ser considerada significativamente mais avançada no Xbox
      Ela tinha tamanho semelhante ou um pouco maior e usava uma arquitetura de shaders unificados, que depois passaria a dominar as GPUs
      Graças à estrutura mais flexível, também era possível fazer trabalhos de GPU de propósito geral que, no PS3, provavelmente seriam tratados pelos SPUs do Cell
      Só que esses modelos iniciais de GPU de propósito geral também eram difíceis de programar, assim como os SPUs do Cell
      Portanto, em vez de dizer que um era simples e fácil e o outro absurdamente complexo e avançado, faz mais sentido ver que um tinha elementos experimentais no die da CPU/Cell, enquanto o outro os tinha no die da GPU
      As técnicas usadas nas GPUs continuaram evoluindo e substituíram boa parte das tecnologias no estilo do Cell
    • No Reino Unido, o Xbox 360 era claramente muito mais popular
    • Se você viveu aquela época, não tinha como não conhecer o meme nogaems
  • O aspecto mais lamentável do PS3 é que, por causa da falta de compatibilidade futura, ótimos jogos como MGS4 e Demon’s Souls ficaram presos à plataforma
    Já no lado do Xbox, há 633 jogos de Xbox 360 que podem ser jogados simplesmente colocando o disco em um Xbox novo
    Parte disso deve ser diferença de abordagem empresarial, mas, pelo que li, a arquitetura peculiar e confusa do PS3 também pesa bastante
    https://en.m.wikipedia.org/wiki/List_of_backward-compatible_...

    • Apesar da arquitetura exótica, o PS3 é emulado muito bem até em máquinas “comuns”
      Graças ao excelente emulador RPCS3, fiquei surpreso por conseguir jogar jogos de PS3 de verdade em um notebook antigo que nem era topo de linha
      O PS5 é muito mais potente que o meu notebook, então, em tese, a SONY poderia oferecer esses jogos de PS3 por emulação
    • Por causa do PlayStation 3, continuei tendo um aparelho de DVD/Blu-ray separado e não entrei no ecossistema PlayStation
      Havia alguns jogos de PS3 que me interessavam e, se eles rodassem no PS4, eu teria comprado um PS4 e provavelmente também teria comprado um PS5
    • A Xbox cancelou o desenvolvimento do emulador
  • Os chips gráficos do Xbox 360 e do Wii foram desenvolvidos pela ATI
    A AMD comprou a ATI alguns meses antes do lançamento do Wii, mas dizer que a AMD fez esse chip soa um pouco revisionista

    • Até dizer que a ATI desenvolveu é um pouco complicado
      Na prática, o projeto foi feito principalmente pela ArtX, formada por ex-funcionários da SGI que também haviam trabalhado no N64, e depois a ATI comprou a ArtX
  • Há um ótimo post de blog sobre a arquitetura do PS3: https://www.copetti.org/writings/consoles/playstation-3/
    Ele oferece uma boa visão geral do processador Cell e também traz materiais vinculados para quem quiser se aprofundar

    • Esse site é realmente excelente
      É cheio de detalhes sobre consoles, e a composição que mistura texto, imagens e até modelos 3D é muito agradável de ver
  • Entendo que o artigo comece questionando a expressão “infame”, mas isso leva a um problema mais profundo que vem me incomodando nos últimos anos
    Os consoles de jogos de hoje são, na prática, PCs otimizados
    São praticamente nada parecidos com os consoles de 1ª, 2ª e 3ª geração, que tinham hardware único e exclusivos atraentes
    O Cell pode ter sido difícil de programar corretamente, mas o simples fato de haver preocupação com desenvolvedores poderem ser preguiçosos em ports já mostra bem o estado atual dos consoles, na minha opinião
    É como se consumidores idiotas fossem comprar qualquer coisa de qualquer jeito
    Graças ao hardware relativamente único das primeiras gerações, os jogos de fato precisavam ser otimizados e ajustados ao hardware
    Não havia ports preguiçosos, e os exclusivos tinham de ser bons, ou pelo menos mostrar do que o console era capaz
    Então é por isso que o Cell é infame? O Cell foi algo que até gerou notícias por poder ser usado em clusters
    Minha interpretação é diferente
    O Cell é um resquício de uma época em que consoles ainda valiam o tempo investido
    [1]https://en.wikipedia.org/wiki/PlayStation_3_cluster

    • A resposta está no artigo
      Não é uma questão de preguiça em ports, mas de o orçamento de assets de jogos ter ficado tão grande que o custo de produzir jogos se tornou alto demais
      Uma empresa normal, se quiser recuperar o investimento, na prática precisa lançar em vários sistemas
      A cada melhoria nos gráficos, o problema piora
      Modelos, texturas, detalhes etc. ficam mais numerosos, e tudo isso custa dinheiro
      Se não for um megassucesso como Zelda ou Last of Us, talvez não dê para recuperar os custos em um único aparelho
      E, mesmo que dê, não há motivo para não lançar também em outros aparelhos e ganhar mais
      Há uma razão para os exclusivos virem quase só de estúdios first-party
    • Sinto falta de hardware exótico, e o N64 é pessoalmente meu favorito de todos os tempos, mas no fim o que as pessoas querem jogar são ótimos jogos, e o hardware é apenas um meio para esse fim
      Acho que o problema maior dos consoles da geração atual, especialmente PS5 e Xbox, é a homogeneização e estagnação dos dispositivos de entrada
      Historicamente, os consoles olhavam para a frente ao viabilizar novas formas de jogar por meio dos controles
      Deixando acessórios opcionais de lado e olhando só para capacidades incluídas de fábrica, o N64 trouxe controle analógico, 4 portas de controle e porta de expansão no controle; o PS1 trouxe controles analógicos duplos; o PS2 trouxe botões sensíveis à pressão e vibração integrada; o Wii trouxe controles por movimento; o Wii U trouxe a tela no gamepad; o PS4 trouxe touchpad; o Switch trouxe controles destacáveis e compartilháveis; e o XB1 trouxe o Kinect
      Isso não quer dizer que todas as novas formas de entrada tenham dado certo, mas até por volta do PS3/360 os consoles ofereciam algo novo na forma de experimentar jogos
      Agora isso praticamente parou, e a Nintendo é a única que continua introduzindo de forma consistente novas maneiras de jogar que não são fáceis de reproduzir no PC
      Hoje, se você conecta um controle de PS5/Xbox ao PC, obtém uma experiência igual ou melhor do que comprar um console dedicado; com isso, há menos motivo para comprar um console
    • Não sei como você está contando as gerações, mas a 2ª geração foi a do Atari 2600 e seus contemporâneos, e a 3ª foi a do NES e Master System
      Os consoles tiveram hardware único até a 7ª geração, com PS3 e Xbox 360
    • Acho que a infâmia veio da combinação entre o marketing exagerado da Sony em torno da arquitetura, no estilo “supercomputador em um chip”, e a dificuldade real de programação
      É parecido com o exagero em torno do Emotion Engine do PS2
      O grande problema era que as SPEs não tinham como acessar a memória principal, então era preciso copiar os dados da RAM para a memória local de cada SPE
    • Chamar desenvolvedores de preguiçosos é sinal de não entender nada de gerenciamento de projetos
  • Este é um artigo de comentário sobre a entrevista, então, olhando a entrevista original, deve dar para interpretar melhor diretamente
    Há mais detalhes que achei interessantes na entrevista original
    https://stratechery.com/2024/an-interview-with-amd-ceo-lisa-...