Cell Architecture Explained: Introduction

Só para dar um pouco de fundo de comparação a nível de GFlops basta dizer que, um 3U com 12 (sim, doze!) Opterons a 2.4Ghz faz à volta de 58GFlops.

Este tal de Cell dizem que faz >256GFlops, mesmo se acabar por só fazer metade disso, aniquila racks de 12 Opterons ao pequeno-almoço.

(Imaginem um coitadinho dum dual Opteron a 2Ghz que faz "só" 8GFlops.)

Poderoso han?
 
Última edição:
Estou muito curioso mesmo sobre este CPU, será que temos 3º fabricante :P

interessante é a baixa voltagem para tantos ghz :wow: Será que será economico e fresquinho?

Venha de lá os results :P

Xpirit, O 3dmark dar out of range essa foi boa :002:
 
ptzs disse:
Só para dar um pouco de fundo de comparação a nível de GFlops basta dizer que, um 3U com 12 (sim, doze!) Opterons a 2.4Ghz faz à volta de 58GFlops.

Este tal de Cell dizem que faz >256GFlops, mesmo se acabar por só fazer metade disso, aniquila racks de 12 Opterons ao pequeno-almoço.

(Imaginem um coitadinho dum dual Opteron a 2Ghz que faz "só" 8GFlops.)

Poderoso han?

fdz... :wow: era bom ver isto a correr folding, boinc, 3dmarks :009: :x2:
 
Madril disse:
Ah ... destr0yer ... pra ti só existe AMD e Intel ?

LOL....

No mercado domestico, sim...

Tem a apple, mas por acaso consegue fazer concorrencia a AMD e INTEL?
Via, Transmeta, Texas Instruments onde eles andam...


:rolleyes:
 
Rudzer disse:
para desktop's....
Exatamente, quando eu disse 3º fabricante é para desktops... Era bom se viessem para combater AMD e INTEL :P

Que eu sei que existe mais fabricantes de CPU,s desde que conheço informatica :P
 
Primeiro é preciso ver se alguma daquelas empresas tem interesse em meter o Cell no mercado desktop.
Do que se viu até agora, não.

Talvez a Apple tenha interesse, ou talvez apareça um Kit Linux para a PS3, como o que existiu na PS2.
Mesmo isto é especulação. Não me lembro de nenhuma das 3 empresas falar em mercado desktop.

Além disso, lembrem-se, este cpu não é x86. Ninguem vai correr 3dmark neste cpu.
 
ptzs disse:
Só para dar um pouco de fundo de comparação a nível de GFlops basta dizer que, um 3U com 12 (sim, doze!) Opterons a 2.4Ghz faz à volta de 58GFlops.

Este tal de Cell dizem que faz >256GFlops, mesmo se acabar por só fazer metade disso, aniquila racks de 12 Opterons ao pequeno-almoço.

(Imaginem um coitadinho dum dual Opteron a 2Ghz que faz "só" 8GFlops.)

Poderoso han?


Atenção que os 256 Gflops é a performance teórica de pico. Na prática e no mundo real a performance depende muito daquilo que se faz. O handicap deste CPU é ser muito rápido para a largura de banda do bus de acesso à memória externa.
 
Xpirit disse:
"There is no out of order execution."


Será que é por isto que o Hannibal acha que a Apple não vai usar CELL's no futuro? Compreendo o seu raciocínio. Um Power com 8 SPE's que não vão ser muito úteis para correr programas comuns pode vir a ser uma coisa cara para o que é ou um canhão para matar uma mosca. Se é por isto está errado.

Depois de ler o pouco que ja há disponível eis a minha avaliação:


Para o utilizador comum é perfeitamente inútil. A capacidade de processamento single-process e single-threaded é EXTREMAMENTE baixa, o que é o caso de 99% das tarefas domésticas.

Em termos gerais eis o processamento de multi-thread irá ser bastante baixo. De notar que nunca é garantida a coerência dos dados de nenhuma das 8-pseudo caches L1, mas tem de ser assegurado pelo programa, o que irá ser catastrófico em termos de desempenho.

Por outro lado, tudo o que for processamento paralelo multi-processo poderá ser bastante alto, e deve atingir pelo menos metade do desempenho teórico. Mas será esse o melhor caso.

Em tarefas de servidores, especificamente servidor de base de dados, o desempenho será muito baixo.
Em servidores de web ainda tenho de ver.
 
Nemesis11 disse:
Talvez a Apple tenha interesse, ou talvez apareça um Kit Linux para a PS3, como o que existiu na PS2.
Mesmo isto é especulação. Não me lembro de nenhuma das 3 empresas falar em mercado desktop.

Além disso, lembrem-se, este cpu não é x86. Ninguem vai correr 3dmark neste cpu.

O 3Dmark é um benchmark gráfico. Para além de nem haver uma versão PPC nem faz muito sentido usá-lo para avaliar o cpu. Agora que vai surgir uma BLAS para esta máquina lá isso vai.

Um cluster de Playstations 3 certamente que irá ser experimentado se não o CELL não for introduzido mais cedo.

Como isto: http://arrakis.ncsa.uiuc.edu/ps2/index.php

http://arrakis.ncsa.uiuc.edu/ps2/cluster.php
 
Tafinho disse:
Depois de ler o pouco que ja há disponível eis a minha avaliação:

Para o utilizador comum é perfeitamente inútil. A capacidade de processamento single-process e single-threaded é EXTREMAMENTE baixa, o que é o caso de 99% das tarefas domésticas.

Não concordo. Os cpu's actuais são mais do que suficentes para as essas tarefas domésticas que falas. Mesmo o core Power 2-way in-order SMT do CELL dá para o gasto. O problema dos cpu's actuais é não terem capacidade de processamento para o resto que fazemos. Compressão de video, áudio, gráficos, etc. O simples passar um DVD para Divx é uma tarefa penosa. Se surgir uma coisa 25x mais rápida, garanto-te que é útil.

O pormenor de não haver coerência entre as pseudo-caches e o resto é um pormenor importante. Ainda bem que é assim. É por isto que este CELL se torna poderoso e ultra-rápido,
Se tiveres a comprimir mpeg2 e meteres um bloco da imagem em cada SPE para que serviria a coerência de cache entre os 8 SPE's , por exemplo, se os dados e cálculos são completamente independentes?

O grande problema do CELL vai ser programá-lo mas para isso há pessoas que tem mãozinhas para ele.

O que mais preocupa-me é o facto do core ser um 2-way SMT in-order. Até é por causa disto que dizem que corre a 4-5Ghz se estou a ver bem as coisas. Amanhã eles mostram os pormenores.
 
Xpirit disse:
Não concordo. Os cpu's actuais são mais do que suficentes para as essas tarefas domésticas que falas. Mesmo o core Power 2-way in-order SMT do CELL dá para o gasto. O problema dos cpu's actuais é não terem capacidade de processamento para o resto que fazemos. Compressão de video, áudio, gráficos, etc. O simples passar um DVD para Divx é uma tarefa penosa. Se surgir uma coisa 25x mais rápida, garanto-te que é útil.

Sim, essa é uma tarefa extremamente útil para este processador. É o que irá permitir haver HD-DVB 1080p.
Mas atenção que as não há assim tantas terefas SMP para o utilizador deméstico. Atenção que o desempenho SMT não será famoso.

Xpirit disse:
O pormenor de não haver coerência entre as pseudo-caches e o resto é um pormenor importante. Ainda bem que é assim. É por isto que este CELL se torna poderoso e ultra-rápido,
Se tiveres a comprimir mpeg2 e meteres um bloco da imagem em cada SPE para que serviria a coerência de cache entre os 8 SPE's , por exemplo, se os dados e cálculos são completamente independentes?

Ainda não vi dados sobre FFT, mas sim, é precisamente esse a grande utilidade que lhe prevejo.
 
Tafinho disse:
Em termos gerais eis o processamento de multi-thread irá ser bastante baixo. De notar que nunca é garantida a coerência dos dados de nenhuma das 8-pseudo caches L1, mas tem de ser assegurado pelo programa, o que irá ser catastrófico em termos de desempenho.


Qualquer programa que usar as 8 SPE vai obviamente usá-las da melhor maneira possível. É exactamente igual à programação SSE2, que tem que ser feita à pata. Basta surgir bibliotecas gerais com código optimizado para as 8 SPE's para tornar a programação de qq coisa mais simples. É assim que se programa actualmente para os CPU's actuais, não estou a ver que seja diferente para os CELL's.

No que respeita a computação científica, basta que este senhor e outros semelhantes deitem cá para fora uma versão para CELL para tudo passar a ser mais simples.

http://www.cs.utexas.edu/users/flame/goto/

Finalmente, o CELL não é muito diferente do projecto inicial Pentium 4 do ponto de vista da estratégia. Frequências altas, uso de SIMD's e um bus para o exterior rápido (lembram-se da ligação Intel/Rambus). Infelizmente o timing não foi o melhor e a tecnologia não estava madura. Cortaram na freq e no números de unidades SIMD (apenas 1 no caso do Pentium 4).
 
Última edição:
Xpirit disse:
Qualquer programa que usar as 8 SPE vai obviamente usá-las da melhor maneira possível. É exactamente igual à programação SSE2, que tem que ser feita à pata. Basta surgir bibliotecas gerais com código optimizado para as 8 SPE's para tornar a programação de qq coisa mais simples. É assim que se programa actualmente para os CPU's actuais, não estou a ver que seja diferente para os CELL's.

Não tem qualquer relação uma coisa com a outra. Não se usam bibliotecas SSE2, compila-se com istruções SSE2, e mesmo assim com resultados que variam entre o mediano e o muito mau.

Simplesmente não se pode gerar paralelismo onde ele não existe. A única coisa que o compilador pode fazer é "achar" esse paralelismo e modificar o código para tirar partido dele.

O Cell está muito relacionado com o actual processador da PS. Mas nada relacionado com o P4.
 
Xpirit disse:
O 3Dmark é um benchmark gráfico. Para além de nem haver uma versão PPC nem faz muito sentido usá-lo para avaliar o cpu.

Sim.
Meti aquele comentario por causa das reacções à piada do 3dmark/superpi.

Xpirit disse:
Um cluster de Playstations 3 certamente que irá ser experimentado se não o CELL não for introduzido mais cedo.

Como isto: http://arrakis.ncsa.uiuc.edu/ps2/index.php

http://arrakis.ncsa.uiuc.edu/ps2/cluster.php

O Cell vai ser introduzido mais cedo (as "workstations" do press release da Ibm), mas nunca ao preço que a PS3 vai ter.
E é por isso que vão aparecer os clusters de PS3.
 
Tafinho disse:
Não tem qualquer relação uma coisa com a outra. Não se usam bibliotecas SSE2, compila-se com istruções SSE2, e mesmo assim com resultados que variam entre o mediano e o muito mau.

Simplesmente não se pode gerar paralelismo onde ele não existe. A única coisa que o compilador pode fazer é "achar" esse paralelismo e modificar o código para tirar partido dele.

O Cell está muito relacionado com o actual processador da PS. Mas nada relacionado com o P4.


Bibliotecas SSE2 é produto da tua imaginação. O que eu disse é que se usam bibliotecas optimizadas para SSE2. Quando se diz isto significa que a biblioteca usa instruções SSE2. Se são optimizadas ou não depende da sua implementação.

Quanto ao resto, nada de mais errado. Provavelmente nunca usaste as SSE2 num P4, por exemplo. Compilando com uso de SSE2 quando possível consegue-se uma melhoria em Flops embora com um custo de precisão. O FPU dá 80bits enquanto as SSE2 são a 64bits. Bom, mas isto são outros quinhentos. Para se conseguir um bom speedup é necessario codificar à unha. Como isto é chato o comum é usar bibliotecas.
Bibliotecas com os algoritmos mais essenciais optimizados à pata para SSE2, coisas como FFT's, multiplicações entre matrizes vectores, etc é o que não falta por aí.

Uma bastante interessante é a Math Kernel Library da Intel.
http://www.intel.com/software/products/mkl/

Quando não se está por dentro de uma matéria convém não ultrapassar certos limites. Se quiseres aprender umas coisas podes ir à *escolinha* da Intel
https://shale.intel.com/SoftwareCollege/CourseDetails.asp?courseID=90

Mas como é para programadores avançados com conhecimentos de assembler e em particular sobre o conjunto de instruções SSE2 não sei se te vai ser útil.

Um exemplo. Em FFT's trabalha-se com complexos e obviamente que é necessário multiplicar números complexos pelo meio. Aqui vai exemplo de uma multiplicação de complexos codificada de forma a ser compilada na sua forma mais optimizada em SSE2.

#include <emmintrin.h>

__m128d ZMUL(__m128d a, __m128d b);

static __inline __m128d ZMUL(__m128d a, __m128d b)
{
__m128d ar, ai;

ar = _mm_unpacklo_pd(a, a); /* ar = [a.r a.r] */
ar = _mm_mul_pd(ar, b); /* ar = [a.r*b.r a.r*b.i] */
ai = _mm_unpackhi_pd(a, a); /* ai = [a.i a.i] */
ai = _mm_xor_pd(ai, _mm_set_sd(-0.0)); /* ai = [-a.i a.i] */
b = _mm_shuffle_pd(b, b, 1); /* b = [b.i b.r] */
ai = _mm_mul_pd(ai, b); /* ai = [-a.i*b.i a.i*b.r] */

return _mm_add_pd(ar, ai); /* [a.r*b.r-a.i*b.i a.r*b.i+a.i*b.r] */
}


Um bocado diferente de um, em fortran, COMPLEX a,b | a*b :D


Isto faz parte de uma conhecida biblioteca FFT.
 
Última edição:
Back
Topo