Pergunta

nos últimos tempos eu ouvi muita gente afirmando que o processador Cell é morto, principalmente devido aos seguintes motivos:

  • Falta de suporte no novo playstation 3, como o usuário não pode instalar o linux
  • O aumento do poder de processamento da GPU e os seus custos de naufrágio
  • A existência de um servidor de unificação de abordagem de programação (openCL) para diferentes GPU e não para a CBE (bem, hoje foi anunciado para o Celular!)
  • Carency de exemplos reais de utilização da célula (para além dos círculos acadêmicos)
  • Global sentimento de insucesso

O que você acha?Se você começou há dois ou três anos para programar o celular, você vai continuar este ou você está pensando em mudar para GPU?É uma nova versão da célula vinda?

Obrigado

Foi útil?

Solução

Eu diria que as razões para a falta de popularidade para o desenvolvimento de células estão mais próximas de:

  • A falta de sucesso no PS3 (devido a muitos erros por parte da Sony e forte concorrência do Xbox 360)
  • Baixo rendimento de fabricação, alto custo (em parte devido ao baixo rendimento) e falta de sistemas de hardware acessíveis que não sejam o PS3
  • Dificuldade de desenvolvimento (a célula é um processador incomum para projetar e falta a ferramenta)
  • Falha em obter diferenças significativas de desempenho em comparação com o hardware de commodities baseado em X86 existente. Até o processador de arquitetura de potência Triple Core Triple Core de vários anos do Xbox 360 se mostrou competitivo, em comparação com um moderno processador Core2 Quad que as vantagens da célula simplesmente não são evidentes.
  • Aumentando a concorrência de plataformas de computação de uso geral da GPU, como CUDA

Outras dicas

É mais fácil escrever programas paralelos para 1000 linhas do que ele é para 10s de threads.GPUs tem 1000 threads, com o agendamento de threads de hardware e balanceamento de carga.Embora atuais GPUs são adequados principalmente para dados paralela de pequenos grãos, eles tem ferramentas que fazem a fazer esse tipo de programação trivial.A célula tem apenas alguns, a fim de 10s, de processadores no consumidor configurações.(A Célula derivativos utilizados em supercomputadores cruzar a linha, e ter 100s de processadores.)

IMHO um dos maiores problemas com a Célula foi a falta de um cache de instrução.(Eu disse isso veementemente com a Célula de arquitetos em um avião de volta a partir do MICRO conferência de Barcelona em 2005.Embora eles discordaram de mim, eu ouvi a mesma de bigsuper os usuários de computador da célula.) As pessoas podem lidar com a montagem em dados de tamanho fixo memórias - GPUs têm o mesmo problema, embora eles se queixam.Mas encaixe do código de tamanho fixo de instruções de memória é uma dor.Adicione uma instrução IF, e o desempenho pode cair de um penhasco, porque você tem que começar a usar sobreposições.É muito mais fácil controlar as suas estruturas de dados que é para evitar ter de adicionar código para correção de bugs no final do ciclo de desenvolvimento.

GPUs originalmente tinham os mesmos problemas que a célula - não caches, nem eu, nem D.

Mas GPUs fez mais threads, o paralelismo de dados muito melhor do que o da Célula, que eles comiam até que o mercado.Deixando a Célula apenas a sua bloqueado no console de clientes, e os códigos que eram mais complicadas do que as GPUs, mas menos complicado do que o código de CPU.Espremido no meio.

E, entretanto, as GPUs estão adicionando I$ e D$.Então, eles estão se tornando mais fácil programa.

Por que a célula morreu?

1) O SDK foi horrível. Vi alguns desenvolvedores muito brilhantes sobre arranhar os olhos, passando pelas listas de discussão da IBM tentando descobrir esse problema ou com o SDK da célula.

2) O ônibus entre as unidades de computação estava começando a mostrar problemas de escala e nunca teria chegado a 32 núcleos.

3) O OpenCL era cerca de 3-4 anos tarde demais para ser útil.

Se você começou há dois ou três anos para programar a célula, continuará nisso ou está pensando em mudar para a GPU?

Eu teria pensado que 90% das pessoas que programam para o processador de células não estão em uma posição em que possam decidir arbitrariamente parar de programar. Você está apontando essa pergunta em uma comunidade de desenvolvimento muito específica?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top