Pfiore

KiloCore, mille core per una CPU

Numeri impressionanti per il processore sviluppato alla University of California Davis. Lo vedremo mai nei nostri PC?

Roma - Un team di ricercatori della University of California Davis ha creato KiloCore, una CPU con 1.000 core così efficiente da poter essere alimentata da una singola batteria AA. Oltre ai 1.000 core, la CPU contiene anche 12 moduli di memoria indipendenti e, utilizzando corrente da 1,1V può funzionare ad una frequenza di clock di 1,78 GHz sfoggiando una potenza di calcolo pari ad 1,78 trilioni di istruzioni al secondo.

KiloCore è la prima CPU con 1.000 core indipendenti al suo interno

I 1000 processori MIMD di Kilocore sono organizzati in 32 colonne e 31 righe e completati da una trentaduesima riga contenente 8 processori e 768 KB di memoria, contenuti in 12 memorie indipendenti. Complessivamente il processore contiene 621 milioni di transistor e la sua fabbricazione è affidata ad IBM.
Visto che i processori sono indipendenti l'uno dall'altro, è possibile gestire in maniera indipendente anche il relativo clock, così che quando uno di questi non sia effettivamente utilizzato, lo si può addirittura spegnere per abbassare al minimo indispensabile il consumo di energia.
Per evitare le problematiche presenti in sistemi nei quali il numero di processori è esorbitante, non è presente alcuna cache, ma dati e istruzioni vengono memorizzati all'interno della memoria locale oppure, nell'ordine, nei processori vicini, nei moduli di memoria indipendenti presenti sul chip oppure in una memoria off-chip.

Questa CPU è estremamente flessibile, visto che ciascun processore può essere programmato in maniera indipendente: secondo Bevan Baas, professore di Electrical and computer engineering alla UC Davis, "l'idea è quella di frammentare un'applicazione in tante piccole parti, ciascuna delle quali può essere eseguita in un processore differente, abilitando così un elevato throughput con un basso consumo d'energia".
A questo proposito, i ricercatori hanno creato un compilatore e un mapping toolset, due strumenti indispensabili per programmare correttamente il chip e sfruttarne appieno le possibilità. La programmazione dello stesso, difatti, non è un processo semplice e lineare, ma piuttosto un processo multipasso che include anche un attento lavoro di mappatura per assegnare i sotto-programmi ai vari processori.
Per dimostrare le potenzialità di KiloCore i ricercatori hanno sviluppato anche diverse applicazioni, tra cui software per la codifica-decodifica wireless, per il video processing, per la cifratura, per il datacenter record processing e altro ancora.
È interessante notare come un elevato numero di core non implica un aumento lineare nelle prestazioni, come dimostrato dalla legge di Amdahl. Vi sono infatti processi altamente parallelizzabili e altri che invece beneficiano poco della presenza di più processori, ad esempio il rendering di video 3D.
Anche per questo, le applicazioni pratiche nella vita reale di questa CPU-monstre sono piuttosto limitate e difficilmente ne vedremo mai un'applicazione commerciale all'interno di computer destinati al mercato consumer.

Fiore Perrone
Notizie collegate
  • TecnologiaTOP500, lo strapotere cinese è autarchicoPubblicata la nuova lista dei supercomputer più potenti del mondo, e ancora una volta la vetta è appannaggio dei supersistemi cinesi. Gli americani si consolano con il terzo posto ma Pechino cresce sia in quantità che qualità
  • TecnologiaStampede 2, 18 PetaFLOPS per la ricercaEntro il 2017, presso l'Università del Texas di Austin, entrerà in funzione un nuovo supercomputer che supporterà migliaia di ricercatori statunitensi
  • TecnologiaLegge di Moore, la fine di un'eraLa fine della validità dello storico enunciato si avvicina, e le ragioni saranno economiche prima che tecnologiche. L'industria si prepara al cambio di paradigma, concentrata su cloud, gadget mobile e IoT
14 Commenti alla Notizia KiloCore, mille core per una CPU
Ordina
  • ma che differenza ci sarebbe tra questo e quello sviluppato nel 2006 da IBM? Li si parlava di una partnership tra IBM, Rapport e Carnegie Mellon... ora IBM e California Davis?
    non+autenticato
  • Interessante, ma cosa possono fare questi cores?
    Sono general purpose o con un set di istruzioni tanto limitato che finiscono per essere una alternativa alle GPU?
    non+autenticato
  • è una architettura MIMD (Multiple Instruction Multiple Data) non SIMD (Single Instruction Multiple Data).

    Per fare un parallelo "intuitivo" (anche se lontano dall'essere formalmente "rigoroso")
    è come paragonare una attività di una SINGOLA catena di montaggio applicata a UN PROCESSO in cui molti lavoratori fanno la stessa cosa ma con un UNICO controllo di processo (coordinamento del processo) in questo caso hai una SIMD.

    Se invece prendi una "squadra" ad esempio in una azienda in cui molti lavoratori di reparti diversi svolgono lavori diversi su input diversi ma con uno scopo comune tipo "il bene aziendale" hai una MIMD.

    Ovviamente sono 2 cose totalmente diverse e il controllo di una MIMD è virtualmente impossibile in ambito "general purpose".

    Ogni applicazione MIMD è compilata (con compilatori speciali) e ottimizzata in funzione stretta del risultato obiettivo e una ottimizzazione specifica non va bene per un altro tipo di task differente.

    Questo esclude ovviamente moltissimi tipi di applicazioni.
    Ma va benissimo ad esempio per fare calcolo matriciale e sistemi di equazioni differenziali o roba simile.

    Ovviamente non va bene per fare la GPU che è roba assai diversa.
    non+autenticato
  • Ciao Fotografo, ottima spiegazione.
    Grazie
    non+autenticato
  • > Questo esclude ovviamente moltissimi tipi di
    > applicazioni.
    > Ma va benissimo ad esempio per fare calcolo
    > matriciale e sistemi di equazioni differenziali o
    > roba
    > simile.
    >
    > Ovviamente non va bene per fare la GPU che è roba
    > assai
    > diversa.

    Aspetta un attimo.
    L'algebra lineare, e in generale i calcoli basati sulle matrici sono il caso d'uso più comune per CUDA e OpenGL. Oltretutto è da qui che sono nate, degli scienziati che non potevano avere computer costosi a disposizione avevano fatto degli hacking delle schede grafiche e poi i produttori hanno adottato l'idea.

    Anche nel campo dell'intelligenza artificiale ora si usano tantissimo CUDA e OpenGL per fare algebra lineare. Soprattutto le reti neurali dove si moltiplicano matrici a tutto spiano.
    non+autenticato
  • - Scritto da: sfkj

    > Aspetta un attimo.

    Va bene aspettiamo....
    A bocca aperta

    > L'algebra lineare, e in generale i calcoli basati
    > sulle matrici sono il caso d'uso più comune per
    > CUDA e OpenGL. Oltretutto è da qui che sono nate,
    > degli scienziati che non potevano avere computer
    > costosi a disposizione avevano fatto degli
    > hacking delle schede grafiche e poi i produttori
    > hanno adottato
    > l'idea.
    >
    > Anche nel campo dell'intelligenza artificiale ora
    > si usano tantissimo CUDA e OpenGL per fare
    > algebra lineare. Soprattutto le reti neurali dove
    > si moltiplicano matrici a tutto
    > spiano.
    Bene ora che ho aspettato ti rivelerò (ma potevi anche scoprirlo leggendo) che nessuno ha detto che non puoi usare una architettura SIMD per fare calcolo matriciale (e una gpu è una architettura SIMD rassegnati e documentati)
    Ma invece ho detto che una Architettura MIMD è in un certo senso "fatta apposta" per questo (un processore per ogni cella e un input per ogni cella)
    Il che significa che in un solo (uno solo ripeto) ciclo di clock tu hai completato il calcolo su tutte le CPU!
    In pratica se hai una matrice 100x100 e diecimila CPU hai risolto il sistema prima ancora di pensarci!

    Non casualmente le architetture MIMD sono basate su ipercubi (cpu collegate e interconnesse tra loro in potenze di 2).
    E sono architetture massivamente parallele.

    Quello che ho detto inoltre è che mentre una architettura SIMD è "general purpose" può essere usata perc qualunque cosa (matrici comprese) una MIMD invece NO!
    Chiaro?
    Riassunto :
    Matrici-->SIMD=ok (ma la mimd è più veloce).
    Matrici-->MIMD=ok (è un razzo!).

    RAytracing-->SIMD=ok
    Raytracing-->MIMD=No (è come avere un solo core quindi vantaggi zero).

    O se preferisci qualsisia architettura SIMD può fare di tutto (è general purpose) una MIMD invece no!

    Quindi non avrai mai una GPU MIMD non conviene.
    A bocca aperta
    non+autenticato
  • > Riassunto :
    > Matrici-->SIMD=ok (ma la mimd è più veloce).
    Ora come ora ci si affida a CUDA/openCL e alla potenza di calcolo parallelo delle GPU perchè rispetto alle CPU attuali sono dalle 10 alle 20 volte più veloci.

    > Matrici-->MIMD=ok (è un razzo!).

    Sarà vero ? Si torna all mia domanda iniziale.

    >
    > RAytracing-->SIMD=ok
    > Raytracing-->MIMD=No (è come avere un solo core

    Non mi interessa.
    non+autenticato
  • - Scritto da: sfll
    > > Riassunto :
    > > Matrici-->SIMD=ok (ma la mimd è più veloce).
    > Ora come ora ci si affida a CUDA/openCL e alla
    > potenza di calcolo parallelo delle GPU perchè
    > rispetto alle CPU attuali sono dalle 10 alle 20
    > volte più
    > veloci.
    Sbagliato! ci si affida proprio a questo tipo di unità di calcolo tra l'altro una delle prime "MIMD" storicamente è stata fatta in italia Progettata da INFN col nome di "ape" e poi i diritti commerciali ceduti a Alenia.
    Ma evidentemente non ne sai granchè...
    http://newton.corriere.it/PrimoPiano/News/2005/01_...
    INFN (istituto nazionale di fisica nucleare) lo progettò per fare calcoli di "quantocromodinamica" in pratica era una macchina dedicata e pensata per quel solo scopo.

    >
    > > Matrici-->MIMD=ok (è un razzo!).
    >
    > Sarà vero ? Si torna all mia domanda iniziale.
    è vero purtroppo per te e è pure un fatto universalmente noto.
    Ficoso
    Direi che più che alla "domanda iniziale" si torna alla tua palese ignoranza su cosa sia un MIMD e cosa sia una SIMD.
       
    >
    > >
    > > RAytracing-->SIMD=ok
    > > Raytracing-->MIMD=No (è come avere un solo core
    >
    > Non mi interessa.
    Più che altro non hai capito e ne hai dato ampia prova è una cosa assai diversa dal "non mi interessa".
    Ficoso
    non+autenticato
  • - Scritto da: Fotografo
    > - Scritto da: sfll
    > > > Riassunto :
    > > > Matrici-->SIMD=ok (ma la mimd è più
    > veloce).
    > > Ora come ora ci si affida a CUDA/openCL e
    > alla
    > > potenza di calcolo parallelo delle GPU perchè
    > > rispetto alle CPU attuali sono dalle 10 alle
    > 20
    > > volte più
    > > veloci.
    > Sbagliato! ci si affida proprio a questo tipo di
    > unità di calcolo tra l'altro una delle prime
    > "MIMD" storicamente è stata fatta in italia
    > Progettata da INFN col nome di "ape" e poi i
    > diritti commerciali ceduti a
    > Alenia.
    > Ma evidentemente non ne sai granchè...
    > http://newton.corriere.it/PrimoPiano/News/2005/01_
    > INFN (istituto nazionale di fisica nucleare) lo
    > progettò per fare calcoli di
    > "quantocromodinamica" in pratica era una macchina
    > dedicata e pensata per quel solo
    > scopo.
    >
    > >
    > > > Matrici-->MIMD=ok (è un razzo!).
    > >
    > > Sarà vero ? Si torna all mia domanda
    > iniziale.
    > è vero purtroppo per te e è pure un fatto
    > universalmente
    > noto.
    > Ficoso
    > Direi che più che alla "domanda iniziale" si
    > torna alla tua palese ignoranza su cosa sia un
    > MIMD e cosa sia una
    > SIMD.
    >    
    > >
    > > >
    > > > RAytracing-->SIMD=ok
    > > > Raytracing-->MIMD=No (è come avere
    > un solo
    > core
    > >
    > > Non mi interessa.
    > Più che altro non hai capito e ne hai dato ampia
    > prova è una cosa assai diversa dal "non mi
    > interessa".
    > Ficoso

    Bravo! Hai imparato cosa sia una SIMD, ma non hai capito niente di tutto il resto.
    In compenso ti basta per sentirti il grande genio.

    Quello che non sai è che non tutti usano computer dedicati come APE, ma comunque lavorano benissimo.
    Vai a vedere chi lavora con librerie come Theano, se le hanno sviluppate c'è un buon motivo.
    non+autenticato
  • - Scritto da: sfll

    > Bravo! Hai imparato cosa sia una SIMD, ma non hai
    > capito niente di tutto il
    > resto.
    Tu neppure quello hai capito.

    > Quello che non sai è che non tutti usano computer
    > dedicati come APE, ma comunque lavorano
    > benissimo.

    Ma vedi una architettura MIMD non è affatto "per tutti" ci arrivi o no?

    > Vai a vedere chi lavora con librerie come Theano,
    > se le hanno sviluppate c'è un buon
    > motivo.
    Si per quelli che non possono permettersi le architetture MIMD e per quelli che sono troppo ignoranti per pensare di poterle usare!

    Del resto io ho risposto alla tua (non mia) domanda che era:

    Interessante, ma cosa possono fare questi cores?
    Sono general purpose o con un set di istruzioni tanto limitato che finiscono per essere una alternativa alle GPU?


    E la risposta è NO!
    è da un pezzo che te lo sto dicendo!

    Una architettura MIMD non ha nulla a che fare con la tua stupida GPU e non è colpa mia è proprio che la tua GPU è un altra cosa! è chiaro?
    o devo ripeterlo?
    non+autenticato
  • Fotografo, io non ho capito e nella mia ignoranza considererei una GPU essere MIMD... ma una GPU é un "coprocessore", quindi ""dedicato""...

    Ho provato a leggermi pure questo http://bias.csr.unibo.it/maltoni/arc/Dispense/Arch...

    Puoi per cortesia tentare di nuovo a spiegarmi la differenza?

    Grazie e scusa...
    non+autenticato
  • Una googlata in piú e ho capito...
    ...una GPU è SIMD al 100% (con una sola istruzione posso elaborare tramite i CUDA core "moltissimi" dati parallelamente)

    peró nella tua definizione, sembra invece che il MIMD sia "dedicato", mentre mi pare sia esattamente il contrario...
    non+autenticato