CEO da AMD, Lisa Su, relembra o projeto do infame processador Cell do PS3
(tomshardware.com)- 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
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
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...
Também queria saber se era uma disciplina que tratava diretamente de desenvolvimento de jogos/consoles
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
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
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...
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
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
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
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
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
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_...
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
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
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
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
É 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
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
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
Os consoles tiveram hardware único até a 7ª geração, com PS3 e Xbox 360
É 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
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-...