Domanda

negli ultimi tempi ho sentito molte persone affermare che il processore Cell è morto, principalmente per i seguenti motivi:

  • Mancanza di supporto nella nuova PlayStation 3, poiché l'utente non può installare Linux
  • La crescente potenza di elaborazione delle GPU e il calo dei costi
  • L'esistenza di un approccio di programmazione unificato (openCL) per diverse GPU e non per il CBE (beh, oggi è stato annunciato per il Cell!)
  • Carenza di esempi reali di utilizzo del cellulare (a parte gli ambienti accademici)
  • Sensazione globale di insuccesso

Cosa ne pensi?Se due o tre anni fa avete iniziato a programmare la cella, continuerete così o state pensando di passare alle GPU?È in arrivo una nuova versione del cellulare?

Grazie

È stato utile?

Soluzione

Direi che le ragioni della mancanza di popolarità per lo sviluppo cellulare sono più vicine a:

  • La mancanza di successo nella PS3 (a causa di molti errori da parte di Sony e una forte concorrenza da Xbox 360)
  • Bassa resa di produzione, costi elevati (in parte a causa della bassa resa) e mancanza di sistemi hardware a prezzi accessibili diversi da PS3
  • Difficoltà di sviluppo (la cellula è un processore insolito da cui progettare e gli strumenti mancano)
  • Mancato raggiungimento di differenze di prestazioni significative rispetto all'hardware delle materie prime a base X86 esistente. Anche il processore di architettura a tripla potenza di Xbox 360 di Xbox 360 si è dimostrato competitivo, rispetto a un moderno processore Core2 Quad, i vantaggi della cellula non sono evidenti.
  • Aumentare la concorrenza dalle piattaforme di elaborazione generale della GPU come CUDA

Altri suggerimenti

È più semplice scrivere programmi paralleli per migliaia di thread piuttosto che per decine di thread.Le GPU hanno migliaia di thread, con pianificazione dei thread hardware e bilanciamento del carico.Sebbene le GPU attuali siano adatte principalmente per piccoli kernel paralleli di dati, dispongono di strumenti che rendono banale tale programmazione.Cell ha solo pochi processori, nell'ordine di decine, nelle configurazioni consumer.(I derivati ​​​​Cell utilizzati nei supercomputer superano la linea e hanno centinaia di processori.)

IMHO uno dei maggiori problemi con Cell era la mancanza di una cache di istruzioni.(Ne ho discusso a gran voce con gli architetti di Cell su un aereo di ritorno dalla conferenza MICRO di Barcellona nel 2005.Sebbene non fossero d'accordo con me, ho sentito la stessa cosa da utenti di computer di grandi dimensioni o cellulari.) Le persone riescono a far fronte all'inserimento in memorie di dati di dimensioni fisse - le GPU hanno lo stesso problema, anche se si lamentano.Ma inserire il codice in una memoria di istruzioni di dimensione fissa è una seccatura.Aggiungi un'istruzione IF e le prestazioni potrebbero crollare perché devi iniziare a utilizzare gli overlay.È molto più semplice controllare le strutture dei dati piuttosto che evitare di dover aggiungere codice per correggere i bug nelle fasi avanzate del ciclo di sviluppo.

Originariamente le GPU avevano gli stessi problemi dei cellulari: niente cache, né io né D.

Ma le GPU hanno fatto più thread, il parallelismo dei dati molto meglio di Cell, che hanno divorato quel mercato.Lasciando Cell solo i clienti della console erano bloccati e i codici erano più complicati delle GPU, ma meno complicati del codice della CPU.Stretto nel mezzo.

E, nel frattempo, le GPU aggiungono I$ e D$.Quindi stanno diventando più facili da programmare.

Perché è morta la cellula?

1) L'SDK era orribile. Ho visto alcuni sviluppatori molto luminosi su graffio gli occhi che si riversavano attraverso le mailing list IBM che cercavano di capire questo problema o quello con l'SDK cellulare.

2) Il bus tra le unità di calcolo stava iniziando a mostrare problemi di ridimensionamento e non sarebbe mai arrivato a 32 core.

3) OpenCL era di circa 3-4 anni troppo tardi per essere di qualsiasi uso.

Se hai iniziato due o tre anni fa per programmare la cella, continuerai su questo o stai pensando di passare alle GPU?

Avrei pensato che il 90% delle persone che programmano per il processore cellulare non si trovino in una posizione in cui possono decidere arbitrariamente di smettere di programmare per questo. Stai puntando questa domanda in una comunità di sviluppo molto specifica?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top