Introdução do Processador Celular

Matthew Scarpino explica, a um nível básico, o que é e como funciona o Processador Celular.

Em Setembro de 2007, o Livro dos Recordes do Guinness anunciou o novo recordista do sistema de computação distribuída mais potente do mundo. Não era um cluster tradicional de computadores de alto desempenho, mas uma rede mundial composta por PCs regulares e consoles PlayStation 3 (PS3s). Chamado Folding@Home, este sistema de computação distribuída simula o dobramento de proteínas para analisar a origem das doenças.

Antes da adesão das PS3s, a rede era capaz de apenas .25 petaflops (250.000.000.000.000 de operações de ponto flutuante por segundo). Mas quando o cliente Folding@Home começou a funcionar com PS3s, a velocidade de computação quadruplicou em seis meses, fazendo de Folding@Home o primeiro sistema de computação distribuído a quebrar a barreira de 1 petaflop.

Tabela 1.1 esclarece o significado das PS3s na rede Folding@Home. Não há quase tantos consoles como PCs, mas eles fornecem mais potência computacional do que os computadores Windows/Mac/Linux combinados.

Table 1.1. Folding@Home Performance Statistics (Gravado em 16 de Abril, 2008)

Tipo de SO

Pflops atuais

UPLs Ativas

Total CPUs

Windows

190,892

1.986.517

Mac OS X/PowerPC

8.478

114,326

Mac OS X/Intel

7.428

45,480

Linux

27,796

286,172

PlayStation 3

40.880

492,491

A enorme potência computacional da PS3 é fornecida pelo Cell Broadband Engine, normalmente chamado de Cell processor ou apenas Cell Cell. Desenvolvido pela STI Alliance (Sony, Toshiba e IBM), o Cell combina a capacidade de uso geral da arquitetura PowerPC da IBM com o número suficiente para satisfazer até mesmo os jogadores mais exigentes e desenvolvedores gráficos.

O que isso significa para você? Significa que você pode aproveitar o melhor dos dois mundos: flexibilidade computacional e poder. Por um lado, você pode instalar um sistema operacional comum, como o Linux, na Célula e executar aplicativos tão convenientemente como se eles estivessem rodando em um PC. Por outro lado, você pode implementar algoritmos computacionalmente intensos a velocidades muito superiores às CPUs regulares e até mesmo competir com dispositivos de supercomputação.1 Mais incrivelmente ainda, você pode fazer ambos ao mesmo tempo.

A Célula torna isso possível através de uma divisão de trabalho on-chip: O sistema operacional roda em um único Elemento Processador PowerPC (PPE), e o cálculo de alta velocidade é realizado por uma série de Elementos Processadores Sinergéticos (SPEs). Estes dois tipos de núcleos são projetados especificamente para suas tarefas, e cada um suporta um conjunto diferente de instruções.

Encerrados individualmente, estes elementos de processamento são fáceis de entender e simples de programar. A parte mais difícil é coordenar a sua operação para tirar o máximo proveito dos seus pontos fortes. Para conseguir isto, um codificador deve conhecer os comandos de programação específicos da Célula e ter um sólido conhecimento da arquitetura do dispositivo: seus elementos de processamento, interconexões e estrutura de memória.

O objetivo deste livro é cobrir estes assuntos com profundidade suficiente para que você possa criar aplicações que maximizem as capacidades da Célula. Grande parte deste tratamento se aprofunda na arquitetura do processador, mas apenas nos aspectos que você pode usar e configurar em código. Alguns tópicos podem parecer esmagadores para aqueles que não estão acostumados a pensar como arquitetos de computadores, mas não se preocupem: Tudo será explicado à medida que a necessidade surgir. E o objectivo deste livro é sempre software.

O objectivo deste capítulo é explicar, a um nível básico, o que é e como funciona o processador Cell. A discussão começa com uma descrição do background da Célula, incluindo sua história e capacidades, e prossegue para introduzir a arquitetura básica do processador.

1.1 Background of the Cell Processor

A Célula é tão diferente de suas antecessoras que ajuda a saber porque ela foi criada e as forças corporativas que moldaram seu design. Quando você perceber porque a STI Alliance gastou tanto tempo e esforço com a Célula, você terá uma idéia melhor do porque aprender sobre ela vale a pena.

História da Célula

Sony terminou o desenvolvimento da PlayStation 2 em 1999 e a lançou no ano seguinte. Apesar do seu tremendo sucesso, então-CEO Nobuyuki Idei estava nervoso: Como é que a consola da próxima geração da Sony poderia ser superior à PS2? O que mais poderiam eles conseguir? A resposta, decidiu Nobuyuki, era dupla: A próxima oferta tinha de integrar a capacidade multimédia de banda larga e proporcionar melhorias dramáticas no processamento gráfico. Estes objectivos elevados exigiam hardware inteiramente novo e, para tornar isto possível, ele conferiu com o então CEO da IBM, Louis Gerstner. Juntos eles moldaram o conceito que levaria ao Processador Celular.

O chefe da Sony Computer Entertainment, Ken Kutaragi, explicou os requisitos de hardware e fez exigências que iam muito além do estado da arte. Envolvendo cada processador como um bloco de construção de uma entidade maior e em rede, Ken Kutaragi chamou o dispositivo de Célula. De acordo com a intenção original de Nobuyuki-san, o projeto passou a ser chamado de Cell Broadband Engine (CBE). Este continua sendo o nome oficial do processador Cell.

Toshiba expressou interesse em usar a Cell em sua eletrônica de consumo, e em 2001, Sony, Toshiba, e IBM anunciaram a formação da STI Alliance. Sua intenção declarada era pesquisar, desenvolver e fabricar uma arquitetura revolucionária de processador. Eles formaram o STI Design Center em Austin, Texas, para transformar os requisitos da CBE em realidade.

Como o arquiteto chefe da Cell, Jim Kahle viu que os requisitos da CBE não poderiam ser atendidos com um processador tradicional de núcleo único – a demanda por energia seria muito grande. Em vez disso, ele escolheu um projeto mais eficiente em termos de energia que incorporou várias unidades de processamento em um único chip. A arquitetura final consistia de nove núcleos: um elemento central de processamento e oito elementos dedicados para computação de alta velocidade.

Na época desta redação, o STI Design Center cresceu para mais de 400 engenheiros. O Dr. H. Peter Hofstee, um dos designers fundadores da Célula, ocupa os cargos de cientista-chefe e arquiteto-chefe da SPE. Em uma apresentação recente, ele listou os principais objetivos que conduziram o design da Cell:

  1. Desempenho notável em jogos e aplicações multimídia
  2. Real-time responsividade ao usuário e à rede
  3. Aplicabilidade a uma ampla gama de plataformas

Em 2004, a fábrica de semicondutores da IBM em East Fishkill produziu o primeiro protótipo de Cell. Os engenheiros da STI instalaram o Linux e testaram o processador a velocidades que ultrapassam a faixa comumente indicada de 3 a 4GHz. O protótipo passou. No ano seguinte, Sony e IBM trabalharam febrilmente para integrar o dispositivo dentro do console da próxima geração da Sony, e os jogadores expectantes tiveram seu primeiro vislumbre da PlayStation 3 na Electronic Entertainment Expo (E3) 2005.

Novembro de 2006 marcou o lançamento comercial completo do PS3, e os contos de linhas longas e consumidores pouco sãos vão divertir o pessoal do varejo por anos futuros. Além de seu poderoso cérebro processador Cell, o novo console forneceu resolução de até 1080p e um drive Blu-ray para vídeo de alta definição.

Nesse mesmo ano, a IBM lançou seu primeiro Kit de Desenvolvimento de Software CBE (SDK) para permitir que os desenvolvedores criassem aplicativos para o Cell. O SDK fornece compiladores para ambos os tipos de elementos de processamento, um simulador/debugger combinado, numerosas bibliotecas de código e um ambiente de desenvolvimento baseado no Eclipse. Grande parte deste livro se preocupa com o SDK e como você pode usá-lo para construir aplicações.

Em meados de 2008, o primeiro supercomputador baseado em células, chamado IBM Roadrunner, foi testado no Laboratório Nacional de Los Alamos. Contendo 12.960 processadores Cell e 12.960 Opterons, o Roadrunner atingiu uma velocidade de processamento de 1.026 petaflops e se tornou o mais rápido dos supercomputadores da lista TOP500. Sua velocidade mais que duplica a do supercomputador de segundo lugar, BlueGene/L, em .478 petaflops.

Potencial do Processador de Células para Computação Científica

Em 2005, o Laboratório Nacional Lawrence Berkeley estudou o desempenho computacional da célula e registrou seus achados no relatório O Potencial do Processador de Células para Computação Científica. Eles simularam uma série de diferentes algoritmos e compararam a velocidade de processamento da célula com a de processadores similares: o AMD Opteron, o Itanium2 da Intel e o X1E do Cray. A Tabela 1.2 tabula seus resultados.

Tabela 1.2. Resultados do Lawrence Berkeley National Laboratory Study (All Values in Gflops/s)

Algoritmo

Célula Processador

Cray X1E

AMD Opteron

Intel Itanium2

Densa matriz multiplicar (precisão única)

Densa multiplicação de matriz (dupla precisão)

Matriz esparsa simétrica multiplicação vetorial (precisão única)1

Symmetric multiplicação vetorial de matriz esparsa (dupla precisão)1

Nonsymmetric Multiplicação de Matriz Vetorial (Precisão Única)1

Multiplicação vectorial de matriz esparsa não assimétrica (dupla precisão)1

2-D rápida transformação de Fourier (precisão única)2

2-D rápida transformação de Fourier (dupla precisão)2

Há dois pontos a ter em mente. Primeiro, os resultados referem-se à velocidade de computação em bilhões de flops (operações de ponto flutuante por segundo), e não à quantidade de tempo necessária para realizar o algoritmo. Segundo, porque os multiplicadores da Célula de primeira geração são de precisão única, a Célula de primeira geração tem um desempenho muito melhor com valores de precisão única do que com valores de precisão dupla. Mas a segunda geração fornece multiplicação por hardware de valores de precisão dupla.

Para um engenheiro interessado em processamento de sinais e matemática computacional (como eu), os resultados são nada menos do que surpreendentes. O estudo justifica as afirmações ultrajantes de marketing: A Célula realmente fornece capacidade de supercomputador para quase o custo e potência (aproximadamente 50 a 60 W) de uma CPU normal.

Deixe uma resposta

O seu endereço de email não será publicado.