PDA

View Full Version : Il futuro è nei chip imprecisi?


Redazione di Hardware Upg
10-02-2009, 09:04
Link alla notizia: http://www.hwupgrade.it/news/cpu/il-futuro-e-nei-chip-imprecisi_27992.html

Recenti progetti presentati alla International Solid State Circuits Conference dimostrerebebro che, in alcuni ambiti, un chip impreciso potrebbe essere preferibile

Click sul link per visualizzare la notizia.

max@nikon
10-02-2009, 09:10
Bè, non è che si va alla ricerca dell'imprecisione. Ci sono meno accorgimenti per arginarla.

Poty...
10-02-2009, 09:11
maddai... non sarebbe il caso di pensare a nuove tecnologie?

ThePunisher
10-02-2009, 09:12
Bè, non è che si va alla ricerca dell'imprecisione. Ci sono meno accorgimenti per arginarla.

No, si va proprio alla ricerca dell'imprecisione, nel senso che si sfrutta il rumore per ottenere una maggiore efficienza. Penso sia questa la novità.

Xile
10-02-2009, 09:12
Per me è un arrampicamento sugli specchi!!!

Paganetor
10-02-2009, 09:16
devovedere se mi è rimasto un Pentium 60 col baco... oggi varrà oro! :D

max@nikon
10-02-2009, 09:16
No, si va proprio alla ricerca dell'imprecisione, nel senso che si sfrutta il rumore per ottenere una maggiore efficienza. Penso sia questa la novità.

Scusa, non sono d'accordo.
Secondo me si va alla ricerca della massima efficienza a scapito della precisione.
Cioè, l'imprecisione è un effetto collaterale, non è il fine del progetto.

cignox1
10-02-2009, 09:17
Beh, oddio, per una scheda grafica potrebbe essere interessante, visto che piccoli errori si tradurrebbero in difetti nell'immagine. Per una velocita' sette volte superiore, qualche piccolo difetto potrebbe essere tollerabile...

GByTe87
10-02-2009, 09:19
Bè, anche nel caso di una scheda video non è detto che un'errore nell'elaborazione si traduca in un difetto visivo, potrebbe tradursi in qualcosa di peggio :)

M'immagino le operazioni di debug su oggetti del genere :asd:

Paganetor
10-02-2009, 09:24
la cosa interessante potrebbe essere un "ibrido": un chip "preciso" per determinate operazioni e che, tramite abbassamento del voltaggio, può ridurre drasticamente i consumi a fronte di una imprecisione tollerabile... una sorta di speedstep, ma un po' più spinta...

AleLinuxBSD
10-02-2009, 09:26
Non sono tanto sicuro che un simile sistema possa essere applicato efficacemente ai comuni computer mentre sono più possibilista se viene inteso in ambiti particolari, specifici, relativamente a certe periferiche.

Ad es. in ambito dei router che attualmente arrancano se si tenta di utilizzare il loro firewall hardware per la scarsità di risorse disponibili, avere un processore nel router più veloce ed efficiente abbinato al costante calo dei prezzi delle memorie (con incremento della loro capacità) potrebbe permettere sviluppi interessanti.

Apparecchi come i decoder digitali per le Tv.

Processori nelle stampanti laser migliori.

Come già detto processori grafici per schede video.

Ecc.

-MiStO-
10-02-2009, 09:27
Scusa, non sono d'accordo.
Secondo me si va alla ricerca della massima efficienza a scapito della precisione.
Cioè, l'imprecisione è un effetto collaterale, non è il fine del progetto.
esatto
da quello che ho capito si cerca di ottenere il massimo risultato apprezzabile, non il più preciso in assoluto
mi è subito venuto in mente, magari a torto, teoria dell'informazione e codici di correzione errore: se ci sono errori (in numero gestibile), si correggono e l'informazione non è persa
qua credo si voglia far avvenire la stessa cosa:perchè utilizzare 100(in termini di tempo) per un calcolo assolutamente corretto quando posso impiegare 15 (7 volte di meno circa) per un calcolo approssimato ma che posso correggere o comunque gestire?

poi ovviamente si parla comunque di ambiti di utilizzo: compiti in cui una politica del genere è accettabile e altri invece in cui la precisione è l'unica strada perseguibile
comunque la ritengo idea estremamente interessante

fabiuz79
10-02-2009, 09:27
Mi ricorda tatno il motore a propulsione di improbabilità infinita di "Guida galattica per gli autostoppisti".

:-)

blu(e)yes
10-02-2009, 09:28
questa notizia mi ricorda l'invenzione dei Post-it, un prodotto commerciale di assoluto successo nato dall'utilizzo di una colla che era stata un clamoroso fallimento.

Chissà se anche questi chip avranno ugual destino? :D

Human_Sorrow
10-02-2009, 09:35
"Il risultato fornito dal chip non sarebbe quindi generato interamente da un calcolo preciso in termini matematici, come quello garantito dai chip tradizionali, ma ottenuto con una piccola approssimazione costituita dai calcoli probabilistici che tengono conto di quanto sbaglia il chip in media nel fare il suo dovere."

non vuol dire che il risultato è impreciso o sbagliato, ma APPROSSIMATO tenendo conto degli errori (dell'imprecisione) ...

Esempio (stupido)
RISULTATO CHIP perfetto 10
RISULTATO CHIP imperfetto - step1 - 9.89999999999
RISULTATO CHIP imperfetto - step2 - 9.99999999999

dove per step1 e step2 indico con 1 il risultato del chip e con 2 il risultato del chip approssimato tenendo conto degli errori.

Cymonk
10-02-2009, 09:39
...non pensino di usarli su macchinari in ambito medico diagnostico. Sarebbe terribile.
In ogni modo la "morbosità" sui consumi energetici che ha preso il mondo in questi ultimi due anni ha un che di preoccupante. E ve lo dice uno che da sempre si definisce ambientalista.
Un esempio ne è l'obbligo di SCOMPARSA delle lampadine ad incandescenza, a favore di quelle a risparmio energetico. Le seconde (che uso da più di 15 anni) hanno un elevato potere inquinante, ma sembra che questo sia passato improvvisamente in secondo piano.

Samoht
10-02-2009, 09:42
...la vera domanda è : "ma abbiamo REALMENTE tutto questo gran bisogno di processori così veloci e così precisi?"
...non pensino di usarli su macchinari in ambito medico diagnostico. Sarebbe terribile.Come al solito, state travisando le cose. Non crediate davvero che i chip "più precisi" non sbaglino: esistono circuiterie al loro interno che si occupano di approssimazioni e correzioni d'errore in tempo reale: il tutto dipende nella fatispecie da cosa si sta facendo e da che margine di errore si è disposti a tollerare, e in secondo luogo se proprio questo errore dà fastidio, come è possibile arginarlo. I nostri comuni pc, che tutti abbiamo nelle nostre case, sbagliano di continuo - e di continuo si correggono (entro certi limiti).In ogni modo la "morbosità" sui consumi energetici che ha preso il mondo in questi ultimi due anni ha un che di preoccupante. E ve lo dice uno che da sempre si definisce ambientalista.Più che altro, si sta sfruttando, a livello industriale, il grido di "verde" al solo scopo di marketing: le aziende fanno vedere che si battono per realizzare prodotti che consumano e che inquinano meno, ma nessuno fa realmente qualcosa per ridurre i consumi. Da bravo ambientalista quale ti ritieni, dovresti saperlo bene ;) Incentivi (falsi quando ci sono, ridicoli quando applicati) per la rottamazione, lampade a risparmio energetico che utilizzano tecnologia vecchia... le vere novità vengono tirate fuori dalla scatola solo quando ce n'è veramente bisogno - dal punto di vista economico per chi ci può guadagnare sopra, ovviamente: l'ambiente è probabilmente l'ultimo dei problemi a cui l'uomo può pensare. Tutti gli animali in natura hanno un certo senso per il pericolo, e l'essere umano non sfugge alla catalogazione: è un animale al pari di tutti gli altri, ma forse il più stupido tra tutti: si rende conto di essere in pericolo quando ormai ha già un piede nella fossa...Un esempio ne è l'obbligo di SCOMPARSA delle lampadine ad incandescenza, a favore di quelle a risparmio energetico. Le seconde (che uso da più di 15 anni) hanno un elevato potere inquinante, ma sembra che questo sia passato improvvisamente in secondo piano.Come darti torto? Quello che la gente non sa è che esistono anche lampadine a LED, che inquinano molto meno, consumano veramente un'idiozia e sono molto più resistenti. Ma le leggende metropolitane vogliono che i LED illuminino pochissimo, vanno bene solo per torce tascabili e giochini elettronici... tant'è che si realizzano anche illuminazioni pubbliche, lampade per interni, e alcune case automobilistiche stanno addirittura progettando (e realizzando, di fatto) proiettori anabbaglianti per automobili, con un mucchio di vantaggi. Ma la gente queste cose non le sa - e non le deve sapere, finchè il mercato non ritiene che sia giusto per loro.

E allora cosa vogliamo fare? vogliamo andare avanti con il paraocchi, o forse è il caso di toglierselo e ragionare con la propria testa?

Scusate la digressione un po :ot:, ma ho voluto dire anche la mia :asd:

Fx
10-02-2009, 09:42
sicuramente ci sono degli ambiti di applicazione per cui questa tecnologia può andare bene ma vanno anche ben circoscritti. mi spiego. l'esempio del router o della scheda video così come sono concepiti adesso non possono reggersi in piedi:
- il firewall dev'essere per forza un'applicazione "precisa", nel senso che non è concepibile che su 4 volte che provo ad entrare una magari mi lascia passare; piuttosto avrebbe senso nella distribuzione del carico su più server (il classico load balance)
- le schede grafiche sono così complesse che se sfolli un calcolo a monte hai una valanga di artifatti e problemi di visualizzazione a valle... anche qui devi circoscrivere bene l'ambito... finchè si tratta di sfollare il colore del pixel che va su una texture ok, quando metti un vertice da tutt'altra parte beh qualche problema nasce

due osservazioni:
1) è impreciso parlare di imprecisione :D si parla di risultati probabilistici, che è diverso. un risultato impreciso può essere 2 + 2 = 3.9; un risultato probabilistico significa che 2 + 2 dà 9 volte su 10 4, e una volta su 10 un risultato che non c'entra niente (ad es. 9329532). nel caso del colore di un pixel in una texture te ne frega il giusto ovviamente, in altri casi beh...
2) non vedo ambiti in cui un chip probabilistico possa non essere affiancato da un chip tradizionale

nota a margine: mi fa ridere che si è passati alla "rivoluzione digitale" in cui tutto è quantizzato nel sistema più semplice (il binario) così da avere per l'appunto la massima precisione possibile e poi si continuano ad introdurre elementi che vanno esattamente nel verso opposto (dalle compressioni distruttive a queste trovate qua). per tanto così torniamo all'analogico, per mettere un modulatore digitale probabilistico basato sul codec salcazzo a questo punto si metta direttamente un transistor o un mosfet e buonanotte :D

1T4
10-02-2009, 09:47
Secondo me ogni qualvolta si riesce a pensare "out of the box", qualche cosa di positivo ne deriva quasi sempre. E poi mica hanno detto di aver trovato la panacea a tutti i problemi tecnologici, ma un concetto che se applicato in determinati ambiti può portare un certo vantaggio rispetto alle soluzioni tradizionali. Un po' come il fenomeno netbook: dei chiodi senza senso per gli appassionati, tutto quello che si desidera da un computer per la signora Pina...

SpyroTSK
10-02-2009, 09:53
ma perchè si sforzano tanto a creare errori? a questo ci pensa windows :asd:

floc
10-02-2009, 09:54
il problema e' che gia' in ambito videoludico con il sw di oggi non si ha un pixel di un colore diverso come dite, ma un crash. Ed e' cosi' per tutto. Secondo me e' una rivoluzione troppo profonda come modo di pensare e di vivere l'informatica, poi magari in nuovi ambiti prendera' piede ma sicuramente il sw di oggi non potra' mai girare su affari del genere. E se gia' siamo da anni su un x86 di compromesso e nessuno si spreca a passasa a x86_64... buonanotte :)

danyroma80
10-02-2009, 09:57
l'idea di per se non è sbagliata. Chip del genere su una scheda video, aumenterebbero 7 volte la potenza di calcolo, abbatterebbero del 30% i consumi, a scapito di qualche pixel "errato" che tra milioni di pixel corretti nessuno noterebbe.
Certo, processori del genere non andrebbero bene per calcoli finanziari.

ranma over
10-02-2009, 10:01
Un errere in una scheda video si tradurrebbe in una schermata blu!
Per un telefono forse potrebbe anche andare ma in teoria più si va avanti e più si ricerca anche la qualità nelle cose,se devo parlare con ina persona e sentire uno scricchilio di sottofondo andiamo bene!

Jimmy3Dita
10-02-2009, 10:02
Invece la prospettiva non e' cosi' drammatica: come in molti altri settori si separa l'efficienza dall'efficacia.
Per esempio ogni tipo di lavorazione meccanica prevede delle tolleranze (errori) di fabbricazione che vengono arginati tramite accoppiamenti e sigle.

Era parecchio che si parlava di limite fisico del silicio, con questo sistema tiramo a campa' ancora un po'... tanto la correzione dell'errore deve comunque passare per processori e modelli di calcolo tradizionali, con la possibilita' che queste 7 volte in piu' diventino qualcosa di meno "sensazionale"...

Samoht
10-02-2009, 10:07
nota a margine: mi fa ridere che si è passati alla "rivoluzione digitale" in cui tutto è quantizzato nel sistema più semplice (il binario) così da avere per l'appunto la massima precisione possibile e poi si continuano ad introdurre elementi che vanno esattamente nel verso opposto (dalle compressioni distruttive a queste trovate qua).Un po' di temp o fa ricordo che si faceva un gran vociferare di "Fuzzy Logic"...per tanto così torniamo all'analogico, per mettere un modulatore digitale probabilistico basato sul codec salcazzo a questo punto si metta direttamente un transistor o un mosfet e buonanotte :Dbeh, ci sono alcuni casi in cui un bel trenino di armoniche risonanti fa anche piacere, come ad esempio in una chitarra elettrica distorta... la vita non è 0 e 1... o meglio, lo è per nostra comodità... ma in realtà è fatta da "infiniti intervalli tra il bianco e il nero" :asd:

Juspriss
10-02-2009, 10:08
è il classico compromesso ( tradeoff ) che c'è in tutti gli studi delle famiglie logiche :)

Penso sia perfettamente corretto, d'altro canto le comunicazioni digitali seguono un principio simile:
"che me ne frega della forma del segnale trasmesso se alla fine riesco comunque a ricondurlo al messaggio originale tramite dei controlli?" ;)

Pikazul
10-02-2009, 10:13
il problema e' che gia' in ambito videoludico con il sw di oggi non si ha un pixel di un colore diverso come dite, ma un crash.

Non generalizziamo, un risultato errato può portare ad un crash solo se questo risultato deve essere riutilizzato all'interno del softare ed è imprevedibile.

Qui stiamo parlando di errori probabilistici, quindi sappiamo cosa va tenuto in conto e possiamo fare in modo che anche i risultati imprecisi siano "accettabili" come validi dal software. Inoltre se il risultato è un valore finale che va direttamente ad una periferica di I/O che l'errore esista oppure no è generalmente trascurabile.

Chiaramente non useremmo mai chip di questo tipo per calcolare gli indirizzi di memoria, o per fare altre operazioni delicate, ma se si tratta di decidere il colore di un pixel al monitor che gli frega se è il colore esatto o uno poco diverso? Lui può visualizzarli tutti.

Se questa tecnologia prendesse piede tra qualche anno potremmo sentir parlare di "Precise Shader" e "Probabilistic Shader" (chiaramente avremmo entrambe le funzioni in una scheda grafica)

E per chi diceva che non c'è nessuna novità:
Sono decenni che si sa che diminuendo l'energia ed aumentando la frequenza gli errori nei chip aumentano, ma fino ad oggi abbiamo evitato come la peste questa condizione, ci siamo messi in condizioni sicure ed abbiamo fatto l'assunzione che i chip fossero infallibili.
La novità è che qualuno ha avuto l'idea di percorrere l'altra strada, quella che nessuno aveva battuto, e sta cercando un modo per renderla compatibile con gli usi odierni.
E' una novità filosofica più che tecnologica, ed è per questo, secondo me, che è ancora più interessante. E' un modo diverso di concepire il calcolo numerico piuttosto che un semplice raffinamento di una tecnologia preesistente.

Firedraw
10-02-2009, 10:14
Possono essere validi nei dac, ad esmpio in lettori blueray-dvd-divx, nei decoder dtt, nei lettori di cd audio o mp3.....

Se gli errori sono moderati in un flusso video a 25 fps, potrebbe saltare un intero frame che quasi non si noterebbe.

In un cd audio se capita qualche errore non sarebbe una tragedia, soprattuto negli mp3 in cui si presume che l'impianto non sia di sto gran livello, in una normalissima cuffietta stereo a 128 kbs non si noterebbe nemmeno.

E in teoria lo scopo non sarebbe avere una potenza 7 volte superiore, ma poter avere chip meno potenti che svolgono lo stesso lavoro a 1/10 del consumo.

x Misto la cosa è un po' diversa che per il controllo degli errori nei dati. Il calcolo non ha ridondanza e non la si può creare se non facendo 2 volte lo stesso calcolo dimezzando la potenza del chip, sempre che il ratio di errore sia inferiore a 0.5.

OT: Quoto Cymonk. Con questa corsa ecologica, ci sono alti rischi di inquinare sotto banco di più per ottenere magari qualche sovvenzione governativa. Vedi settore automobili, magari ti fanno un'auto che usa un carburante che da 0 CO2 durante la combustione, ma per produrlo se ne immete il doppio di prima nell'ambiente, e si prendono gli incentivi statali per aver fatto l'auto ecologica. Non dico che sia così ma è per fare un esempio.

Hanno sensibilizzato le masse? Ok, ma ora li faranno i controlli sul ciclo di produzione nel suo totale? O lasceranno le ditte libere di inquinare 100 volte di più in produzione pur di ottenere un prodotto che non inquina quando viene usato, che non riesce a bilanciare l'inquinamento della produzione con quello che toglie dal suo ciclo di vita?
Soprattutto adesso ceh siamo in periodo di crisi e i fondi per combattere l'inquinamento sono i primi a sparire via.

Samoht
10-02-2009, 10:19
Soprattutto adesso ceh siamo in periodo di crisi e i fondi per combattere l'inquinamento sono i primi a sparire via.L'industria automobilistica - ad esempio - è in periodo di crisi per il semplice e banale fatto che l'automobile ce l'hanno tutti, e uno non cambia solitamente la propria autovettura una volta l'anno...

dr-omega
10-02-2009, 10:36
Il nome in codice della futura cpu sarà Marvin, o Cuore d'oro??? :D

demon77
10-02-2009, 10:50
Beh.. non mi pare un'idea stupida...
L'esempio della telefonata o della riproduzione audio/video è perfetto per chip di questo genere..

Chiaro che non finirebbe mai all'interno di un desktop.. non il mio almeno!! :D

gabi.2437
10-02-2009, 11:06
...non pensino di usarli su macchinari in ambito medico diagnostico. Sarebbe terribile.
In ogni modo la "morbosità" sui consumi energetici che ha preso il mondo in questi ultimi due anni ha un che di preoccupante. E ve lo dice uno che da sempre si definisce ambientalista.
Un esempio ne è l'obbligo di SCOMPARSA delle lampadine ad incandescenza, a favore di quelle a risparmio energetico. Le seconde (che uso da più di 15 anni) hanno un elevato potere inquinante, ma sembra che questo sia passato improvvisamente in secondo piano.

Qualcuno ha parlato di "macchinari in ambito medico diagnostico"? No

Eppoi questo "consumo" non è per aver 2 euro in meno sulla bolletta, consumo in un processore, significa CALORE, ma a questo non ci pensiamo eh? Nono, consumo=bolletta e via, il pc scalda? Boh, io non me ne intendo di pc, c'è mio cugino di là che lui sa tutto...

Meno calore-->più calcolo

StateCity
10-02-2009, 11:17
l'essenza del calcolatore elettronico e' la sua precisione... :rolleyes:
vogliono introdurre cpu tarocche per solo degradare i dati.. :rolleyes:
fuzzy pixel e menate varie...

mika480
10-02-2009, 11:23
Questi ci convincono che un aerosol di amianto fa bene alla salute!
Ma fateci il favore!
Adesso ridurrano i costi di ricerca....e via a sfornare ciofeghe a 7ghz!!!
Il prossimo pc lo comprero' tra 15 anni!

soulplace
10-02-2009, 11:24
Secondo me bisogna pensare un tantinello fuori dallo schema. Se di approssimazione si deve parlare, allora si deve lasciar perder il vecchio caro binario (0,1) e iniziare a valutare gli stati intermedi della materia (obiettivo semi dichiarato dei fantomatici "computer quantistici"). Studiamo l'imprecisione su diversi stati se proprio dobbiamo farlo! altro che efficenza, con pochi Khz di clock si raggiungerebbero potenze per ora inimmaginabili, a tutto vantaggio del risparmio energetico...

AleLinuxBSD
10-02-2009, 11:36
...
E in teoria lo scopo non sarebbe avere una potenza 7 volte superiore, ma poter avere chip meno potenti che svolgono lo stesso lavoro a 1/10 del consumo.

Intrigante come idea ma anche se lasciassero una potenza 4 volte maggiore mi piacerebbe lo stesso. :)

...
x Misto la cosa è un po' diversa che per il controllo degli errori nei dati. Il calcolo non ha ridondanza e non la si può creare se non facendo 2 volte lo stesso calcolo dimezzando la potenza del chip, sempre che il ratio di errore sia inferiore a 0.5.

Dall'articolo non mi pare che sia possibile ottenere la precisione ripetendo il calcolo.

Nonostante il calcolo non precisissimo immagino che riguardi la sezione a virgola mobile più che la parte su interi.
Comunque lo lascio come punto interrogativo dato che basandomi soltanto su questa notizia è difficile fare ipotesi plausibili.
Diciamo però che, nonostante tutto, ha stimolato la mia curiosità.

...
OT: Quoto Cymonk. Con questa corsa ecologica, ci sono alti rischi di inquinare sotto banco di più per ottenere magari qualche sovvenzione governativa.
Quoto.
Tra l'altro accendere e spegnere le lampadine al riasparmio energetico più di 10 volte al giorno ne dimezza la durata, secondo me piuttosto che tagliare le lampadine tradizionali avrebbero fatto meglio a procedere con gli investimenti sulle led.

mortimer86
10-02-2009, 12:10
...mmmh ... mi sa che qui c'è lo zampin di Douglas Adams... :)

Gnubbolo
10-02-2009, 12:53
corso di matematica computazionale, teoria degli errori, anno secondo, qualcuno dovrebbe iscriversi ad informatica prima sparare su certi forum :)

g4be
10-02-2009, 13:02
veramente l'essenza del calcolatore elettronico è proprio la sua precisione finita che non gli consente di trattare un numero con una precisione infinita come puoi fare tu...

in effetti il pi greco è un concetto geometrico più che un numero, e per un calcolatore il numero è un oggetto con una precisione finita e prestabilita... poi sono gli algoritmi e la loro qualità a determinare la precisione di un qualsiasi calcolo matematico

Cymonk
10-02-2009, 13:10
gabi: Qualcuno ha parlato di "macchinari in ambito medico diagnostico"? No

Qualcuno ha forse parlato che assolutamente non si possano usare in quell'ambito? NO

Gabi, la mia era una mera speranza, definiamola introduttiva al problema che oggi tutti rincorrono IMPROVVISAMENTE il risparmio energetico.

La mia paura era: per risparmiare energia non faranno diagnosi sbagliate? (provocazione!!)

Per risparmiare energia non riempiranno il terreno di mercurio? (pericolosa e possibile realtà!)

Quindi concludo dicendo una notizia di questo genere tre anni fa sarebbe stata accontanata tra quelle ridicole, oggi addirittura le aziende ne fanno bandiera per ottenere attenzione, in nome del risparmio energetico.

floc
10-02-2009, 13:18
? e' un discorso senza capo ne' coda, ti pare che una diagnosi sbagliata sia riconducibile a un chip probabilistico!?!?

songohan
10-02-2009, 13:21
Boh. Non credo che per veicolare le telefonate ci sia bisogno di chip 7 - sette! - volte più veloci degli attuali, e forse nemmeno per lo streaming audio - video.
Per l'elaborazione grafica professionale, invece, dubito ci si possa permettere anche il minimo errore: immaginate architetti o ingegneri sbagliare disegni, calcoli, misure...
Idem in ambito medico.
Probabilmente l'articolo è molto ma molto impreciso a riguardo.

Cymonk
10-02-2009, 13:26
Non voglio aprire polemiche infinite FLOC, ma quantomeno leggere quello che ho scritto sarebbe utile a dare una risposta corretta, sia che tu condivida, sia che non condivida in modo assoluto. ;)

SwatMaster
10-02-2009, 13:31
Boh. Non credo che per veicolare le telefonate ci sia bisogno di chip 7 - sette! - volte più veloci degli attuali, e forse nemmeno per lo streaming audio - video.
Per l'elaborazione grafica professionale, invece, dubito ci si possa permettere anche il minimo errore: immaginate architetti o ingegneri sbagliare disegni, calcoli, misure...
Idem in ambito medico.
Probabilmente l'articolo è molto ma molto impreciso a riguardo.

Quoto. Tutti questi allarmismi sono pressochè inutili. Un chip del genere verrà senza dubbio applicato dove la precisione non è necessaria; usato in altri ambiti, ci farebbe letteralmente crollare il mondo addosso.
In ambito di calcoli astronomici, sarebbe praticamente come oscurare il cielo. Su un telefono -come l'articolo fa notare- non sarebbe poi malaccio.

arunax
10-02-2009, 14:05
OT: Chi è che ha scritto che Pi più che un numero è "un concetto geometrico"? Pi è un numero, e pure uno dei più importanti :D e si può definire in maniera del tutto indipendente dal suo significato geometrico ( http://it.wikipedia.org/wiki/Pi_greco#Analisi ).

IT: L'idea non è affatto male... si parla di imprecisioni prevedibili tramite calcolo della probabilità (come quelle che in ogni caso si verificano sui bit, immagino, ma maggiori), quindi per alcune tipologie di calcolo, per cui è necessario calcolare molti numeri con una precisione non eccessiva, potrebbero essere molto più efficienti degli attuali.

-MiStO-
10-02-2009, 14:59
x Misto la cosa è un po' diversa che per il controllo degli errori nei dati. Il calcolo non ha ridondanza e non la si può creare se non facendo 2 volte lo stesso calcolo dimezzando la potenza del chip, sempre che il ratio di errore sia inferiore a 0.5.

correttissimo, trovando il modo di creare questa ridondanza (come non saprei, a parte come dici tu ripetere il calcolo, o parallelizzarlo su più unità) dopo si potrebbe scegliere il + probabile

l'essenza del calcolatore elettronico e' la sua precisione... :rolleyes:
vogliono introdurre cpu tarocche per solo degradare i dati.. :rolleyes:
fuzzy pixel e menate varie...
:doh:
magari volevi dire la sua precisione finita...
leggetevi giusto un introduzione di un corso qualsiasi, come ha già detto qualcuno, su calcolo numerico/ scientifico e poi ne riparliamo :)
http://it.wikipedia.org/wiki/Calcolo_scientifico

si parla di imprecisioni prevedibili tramite probabilità quindi per alcune tipologie di calcolo, per cui è necessario calcolare molti numeri con una precisione non eccessiva, potrebbero essere molto più efficienti degli attuali.
quoto, molti perdono di vista la questione: non è che adesso questo metodo sarà applicato a cascata sempre e comunque in ogni caso :fagiano:

demon77
10-02-2009, 15:08
43.212 x 125.634 = ????

Mmmm.. mah.. PARECCHIO! :D :D :D

ElBizio
10-02-2009, 15:11
due osservazioni:
1) è impreciso parlare di imprecisione :D si parla di risultati probabilistici, che è diverso. un risultato impreciso può essere 2 + 2 = 3.9; un risultato probabilistico significa che 2 + 2 dà 9 volte su 10 4, e una volta su 10 un risultato che non c'entra niente (ad es. 9329532). nel caso del colore di un pixel in una texture te ne frega il giusto ovviamente, in altri casi beh...


infatti, hai centrato il problema

- Il risultato di una operazione imprecisa è un numero e non saprai mai se è giusto o sbagliato
- Il risultato di una operazione probabilistica è un numero che può essere o giusto o sbagliato

Siccome, alla fine è di algebra (abbene si, cpu e gpu alla fine fanno 1+1) quello di cui stiamo parlando, continuando nell'esempio da te proposto, ci si mette un attimo a verificare il risultato; se entra in un range di valori il risultato è CERTAMENTE CORRETTO; in caso contrario è CERTAMENTE ERRATO (e puoi permetterti di rifare il conto fino a sette volte....)

ciao

-MiStO-
10-02-2009, 15:16
Continuo a non capire come la crittografia possa essere considerato un campo di applicazione...

Se uso una chiave non deterministica, un algoritmo di codifica non deterministico, ed una decodifica non deterministica, come posso sperare di ottenere qualcosa di utile, pur in un settimo del tempo e spendendo solo il 70% di energia?
sinceramente lascia un po' perlpesso pure me sta cosa...:stordita:

Rufus86
10-02-2009, 15:22
Il concetto è elementare: meglio un chip che ha un 20% di errori ma che va a 1.000 (risultato: 800 di efficienza) che uno che ha solo un irrisorio 1% di errori ma che va a 100 (risultato: 99 di efficienza).

Il punto è che sarebbe troppo semplice se fosse così, tutti lo avrebbero già fatto da quel dì vista la banalità del concetto, evidentemente un aumento della percentuale di errori comporta non pochi problemi a livello di codice, problemi che la maggior potenza non compensa.

Suppongo che quasi tutti i software richiedano una bassa percentuale di errori a prescindere dalla potenza, nel senso che sopra una certa soglia di errori, anche se nella teoria l'applicazione girerebbe più veloce, nella pratica smetterebbe di funzionare.

graphixillusion
10-02-2009, 15:33
Non esiste. La mia esigenza è quella di avere prestazioni e precisione di elaborazione coniugati ad una massima efficienza energetica. Questi escamotage li trovo prettamente inutili...

Drizzt
10-02-2009, 15:55
Beh, in caso di dubbi, leggere l'articolo originale male non fa...

mirkonorroz
10-02-2009, 16:00
Algoritmi a retroazione ?

:)

songohan
10-02-2009, 16:26
Nel testo originale si parla di "uncertainty" che si deve tradurre correttamente con "incertezza". Allora si capisce che il discorso che faceva un altro commentatore era quello giusto:

2 + 2 nove volte su dieci farà 4, una volta farà X

ma quell'unica volta è già presa in considerazione al giorno d'oggi; solo che da ora in poi con i PCMOS sarà eletta a parte integrante della logica produttiva e non come semplice quanto inevitabile effetto collaterale delle tecnologie impiegate.

yossarian
10-02-2009, 16:29
No, si va proprio alla ricerca dell'imprecisione, nel senso che si sfrutta il rumore per ottenere una maggiore efficienza. Penso sia questa la novità.

non è esattamente così. Al diminuire delle dimensioni, alcuni fenomeni non voluti, nei circuiti cmos, diventano sempre più difficili e costosi da contenere (current leakage, transistor latch-up, accoppiamenti capacitivi tra conduttori, ecc). Questi fenomeni inducono un peggioramento del SNR. Alcuni di questi, di fatto, rallentano anche la trasmissione dei segnali (ad esmepio gli accoppiamenti capacitivi indesiderati) e quindi vanno comunque limitati, anche se si perseguono le prestazioni assolute a scapito della precisione di calcolo. Altri, tipo il current leakage, oltre certi limiti fanno aumentare i consumi del chip (nella migliore delle ipotesi :D ) e vanno ugualmente limitati. L'effetto di altri ancora non ha impatto sulle prestazioni o sui consumi e può essere parzialmente trascurato. L'idea è quella di ridurre i costi limitando la tipologia delle tecnologie adoperate al minimo indispensabile. Di fatto, questo chip sono utilizzabili solo negli ambiti in cui l'errore è facilmente prevedibile e corregibile e non trova applicazione in tutti gli ambiti. Ad esempio, non può essere applicato nei casi in cui, oltre alle difficoltà previsionali, si ha il rischio di propagazione degli errori perchè l'errore cade all'inizio di una lunga catena di calcoli (non è pensabile una gpu o una cpu GP progettata con questi criteri).

sicuramente ci sono degli ambiti di applicazione per cui questa tecnologia può andare bene ma vanno anche ben circoscritti. mi spiego. l'esempio del router o della scheda video così come sono concepiti adesso non possono reggersi in piedi:
- il firewall dev'essere per forza un'applicazione "precisa", nel senso che non è concepibile che su 4 volte che provo ad entrare una magari mi lascia passare; piuttosto avrebbe senso nella distribuzione del carico su più server (il classico load balance)
- le schede grafiche sono così complesse che se sfolli un calcolo a monte hai una valanga di artifatti e problemi di visualizzazione a valle... anche qui devi circoscrivere bene l'ambito... finchè si tratta di sfollare il colore del pixel che va su una texture ok, quando metti un vertice da tutt'altra parte beh qualche problema nasce

due osservazioni:
1) è impreciso parlare di imprecisione :D si parla di risultati probabilistici, che è diverso. un risultato impreciso può essere 2 + 2 = 3.9; un risultato probabilistico significa che 2 + 2 dà 9 volte su 10 4, e una volta su 10 un risultato che non c'entra niente (ad es. 9329532). nel caso del colore di un pixel in una texture te ne frega il giusto ovviamente, in altri casi beh...
2) non vedo ambiti in cui un chip probabilistico possa non essere affiancato da un chip tradizionale

nota a margine: mi fa ridere che si è passati alla "rivoluzione digitale" in cui tutto è quantizzato nel sistema più semplice (il binario) così da avere per l'appunto la massima precisione possibile e poi si continuano ad introdurre elementi che vanno esattamente nel verso opposto (dalle compressioni distruttive a queste trovate qua). per tanto così torniamo all'analogico, per mettere un modulatore digitale probabilistico basato sul codec salcazzo a questo punto si metta direttamente un transistor o un mosfet e buonanotte :D

nei fatti, la digitalizzazione di dati facenti parte di uno spazio continuo non aumenta la precisione ma, anzi, introduce degli errori (di campionamento, quantizzazione e ricostruzione). Il vantaggio dei segnali digitali è che possono essere trasferiti in modo più semplice, con meno rischi di errori e, soprattutto, che possono essere manipolati a piacimento

songohan
10-02-2009, 17:00
[...] Il vantaggio dei segnali digitali è che possono essere trasferiti in modo più semplice, con meno rischi di errori e, soprattutto, che possono essere manipolati a piacimento

Ma infatti! Spesso si fa molta confusione in questo. Grande :-)

wlog
10-02-2009, 17:28
gabi: Qualcuno ha parlato di "macchinari in ambito medico diagnostico"? No

Qualcuno ha forse parlato che assolutamente non si possano usare in quell'ambito? NO


E invece è un ambito in cui questo aspetto sta andando molto... come le ricostruzioni tomografiche.


Una notizia per tutti: ragazzi, non vi scaldate. Questa cosa è stata inventata negli anni 70 e ormai è implementata su OGNI calcolatore.


Negli anni 70 si accorsero che, dato che la precisione del computer è finita, si sarebbe potuto calcolare i risultati per approssimazioni successive, fermandosi quando l'errore era abbastanza piccolo, piuttosto che usare il classico metodo diretto.

Oggi questa pratica, che ha preso il nome di algoritmi iterativi, è molto diffusa. Ad esempio TUTTE le schede grafiche usano questa tecnica, TUTTI i sistemi operativi usano questa tecnica, e cosi via...

Semplicemente hanno preso una idea e l'hanno messa su un circuito, invece che tenerla nel software.

Poco male. Però di sicuro non parlerei di grossa novità.

yossarian
10-02-2009, 17:38
E invece è un ambito in cui questo aspetto sta andando molto... come le ricostruzioni tomografiche.


Una notizia per tutti: ragazzi, non vi scaldate. Questa cosa è stata inventata negli anni 70 e ormai è implementata su OGNI calcolatore.


Negli anni 70 si accorsero che, dato che la precisione del computer è finita, si sarebbe potuto calcolare i risultati per approssimazioni successive, fermandosi quando l'errore era abbastanza piccolo, piuttosto che usare il classico metodo diretto.

Oggi questa pratica, che ha preso il nome di algoritmi iterativi, è molto diffusa. Ad esempio TUTTE le schede grafiche usano questa tecnica, TUTTI i sistemi operativi usano questa tecnica, e cosi via...

Semplicemente hanno preso una idea e l'hanno messa su un circuito, invece che tenerla nel software.

Poco male. Però di sicuro non parlerei di grossa novità.

si tratta di cose differenti. Un conto è dire: ok, è impossbile ottenere calcoli precisi al 100%, per cui mi accontento di minimizzare l'errore; un altro è quello di dire: faccio ricorso ad architetture e tecnologie che non mi permettano, in ogni situazione, di minimizzare il più possibile l'errore. Il metodo iterativo è usato in tutti i circuiti elettronici ma in alcuni ambiti si cerca di ridurre al minimo la possibilità che l'errore cresca al punto da portare ad errori macroscopici nei risultati. Tipicamente, questo vale per applicazioni in cui la precisione di calcolo è fondamentale perchè la catena delle operazioni è molto lunga e/o perchè l'errore è difficile da prevedere e, quindi, da correggere. Lo stesso avviene a livello di SW: ci sono calcoli in cui posso accontentarmi di termini d'errore del 3° ordine; in alrti casi devo arrivare al 5° o oltre. Ci sono algoritmi più sofisticati e altri meno sofisticati.

Firedraw
10-02-2009, 17:43
Dall'articolo non mi pare che sia possibile ottenere la precisione ripetendo il calcolo.



Beh, gli errori non sarebbero sempre presenti. Se su 10 calcoli, probabilisticamente, se ne sbaglia 1, basterebbe ripetere il calcolo... hai ragione 3 volte, non 2. E prendere il valore che esce 2 volte uguale.

Non ci sarebbe altro modo per stabilire se il valore restituito da un'operazione sia corretto o meno su una cpu "inaffidabile". Almeno credo!

Ovviamente sto parlando in teoria, perché nella pratica, sarebbe controproduttivo fare una cosa simile.

+Benito+
10-02-2009, 22:25
mi sembra una fesseria perchè il concetto di "piccolo errore" legato al concetto di probabilità non sussiste: se devo calcolare 3^3^3^3^3^3^3 se uno qualsiasi dei primi risultati ha un essore anche della cifra meno significativa, alla fine l'errore si propaga con la legge definita dalle operazioni successive.
Forse avrà un'applicazione, ma non credo in nessun ambito dove un errore di calcolo sia gestibile a prescindere dalla sua entità.

ARARARARARARA
10-02-2009, 23:10
bhè se sono 7 volte più veloci ma fanno errori per certe cose è un problema, ma se li sapessero anche correggere anche se magari a costo di un dimezzamento delle prestazioni per ri-elaborare il dato errato si avrebbe comunque una cpu di 3.5 volte più veloce e col 30% di energia risparmiata, non sarebbe male. Però penso che ci sia ancora molto da studiare, la ricerca deve sempre essere incentivata, purtroppo molti italiani non la pensano così in primis il nostro simpatico amicone Berlusconi, per fortuna all'estero si fa ancora ricerca e ben vengano anche queste bizzarre ricerche... meglio che niente insomma!

StateCity
10-02-2009, 23:13
veramente l'essenza del calcolatore elettronico è proprio la sua precisione finita che non gli consente di trattare un numero con una precisione infinita come puoi fare tu...
non hai capito, dato un troncamento, la precisione e' sempre prevedibile...
ma questi vogliono realizzare una CPU che il calcolo prima dice Pi=3.14158768658
e il calcolo dopo Pi=3.141594567334 :doh:

sbagliano anche il Byte !

EPIC FAIL !!!

Le utilizzeranno come CPU a basso costo da produrre in Cina,
per evitare la copia della copia, degradando il segnale da un bit all' altro...

sintopatataelettronica
11-02-2009, 08:16
infatti, hai centrato il problema

- Il risultato di una operazione imprecisa è un numero e non saprai mai se è giusto o sbagliato
- Il risultato di una operazione probabilistica è un numero che può essere o giusto o sbagliato

Siccome, alla fine è di algebra (abbene si, cpu e gpu alla fine fanno 1+1) quello di cui stiamo parlando, continuando nell'esempio da te proposto, ci si mette un attimo a verificare il risultato; se entra in un range di valori il risultato è CERTAMENTE CORRETTO; in caso contrario è CERTAMENTE ERRATO (e puoi permetterti di rifare il conto fino a sette volte....)

ciao

ma, trattandosi di probabilità, il risultato potrebbe essere nel range e quindi probabile ma comunque non esatto..
nell'esempio: se 2+2 = 9836363 è facile capire che non va bene, ma se il risultato è 5 (o 6,7,8,3) si tratta comunque di un valore "nel range" e assai probabile.. ma in ogni modo ERRATO.. quindi tutto dipende da cosa stai calcolando e quanto rilevante è la precisione del risultato..

in secondo luogo anche in eventuali tipologie di applicazione (telefono, dispositivo video analogico) non sarebbe da sottovalutare la frequenza degli errori..

e nemmeno (come già scritto in altri post) come la propagazione degli errori potrebbe trasformare una serie di piccole approssimazioni "nel range" in un risultato clamorosamente errato.

boh, non so che tipo di utilizzo reale alla fin fine si possa trovare per una simile tecnologia.. ma di certo non l'informatica attuale: tutto il vantaggio velocistico si perderebbe per la necessità di dover implementare un sistema di verifica dei risultati..

AleLinuxBSD
11-02-2009, 08:45
boh, non so che tipo di utilizzo reale alla fin fine si possa trovare per una simile tecnologia..

Penso che non lo sappia nessuno trattandosi di una tecnologia ancora in fase di studio e di cui, penso tutti, stiamo leggendo grazie a questo articolo.
Quindi si tenta di fare delle ipotesti teoriche.


ma di certo non l'informatica attuale: tutto il vantaggio velocistico si perderebbe per la necessità di dover implementare un sistema di verifica dei risultati..
In realtà ci sono diversi casi in cui avviene la verifica dei risultati, basti pensare alle lan, a quando ci colleghiamo ad internet, ecc..

La differenza di velocità risulta così elevate che, come già detto da altri, secondo me compenserebbe, anche se non penso sia adatta per un computer generico, non escludo affatto che invece sia valida per periferiche particolari.

Poi nell'articolo si parla di sistema probabilistico capace di raggiungere prestazioni fino a 7 volte maggiori.

Vuol dire che "accontentandosi" di prestazioni di "solo" 5 volte maggiori si riduce la probabilità di errore?

D3stroyer
11-02-2009, 09:00
tramite procedimenti di controllo sui bit è possibile mandare piu' volte lo stesso risultato e ridurre ancora le possibilità d'errore, senza contare il controllo "finale" sulla coerenza. Non credo che ci sarebbero poi chissà quanti errori, se quello che ho studiato è vero.

Baboo85
11-02-2009, 09:08
1+1=10 ma forse potrebbe fare anche 2? :D

Ok ho detto la ca**ata del giorno :D

flx2000
11-02-2009, 09:26
Devo dirlo. Mi sono sorbito 7 pagine di hwupgrade per le leggere SOLO delle farneticazioni di chi parla senza una minima base di conoscenza, o anche solo approssimativa dell'argomento.
Tutti i processori attuali lavorano per margine di errore, tutti i calcolatori attuali hanno un limite di precisione.
Nei processi attuali l'errore è definito e il software ne tiene conto, per cui si può limitare l'errore a priori, ovvero definendo il margine di precisione che ci si aspetta.
I processori (chiamiamoli così per semplificare) probabilistici esistono dai primi anni '70, e risolvono perfettamente le operazioni computazionali con un margine di errore previsto in anticipo, e dunque trascurabile.
Come vedete, non sono poi così diversi, semplicemente ad oggi è il software che deve essere predisposto per concepire e sfruttare l'errore, mentre il tentativo che si vuole portare avanti con questa nuove CPU è che sia la CPU stessa a tutelare il programmatore dagli errori che si prevedono.
Dunque, l'equilibrio che esiste oggi resterebbe invariato, ma si vuole dimostrare che in quest'altro approccio si possono ottenere velocità e consumi ridotti.

wlog
11-02-2009, 09:57
Devo dirlo. Mi sono sorbito 7 pagine di hwupgrade per le leggere SOLO delle farneticazioni di chi parla senza una minima base di conoscenza, o anche solo approssimativa dell'argomento.
Tutti i processori attuali lavorano per margine di errore, tutti i calcolatori attuali hanno un limite di precisione.
Nei processi attuali l'errore è definito e il software ne tiene conto, per cui si può limitare l'errore a priori, ovvero definendo il margine di precisione che ci si aspetta.
I processori (chiamiamoli così per semplificare) probabilistici esistono dai primi anni '70, e risolvono perfettamente le operazioni computazionali con un margine di errore previsto in anticipo, e dunque trascurabile.
Come vedete, non sono poi così diversi, semplicemente ad oggi è il software che deve essere predisposto per concepire e sfruttare l'errore, mentre il tentativo che si vuole portare avanti con questa nuove CPU è che sia la CPU stessa a tutelare il programmatore dagli errori che si prevedono.
Dunque, l'equilibrio che esiste oggi resterebbe invariato, ma si vuole dimostrare che in quest'altro approccio si possono ottenere velocità e consumi ridotti.


esatto quoto. E io faccio matematica computazionale quindi di queste cose un po me ne intendo (ma non ho la tua voglia di scrivere di lavoro :D:P)

Grees
11-02-2009, 12:48
lo vedo bene negli smartphone...il gracchio lo possiamo tollerare...e in oltre il consumo energetico sarebbe minore...quindi lo trovo un vantaggio!...per altri sistemi per esempio un pc....oppure in amito medico meglio evitare non è nemmeno da proporre una cosa del genere!

yossarian
11-02-2009, 13:10
Devo dirlo. Mi sono sorbito 7 pagine di hwupgrade per le leggere SOLO delle farneticazioni di chi parla senza una minima base di conoscenza, o anche solo approssimativa dell'argomento.
Tutti i processori attuali lavorano per margine di errore, tutti i calcolatori attuali hanno un limite di precisione.
Nei processi attuali l'errore è definito e il software ne tiene conto, per cui si può limitare l'errore a priori, ovvero definendo il margine di precisione che ci si aspetta.
I processori (chiamiamoli così per semplificare) probabilistici esistono dai primi anni '70, e risolvono perfettamente le operazioni computazionali con un margine di errore previsto in anticipo, e dunque trascurabile.
Come vedete, non sono poi così diversi, semplicemente ad oggi è il software che deve essere predisposto per concepire e sfruttare l'errore, mentre il tentativo che si vuole portare avanti con questa nuove CPU è che sia la CPU stessa a tutelare il programmatore dagli errori che si prevedono.
Dunque, l'equilibrio che esiste oggi resterebbe invariato, ma si vuole dimostrare che in quest'altro approccio si possono ottenere velocità e consumi ridotti.

eri partito bene ma ti sei perso per strada :D . Tutto il discorso che hai fatto non c'entra nulla con l'argomento dell'articolo e neppure con quelli che definisci "processori probabilistici". Per chiarirti le idee, dai un'occhiata anche a questo
http://www.pctuner.net/news/10621/I-chip-probabilistici-stanno-per-cambiare-l-industria-delle-CPU/

http://www.technologyreview.com/nanotech/20246/

Precisiamo alcune inesattezze:
1) non è vero che al diminiure delle dimensioni aumenta il rumore; la cosa è molto più complessa da precisare e non è questa la sede opportuna :D . Diciamo che al diminuire delle dimensioni vengono enfatizzatoi alcuni problemi che portano ad un peggioramento del SNR. Per ovviare a questi inconvenienti si fa ricorso a particolari tecnologie che, seppur in maniera minima, limitano le prestazioni di un chip (mi viene in mente, ad esempio, la SOI di IBM). Quando si effettua uno shrimk, al contrario, le tensioni di alimentazione vengono abbassate rispetto al pp precedente e anche questo determina un degrado del SNR in quanto introduce una compressione dei livelli di quantizzazione. Motivo per cui è necessario adottare certi accorgimenti per minimizzare i disturbi (in pratica dsi deve abbassare la cifra di rumore a valori relativi, se possibile, inferiori al pp precedente, in rapporto all'intensità del segnale). L?abbassamento della tensione d'alimentazione è tanto più necessaria nei pp che comportino la revisione dei rapporti tra le geometrie del chip.
2) non è vero che gli attuali processori restituiscano risultati approssimati: il metodo iterativo dà, in moltii casi, risultati esatti; l'errore si introduce nel momento in cui si fanno degli arrotondamenti e, in ogni caso, il chip tende a minimizzare l'errore facendo uso di algoritmi che si appoggiano a strutture HW. Tra l'altro, uno dei metodi per diminuire il problema connesso alla propagazione degli errori è quello di aumentare la precisione di calcolo (fp32, fp64, ecc). E lo si fa in HW e non via SW, facendo uso di registri e di alu che possono lavorare a 32, 64, 128 bit.
3) non è vero che gli attuali chip si affidano solo ad algoritmi SW per "prevedere" e correggere gli errori. Gli algoritmi di predicated sono affiancati, nella stragrande maggioranza dei casi, da soluzioni che prevedono l'uso di branching dinamico che fanno uso di circuiti dedicati. Quindi, nei chip attuali, la previsione e la minimizzazione degli errori avviene in HW e via SW (ma sfruttando risorse HW).

Questi chip non nascono con lo scopo di spostare dal SW all'HW le operazioni di minimizzazione degli errori, anzi, sui questi chip ci sarà meno HW dedicato alla minimizzazione degli errori rispetto agli attuali
L'argomento di cui parla l'articolo riguarda il futuro, non immediato, in cui, superata la soglia dei 10 nm, le attuali tecnologie fotolitografiche non saranno più sufficienti ed è riportato in uno dei due articoli linkati.

flx2000
11-02-2009, 15:31
Hai ragione tu. Ho scritto al contrario! (e nessuno mi ha corretto...)
I chip attuali correggono gli errori, hanno pure più di un algoritmo alla volta che fa questo lavoro, e infatti restituiscono risultati precisi (diamo per scontato che l'approssimazione nota non è certo un errore).
I chip probabilistici non possono correggere gli errori, ma il software può richiedere più verifiche per ottenere il risultato preciso partendo da risultati errati ma che nell'insieme tendono all'esatto. La forza sta nel fatto che, ogni volta che il risultato non debba essere necessariamente perfetto ma semplicemente accettabile, è possibile ridurre drasticamente il tempo del calcolo, in maniera esponenziale tanto meno è richiesta la precisione.

PS: il termine "processori probabilistici" l'ho definito per semplificare il testo e ho scritto chiaramente che è usato a sproposito. Parlavo infatti delle cosiddette reti neurali che, nei primi anni '70, dimostrarono che immettendo del "rumore" nei calcoli era possibile ottenere i risultati previsti e sopratutto che era possibile farlo con minori informazioni iniziali.
Credo che anche l'idea di una computazione di tipo quantistico sia figlia di assunti come questo.

pgb
11-02-2009, 16:29
Voler forzare le cose pretendendo di adattare una nuova tecnologia (se così si può chiamare una tecnologia che ha 40 anni) a quella presente è un po' esagerato: se questo chip introduce qualcosa di nuovo, tutta la tecnologia su cui si volesse implementare va ripensata o perlomeno adattata al suo funzionamento: in parole povere non è che fino ad oggi su una scheda o un dispositivo si sono avuti chip precisi, oggi li togliamo e ci mettiamo quelli imprecisi.
Ovvio che così non funzionerebbero più e non funzionerebbero bene le cose che siamo abituati ad usare o gli schemi coi quali siamo abituati a pensare.

Gli esempi tipo il lettore di CD lasciano il tempo che trovano: non servono processori da 1 GHz per leggere un CD, anche se un PC-MOS mi farebbe durare più le batterie (ammesso e non concesso che sia l'elaborazione del segnale a consumarle. Si sa però che consuma più il laser e il motore che fa girare il disco piuttosto che l'elettronica di elaborazione/controllo).

Perché non dovrebbero essere usati in campo medico o finanziario (in quest'ultimo, tanto, peggio di così... :ciapet: )? Se di una cosa si sa come funziona, su quello si basa anche il funzionamento dei dispositivi che la implementano.

Poi bisognerebbe pensare un po' in binario: l'errore che si può avere è fra lo zero o l'uno, non fra 28 e 4.576. Se l'errore non viene 'corretto' o rilevato durante tutto l'iter (supponiamo un bel milione di operazioni) allora sì che può darsi che invece di 28 esca 4.576. A livello di bit imprecisione o errore coincidono poiché sono possibiili SOLO due valori. A livello di risultati finali riconvertiti in decimale no. Comunque sia non è che si ha 50% di probabilità che esca un risultto o un altro: tendenzialmente il chip funziona in modo corretto. In alcune occasioni il rumore di fondo è maggiore del segnale e quando accade magari scappa l'errore (sul bit).

Nel campo delle telecomunicazioni, quando si spara un segnale in aria, questo può degradarsi talmente tanto (causa riflessioni, attenuazioni, sovrapposizioni...) che un 1 trasmesso può essere ricevuto come 0 (e viceversa) eppure mi sembra che le telecomunicazioni funzionino oggi (almeno tecnicamente): tutti vediamo la TV satellitare, telefoniamo col cellulare, navighiamo con UMTS, GPRS, Bluetooth... quindi vuol dire che a fronte di spese su sequenze di controllo dei dati ed elaborazione, gli errori (o le imprecisioni) si riescono a correggere. Certo: tutto parte da un procedimento deterministico, ma poi durante la trasmissione incontra l'elemento aleatorio e non sai quale e quanti bit sono stati cambiati... sai solo che magari su 8 ci devono essere 5 uni e 3 zeri e se non ti torna ripeti la trasmissione.

devo vedere se mi è rimasto un Pentium 60 col baco... oggi varrà oro! :D
Mi sa di no... quello è un processore col baco deterministico (cioè padella smpre e comunque solo quel bit in quella operazione)

l'essenza del calcolatore elettronico e' la sua precisione... :rolleyes:
vogliono introdurre cpu tarocche per solo degradare i dati.. :rolleyes:
fuzzy pixel e menate varie...
Sì... e il grande fratello ci spia... No, dai... scherzavo... no, non prtatemi via... non ho fatto nien... :Prrr:

...Siccome, alla fine è di algebra (abbene si, cpu e gpu alla fine fanno 1+1)...
Nooo, fa anche alto + alto, o basso + basso, o alto + basso o basso + alto :sofico:

Nel testo originale si parla di "uncertainty" che si deve tradurre correttamente con "incertezza".

Questo sarebbe un punto fondamentale se non fosse che implica di ripetere il calcolo più volte, prendere la media dei risultati, lo scarto quadratico medio ed esprimere il risultato in loro funzione: potrebbe essere cioè 2+2= 4,11 (più o meno) 0,25. Però se il calcolo lo fai una volta sola potrebbe venire 2+2 = 5 (più o meno) 1. Siamo da capo: cosa si fa allora?
L'incertezza di un risultato composito è la somma dei valori medi che lo compongono (più o meno) la radice della somma delle loro incertezze al quadrato... beh... mi sono infrenato...
Comunque vanno considerate le singole somme e sottrazioni fra bit e la loro incertezza.

IT: L'idea non è affatto male... si parla di imprecisioni prevedibili tramite calcolo della probabilità (come quelle che in ogni caso si verificano sui bit, immagino, ma maggiori), quindi per alcune tipologie di calcolo, per cui è necessario calcolare molti numeri con una precisione non eccessiva, potrebbero essere molto più efficienti degli attuali.
Si arriva al solito discorso: in alcuni campi è meglio sapere che 2 + 2 fa circa 4 (o anche 5) ma in tempi rgionevolmente brevi piuttosto che sapere che fa 3,99 (più o meno) 0,2 in tempi maggiori.

All fine (o dall'inizio?) tutto si riduce alla corretta applicazione di questi chip nei campi e nei modi adeguati (e ricordo che sia la finanza che la medicina possono esserlo): è ovvio che se vado in montagna di inverno mi devo vestire pesante... sennò mi ammalo. Però potrebbe esserci un sole che spacca le pietre e in quel caso muoio dal caldo.

p.s.: anche io ho fatto l'errore, anche qui, di voler attribuire esempi e ragionamenti deterministici a un qualcosa che è probbilistico. Spero mi perdonerete :D

sintopatataelettronica
11-02-2009, 16:52
infatti secondo me per applicazioni pratiche servono campi specifici dove l'esattezza del computo non è essenziale o comunque sviluppo di nuove logiche computazionali, in quanto anche un eventuale verifica su una serie di risultati affidandosi al più "probabile" potrebbe comunque dare un errore non accettabile..

la probabilità è probabilità: se 2+2 dà 4 .. un calcolo probabilistico con range di attendibilità "stretto" (tipo da 1 a 10 ? come dicevo prima un 9876353 come risultato è facile da scartare, ma altri risultati non sono altrettanto improbabili) mi può dare una serie di risultati di qualunque tipo, non ho comunque modo di verificare che il risultato più frequente sia quello giusto.. posso avere, su 10 prove, 5 esiti che dicono "5", 3 che dicono "4" , 1 che dice "3" e uno che dice "7".. il risultato più probabile verrebbe considerato un plausibile (ma errato) "5"..

come scriveva pgb sopra, nella logica computazionale "tradizionale" è più utile sapere che 2+2 può fare 3 o 4 o 5 (o 6 o 7 o 8 o 9... non so che tipo di range sia applicabile alla "plausibilità" del risultato) oppure avere un numero certo che sia 3.9999999 o 4,0000001 con tempi di calcolo maggiori ?

comunque è giusto e bello che si studino possibilità alternative, la scienza e la tecnologia procedono così.. magari ora per l'informatica attuale non sono adatti a sostituire le cpu tradizionali, ma in futuro.. chi può dirlo se non saranno la base per innovazioni ora impensabili ?

wlog
11-02-2009, 17:15
ragazzi ve lo ripeto: il 90% degli algoritmi che voi usate sono iterativi, cioè non danno neanche nella migliore delle ipotesi un risultato corretto, ma passano attravero un guess iniziale, a volte adirittura random, verso passi di precisione successivi.

Esattamente come questi PCMOS... I metodi diretti sono passati di moda negli anni '70!!!

yossarian
11-02-2009, 17:49
Hai ragione tu. Ho scritto al contrario! (e nessuno mi ha corretto...)
I chip attuali correggono gli errori, hanno pure più di un algoritmo alla volta che fa questo lavoro, e infatti restituiscono risultati precisi (diamo per scontato che l'approssimazione nota non è certo un errore).
I chip probabilistici non possono correggere gli errori, ma il software può richiedere più verifiche per ottenere il risultato preciso partendo da risultati errati ma che nell'insieme tendono all'esatto. La forza sta nel fatto che, ogni volta che il risultato non debba essere necessariamente perfetto ma semplicemente accettabile, è possibile ridurre drasticamente il tempo del calcolo, in maniera esponenziale tanto meno è richiesta la precisione.



qui si parte da un'assunto differente: utilizzo meno accorgimenti per minimizzare l'errore, a partire da quelli adottati per ovviare a inconvenienti tipo transistor latch-up o accoppiamenti capacitivi tra conduttori; riduco al minimo la logica di controllo e reputo accettabile una certa percentuale di errore, a condizione che l'errore sia prevedibile. Motivo per cui ritengo che questi chip non siano adatti a tutti gli usi ma solo per quegli ambiti in cui non occorrono algoritmi o circuiti predittivi particolarmente sofisticati. La maggior velocità la ottengo grazie soprattutto al fatto che la logica di controllo è ridotta al minimo e non impiego troppi cicli di clock per svolgere operazioni differenti da quelle computazionali.
L'aver accettato una maggior tolleranza agli errori implica la possibilità di far uso di tensioni di alimentazione inferiori rispetto a quelle dei chip tradizionali (che si traduce in un risparmio energetico). il fatto di evitare di utilizzare spazio per strutture isolanti o per circuiti logici complessi, mi permette di ricavare più spazio per le unità di calcolo.

ragazzi ve lo ripeto: il 90% degli algoritmi che voi usate sono iterativi, cioè non danno neanche nella migliore delle ipotesi un risultato corretto, ma passano attravero un guess iniziale, a volte adirittura random, verso passi di precisione successivi.

Esattamente come questi PCMOS... I metodi diretti sono passati di moda negli anni '70!!!

un algoritmo iterativo non necessarriamente restituisce un risultato errato o approssimato; inoltre si parla di argomenti differenti e non attinenti alla diatriba metodi diretti vs algoritmi iterativi. Dai un'occhiata ai link postati in precedenza.

wlog
11-02-2009, 17:57
si parla di argomenti differenti e non attinenti alla diatriba metodi diretti vs algoritmi iterativi.

che differenza c'è tra un algoritmo iterativo è uno probabilistico?


strano perchè il cormen:

http://books.google.com/books?id=NLngYyWFl_YC&printsec=frontcover&dq=Introduction+to+Algorithms&ei=kRCTScPRGo-SMtqWibIK#PPR7,M1

segnala gli algoritmi probabilistici come una sotto classe di quelli iterativi.

yossarian
11-02-2009, 18:20
che differenza c'è tra un algoritmo iterativo è uno probabilistico?


strano perchè il cormen:

http://books.google.com/books?id=NLngYyWFl_YC&printsec=frontcover&dq=Introduction+to+Algorithms&ei=kRCTScPRGo-SMtqWibIK#PPR7,M1

segnala gli algoritmi probabilistici come una sotto classe di quelli iterativi.

il fatto che uno possa rientrare in una sottoclasse dell'altro non porta ad identificarli. Un algoritmo iterativo richiede la ripetizione della stessa operazione fino all'ottenimento del risultato desiderato (o alla scoperta che il risultato non è ottenibile :D ) e può essere anche la moltiplicazione tra due numeri interi, che dà un risultato esatto; un algoritmo probabilistico può essere quello implementato in un gioco epr pc che richiede l'interazione con il giocatore (manca un dato per avere un risultato esatto e questo dato può essere la mossa del giocatore; per cui il pc tentde a cercare di indovinare cosa avverrà o calcola tutte le possibili alternative). Questo può essere fatto epr via iterativa ma non identifica con probailistici tutti glia lgoritmi iterativi.

Qui si parla di un'altra cosa ancora, ovvero di chip progettati senza tener conto di tutta una serie di accorgimenti volti a migliorare il SNR e minimizzare gli errori di calcolo.
Lo scopo è semplice: risparmiare spazio, risparmiare soldi e risparmiare tempo.
A patto, ovviamente, che questi errori siano prevedibili e, di conseguenza, correggibili. :D

wlog
11-02-2009, 18:31
il fatto che uno possa rientrare in una sottoclasse dell'altro non porta ad identificarli. Un algoritmo iterativo richiede la ripetizione della stessa operazione fino all'ottenimento del risultato desiderato (o alla scoperta che il risultato non è ottenibile :D ) e può essere anche la moltiplicazione tra due numeri interi, che dà un risultato esatto; un algoritmo probabilistico può essere quello implementato in un gioco epr pc che richiede l'interazione con il giocatore (manca un dato per avere un risultato esatto e questo dato può essere la mossa del giocatore; per cui il pc tentde a cercare di indovinare cosa avverrà o calcola tutte le possibili alternative). Questo può essere fatto epr via iterativa ma non identifica con probailistici tutti glia lgoritmi iterativi.


mi fai un esempio di algoritmo probabilistico non iterativo non banale (quindi non vale il random number generator)?

In tutta la mia carriera non ne ho incontrato uno.


Qui si parla di un'altra cosa ancora, ovvero di chip progettati senza tener conto di tutta una serie di accorgimenti volti a migliorare il SNR e minimizzare gli errori di calcolo.
Lo scopo è semplice: risparmiare spazio, risparmiare soldi e risparmiare tempo.
A patto, ovviamente, che questi errori siano prevedibili e, di conseguenza, corregibili. :D

e in cosa cambia da un algoritmo iterativo? risparmi soldi, spazio e tempo in cambio di un po di errore. In parole povere: l'informatica.

yossarian
11-02-2009, 18:48
mi fai un esempio di algoritmo probabilistico non iterativo non banale (quindi non vale il random number generator)?

In tutta la mia carriera non ne ho incontrato uno.



sei tu ad aver fatto un'assunzione priva di fondamento: se probabilistico è una sottoclasse di iterativo, allora non vale l'equivalenza iterativo=rpobabilistico (semmai sarà un suo sottoinsieme). Ti ho fatto un esempio di algoritmo iterativo che dà un risultatp esatto (ed è molto usato in cpu e gpu). E' più che sufficiente a confutare le tue tesi che iterativo equivale arisultato approssimato




e in cosa cambia da un algoritmo iterativo? risparmi soldi, spazio e tempo in cambio di un po di errore. In parole povere: l'informatica.

no, è l'informazione televisiva :D

è evidente che non ti è molto chiaro l'argomento della news.
Vai a spiegare a questo tizio

http://www.technologyreview.com/nanotech/20246/

che sta perdendo tempo a progettare una cosa che è nota a tutti da 40 anni :D

ma prima è meglio che ti documenti

http://blogs.zdnet.com/emergingtech/?p=183

ci sono 192 articoli scritti su quelli che vengono definiti "probabilistic chip" e il più vecchio è del 1996 (quindi non risale agli anni '70 e non c'entra un tubo con gli algoritmi iterativi). Se, però vuoi perseverare nelle tue convinzioni, accomodati pure.

StateCity
11-02-2009, 19:11
mi sembra una fesseria perchè il concetto di "piccolo errore" legato al concetto di probabilità non sussiste: se devo calcolare 3^3^3^3^3^3^3 se uno qualsiasi dei primi risultati ha un essore anche della cifra meno significativa, alla fine l'errore si propaga con la legge definita dalle operazioni successive.
Forse avrà un'applicazione, ma non credo in nessun ambito dove un errore di calcolo sia gestibile a prescindere dalla sua entità.
Quoto x 1000 :sofico:
l'unica applicazione e' impedire la copia 1:1 :asd:
e sembra che "qualcuno" sta' facendo di tutto x degradare i bit.. :rolleyes:
Prima nelle memorie c'era il parity bit.. ora neanche quello... :asd:
La partizione "NBCZ" srinka i file sull' HD automaticamente, senza far sapere
nulla a nessuno, magari nella speranza di perdere qualche bit.. :asd:

wlog
11-02-2009, 19:22
sei tu ad aver fatto un'assunzione priva di fondamento:


calmino con le parole: fino a prova contraria sono io quello che si sta prendendo una laurea sull'argomento...


se probabilistico è una sottoclasse di iterativo, allora non vale l'equivalenza iterativo=rpobabilistico (semmai sarà un suo sottoinsieme).


Esatto, il cormen dice che esistono algoritmi iterativi non probabilistici, ma non esistono algoritmi probabilistici non iterativi non banali. E siccome il Cormen è IL manuale di algoritmi, usato sia in piccoli dipartimenti come il mio, sia in grandi università come la Berkeley o il Caltech, preferisco dar credito a lui piuttosto che ad una persona che non conosco ;)

comunque ti ho chiesto un esempio di un algoritmo probabilistico non iterativo non banale, perchè sono aperto al confronto, perchè so che l'algoritmica si evolve molto velocemente ;)


Ti ho fatto un esempio di algoritmo iterativo che dà un risultatp esatto (ed è molto usato in cpu e gpu). E' più che sufficiente a confutare le tue tesi che iterativo equivale arisultato approssimato


E' vero, l'algoritmo che hai citato tu è presente su molti libri. Cormen incluso. Come esempio di come NON scrivere un algoritmo. Confronta con TSP problem.


ci sono 192 articoli scritti su quelli che vengono definiti "probabilistic chip" e il più vecchio è del 1996 (quindi non risale agli anni '70 e non c'entra un tubo con gli algoritmi iterativi). Se, però vuoi perseverare nelle tue convinzioni, accomodati pure.

hai trovato cose fino al 1996 perchè non sai cosa cercare ;) prova a cercare "randomized bucket sort" o il "randomized radix sort", credo sia degli anni 10, ed è stato implementato con dei componenti davvero imprecisi: gli uomini ;)

yossarian
11-02-2009, 19:35
calmino con le parole: fino a prova contraria sono io quello che si sta prendendo una laurea sull'argomento...




quindi?



Esatto, il cormen dice che esistono algoritmi iterativi non probabilistici, ma non esistono algoritmi probabilistici non iterativi non banali. E siccome il Cormen è IL manuale di algoritmi, usato sia in piccoli dipartimenti come il mio, sia in grandi università come la Berkeley o il Caltech, preferisco dar credito a lui piuttosto che ad una persona che non conosco ;)



puoi dar credito a chi vuoi, l'importante è che ti sia chiaro l'argomento della discussione (e non è questo il caso).



comunque ti ho chiesto un esempio di un algoritmo probabilistico non iterativo non banale, perchè sono aperto al confronto, perchè so che l'algoritmica si evolve molto velocemente ;)



Anche le tecnologie atte a progettare e realizzare un chip. Ripeto la domanda: quindi?



E' vero, l'algoritmo che hai citato tu è presente su molti libri. Cormen incluso. Come esempio di come NON scrivere un algoritmo. Confronta con TSP problem.



non ha importanza quanto bene sia scritto: è un algoritmo iterativo che confuta la tesi: iterativo=impreciso. E' sufficiente



hai trovato cose fino al 1996 perchè non sai cosa cercare ;) prova a cercare "randomized bucket sort" o il "randomized radix sort", credo sia degli anni 10, ed è stato implementato con dei componenti davvero imprecisi: gli uomini ;)

so bene cosa cercare e, tra l'altro, la ricerca non mi sono neppure preso la briga di farla, perchè l'inventore dei "probabilistic chip è membro dell'IEEE ed è dal loro archivio che è possibile attingere alle fonti (ed alle statistiche). Sei tu che non sai di cosa si sta parlando perchè, è evidente, ignori totalmente l'architettura di un chip. Che poi tu stia tentando di spostare la discussione su un argomento a te più congeniale, può essere un'iniziativa lodevole: c'è sempre qualcosa da apprendere su nuovi argomenti: Peccato che tale campo non sia in topic. Cerca di prenderti almeno la briga di leggere i link postati (almeno ti rendi conto di essere del tutto fuori strada)

wlog
11-02-2009, 19:40
l'importante è che ti sia chiaro l'argomento della discussione (e non è questo il caso).

[....]

. Sei tu che non sai di cosa si sta parlando perchè, è evidente, ignori totalmente l'architettura di un chip.

Beh non so che dirti, io ti porto come reference uno dei piu importanti manuali di algoritmica, che tra l'altro affronta l'argomento dell'architettura dei chip nel primo capitolo.


Tu invece mi rispondi che non sai di cosa sto parlando... vabbè vuol dire che lo saprai tu ;)

buona serata continua pure a rimanere convinto che tu hai ragione e i manuali hanno torto ;)

wlog
11-02-2009, 19:42
E alla fine nessuno è stato in grado di dirmi come si possa applicare alla crittografia un algoritmo non deterministico...

L'applicazione piu strabiliante è la fattorizzazione dei primi ;)


http://www.springerlink.com/content/y423065080g733n3/


aggiungo: il soloway-strassen test:

http://books.google.it/books?id=ezgnmz_Cs8oC&pg=PA19&lpg=PA19&dq=probabilistic+prime+factorization&source=bl&ots=p4Hkq5PrUj&sig=FjagHGdjCxAAF2UNTV-byFqVEbs&hl=it&ei=USyTSeKoCZW60gXVt42PCw&sa=X&oi=book_result&resnum=4&ct=result


(figo google books è? :D:D)


oppure la generazione dei numeri casuali (problema che non può essere realmente risolto a meno di non spendere svariate migliaia di euro in apparecchiature adatte)

yossarian
11-02-2009, 19:57
Beh non so che dirti, io ti porto come reference uno dei piu importanti manuali di algoritmica, che tra l'altro affronta l'argomento dell'architettura dei chip nel primo capitolo.


immagino in che termini la possa aver affrontata :D




Tu invece mi rispondi che non sai di cosa sto parlando... vabbè vuol dire che lo saprai tu ;)

buona serata continua pure a rimanere convinto che tu hai ragione e i manuali hanno torto ;)

io tiu rispondo di documentarti sull'argomento prima di sparare sentenze: c'è una differenza sostanziale tra algoritmo probabilistico e CHIP probabilistico. Il secondo non è un chip che fa uso esclusivo di algoritmi probabilistici. Altri se ne sono accorti, tu evidentemente, sei talmente preso dal parlare del tuo campo d'applicazione che non ti sei accorto che si tratta di un argomento ben diverso e relativamente nuovo (nato dall'esigenza di superare con le attuali tecnologie, il limite fisico dei 10 nm)

Saluti :)

wlog
11-02-2009, 20:03
immagino in che termini la possa aver affrontata :D


ma scusa ti ho postato la reference.... perchè non te la leggi? indicami i punti in cui non sei daccordo e sarò lieto di ascoltarti, oppure i punti che non capisci e sarò lieto di spiegarteli (al meglio delle mie possibilità).


io tiu rispondo di documentarti sull'argomento prima di sparare sentenze:


ehehehhehe altro che documentarmi... ci ho fatto gli esami sopra :D:D:D


c'è una differenza sostanziale tra algoritmo probabilistico e CHIP probabilistico.


c'è un teorema di turing che dice il contrario: non c'è ALCUNA differenza ;)


Il secondo non è un chip che fa uso esclusivo di algoritmi probabilistici. Altri se ne sono accorti, tu evidentemente, sei talmente preso dal parlare del tuo campo d'applicazione che non ti sei accorto che si tratta di un argomento ben diverso e relativamente nuovo (nato dall'esigenza di superare con le attuali tecnologie, il limite fisico dei 10 nm)

Saluti :)

Il cormen dice che è nato negli anni 70, però se tu la pensi in modo diverso... ;)

yossarian
11-02-2009, 20:38
ma scusa ti ho postato la reference.... perchè non te la leggi? indicami i punti in cui non sei daccordo e sarò lieto di ascoltarti, oppure i punti che non capisci e sarò lieto di spiegarteli (al meglio delle mie possibilità).



poichè siamo arrivati ai titoli, ti comunico che ho studiato un manuale di circa 500 pagine che parlava solo delle tecnologie dei dispositivi a semiconduttore. Non ti cito quanti ne ho letti o studiati sull'argomento "architetture dei chip". In più ho lavorato come progettista di chip. Non credo di aver bisogno di leggere quello che dice il Cormen sull'argomento; con tutto il rispetto parlando :D



ehehehhehe altro che documentarmi... ci ho fatto gli esami sopra :D:D:D



non su QUESTO argomento; non credo proprio




c'è un teorema di turing che dice il contrario: non c'è ALCUNA differenza ;)



non mi risulta




Il cormen dice che è nato negli anni 70, però se tu la pensi in modo diverso... ;)

io e tutta la comunità scientifica. La distinzione è tutt'altro che sottile :D

Comunque, questo è un estratto della news di HWU che, per quanto incompleta, lascia già intendere l'argomento. Visto che non ti prendi la briga di leggere gli altri link, indicami un solo passaggio in cui si faccia cenno a chip che fanno uso di soli algoritmi probabilistici

In questi giorni a San Francisco si è tenuta la International Solid State Circuits Conference, durante la quale alcuni ricercatori della Rice University hanno presentato un prototipo di chip chiamato PCMOS, Probabilistic CMOS. Un chip molto particolare, sette volte più veloce rispetto a quelli realizzati con la migliore tecnologia disponibile oggi e circa il 30% meno esigente in termini energetici.

Il suo segreto? L'imprecisione tollerabile. Al ridursi delle dimensioni dei transistor in un chip, il "rumore" prodotto dagli elettroni in transito cresce. Un limite questo che praticamente tutti i produttori di chip cercano di arginare, di solito con l'aumento del voltaggio di funzionamento, poiché ad un maggiore rumore corrisponde un calcolo errato o non atteso. I PCMOS fanno esattamente il contrario: si diminuisce il voltaggio, al fine di aumentare il rumore e costruire così chip magari meno precisi, ma molto più efficienti se si scende al compromesso di tollerare gli errori ottenuti. Un errore in ogni caso prevedibile a livello di probabilità.

Il risultato fornito dal chip non sarebbe quindi generato interamente da un calcolo preciso in termini matematici, come quello garantito dai chip tradizionali, ma ottenuto con una piccola approssimazione costituita dai calcoli probabilistici che tengono conto di quanto sbaglia il chip in media nel fare il suo dovere.




è stato presentato il prototipo di qualcosa che esiste da 40 anni? Ovviamente bibbia permettendo :D
Si parla di "rumore" e di imprecisione dovuta al rumore, non di imprecisione derivante dalla tipologia di algoritmi impiegati. I calcoli "probabilistici" servono solo per correggere gli errori ove questi siano facilmente prevedibili. E' probabilie che questi chip non abbiano neppure circuito di branching, tra le altre cose. E' più simile all'operazione di rimozione del fixed pattern noise da un sensore per la cattura delle immagini.


Ti riporto un aparte del link (che non hai guardato) dove parla l'inventore (Corman permettendo) dei PCMOS

Every calculation done by a microchip depends on its transistors' registering either a 1 or a 0 as electrons flow through them in response to an applied voltage. But electron*s move constantly, producing electrical "noise." In order to overcome noise and ensure that their transistors register the correct values, most chips run at a relatively high voltage. Palem's idea is to lower the operating voltage of parts of a chip--specifically, the logic circuits that calculate the least significant bits, such as the 3 in the number 21,693. The resulting decrease in signal-to-noise ratio means those circuits would occasionally arrive at the wrong answer, but engineers can calculate the probability of getting the right answer for any specific voltage. "Relaxing the probability of correctness even a little bit can produce significant savings in energy," Palem says.

Parla di tensioni, di registri, di 0 e 1 e di SNR. Cosa c'è che non ti è chiaro? Cosa c'entrano gli algoritmi iterativi?

wlog
11-02-2009, 20:54
poichè siamo arrivati ai titoli, ti comunico che ho studiato un manuale di circa 500 pagine che parlava solo delle tecnologie dei dispositivi a semiconduttore. Non ti cito quanti ne ho letti o studiati sull'argomento "architetture dei chip". In più ho lavorato come progettista di chip. Non credo di aver bisogno di leggere quello che dice il Cormen sull'argomento; con tutto il rispetto parlando :D


quindi sei un ingegnere elettrotecnico? cosa c'entra con gli algoritmi?


non su QUESTO argomento; non credo proprio


ho fatto un esame di algoritmi, 2 di teoria della probabilità, 1 di teoria della misura, 1 di calcolo scientifico, 2 di algebra numerica e 2 di teoria dei gruppi.

Se non è abbastanza ;)


non mi risulta


eppure questo è uno dei risultati fondamentali della teoria della computabilità, no anzi: il primo teorema nonchè quello principe, pubblicato in Entscheidungsproblem da Turing. Una pubblicazione che sconvolgerà l'informatica.

Ecco un paper sull'argomento:

http://l3d.cs.colorado.edu/~ctg/classes/lib/canon/turing-compnum.pdf

ti spiega che per quanto tu possa affannarti, in realtà queste cose esistevano già e non sono nulla di nuovo :D:D:D


io e tutta la comunità scientifica. La distinzione è tutt'altro che sottile :D

come fai ad essere cosi arrogante da dire che la comunità scientifica è daccordo con te? dopo che ti ho portato delle fonti che ti smentiscono ampiamente?


Comunque, questo è un estratto della news di HWU che, per quanto incompleta, lascia già intendere l'argomento. Visto che non ti prendi la briga di leggere gli altri link, indicami un solo passaggio in cui si faccia cenno a chip che fanno uso di soli algoritmi probabilistici


la novità è il chip, gli algoritmi esistono dagli anni 70.

E' come se domani facessero un chip che implementa l'algoritmo di schor.... il chip sarebbe nuovo e rivoluzionario. L'algoritmo un po meno. Non pensi?


è stato presentato il prototipo di qualcosa che esiste da 40 anni? Ovviamente bibbia permettendo :D
Si parla di "rumore" e di imprecisione dovuta al rumore, non di imprecisione derivante dalla tipologia di algoritmi impiegati. I calcoli "probabilistici" servono solo per correggere gli errori ove questi siano facilmente prevedibili. E' probabilie che questi chip non abbiano neppure circuito di branching, tra le altre cose. E' più simile all'operazione di rimozione del fixed pattern noise da un sensore per la cattura delle immagini.


Ti riporto un aparte del link (che non hai guardato) dove parla l'inventore (Corman permettendo) dei PCMOS



Cosa c'è che non ti è chiaro? Cosa c'entrano gli algoritmi iterativi?[/QUOTE]

yossarian
11-02-2009, 21:15
quindi sei un ingegnere elettrotecnico? cosa c'entra con gli algoritmi?



elettronico. Progetto l'hw su cui devono girare gli algoritmi.




ho fatto un esame di algoritmi, 2 di teoria della probabilità, 1 di teoria della misura, 1 di calcolo scientifico, 2 di algebra numerica e 2 di teoria dei gruppi.

Se non è abbastanza ;)



dipende: non sono attinenti all'argomento della news



eppure questo è uno dei risultati fondamentali della teoria della computabilità, no anzi: il primo teorema nonchè quello principe, pubblicato in Entscheidungsproblem da Turing. Una pubblicazione che sconvolgerà l'informatica.

Ecco un paper sull'argomento:

http://l3d.cs.colorado.edu/~ctg/classes/lib/canon/turing-compnum.pdf

ti spiega che per quanto tu possa affannarti, in realtà queste cose esistevano già e non sono nulla di nuovo :D:D:D



come fai ad essere cosi arrogante da dire che la comunità scientifica è daccordo con te? dopo che ti ho portato delle fonti che ti smentiscono ampiamente?



la novità è il chip, gli algoritmi esistono dagli anni 70.

E' come se domani facessero un chip che implementa l'algoritmo di schor.... il chip sarebbe nuovo e rivoluzionario. L'algoritmo un po meno. Non pensi?



hai esordito dicendo che tutti i processori fanno uso di algoritmi iterativi necessariamente imprecisi (non si sa bene su quali basi, visto che basta postare semplici algoritmi iterativi per smentirti); poi hai affermato che tutti i chip fanno uso di algoritmi probbabilistici e che quindi i PCMOS non costituiscono alcuna novità. Affermazione quanto meno opinabile, ti sei smnentito da solo dicendo che la novità è il chip e non la tipologia di algoritmi usati (allora c'è una novità, oppure no?).

Andiamo nello specifico e vediamo cosa esiste dagli anni '70.
Su quali principi si basa il funzionamento dei PCMOS? Cosa cambia rispetto ai chip "tradizionali"? Cosa implementa in più, in meno o di diverso? A quale scopo sono stati ideati?
Questo tanto per iniziare. Ma questo è già sufficinte per stabilire se si tratta di una novità oppure di qualcosa che esiste da 40 anni (tua prima affermazione che stai parzialmente correggendo con l'ammissione che il chip è una novità). :D

wlog
11-02-2009, 21:20
hai esordito dicendo che tutti i processori fanno uso di algoritmi iterativi necessariamente imprecisi (non si sa bene su quali basi, visto che basta postare semplici algoritmi iterativi per smentirti)


fammi un esempio di un algoritmo iterativo in floating point che sia preciso.


Ma mi basta un qualsiasi algoritmo in floating point senza errore :D:D:D:D

yossarian
11-02-2009, 21:23
fammi un esempio di un algoritmo iterativo in floating point che sia preciso.


Ma mi basta un qualsiasi algoritmo in floating point senza errore :D:D:D:D

dopo che avrai risposto in maniera esauriente alle domande; ammesso che ne sia in grado: poi vediamo chi è l'arrogante :D :D :D :D :D

wlog
11-02-2009, 21:36
dopo che avrai risposto in maniera esauriente alle domande; ammesso che ne sia in grado: poi vediamo chi è l'arrogante :D :D :D :D :D

ah dici queste?

Su quali principi si basa il funzionamento dei PCMOS? Cosa cambia rispetto ai chip "tradizionali"? Cosa implementa in più, in meno o di diverso? A quale scopo sono stati ideati?


scusami non le avevo viste:

http://portal.acm.org/citation.cfm?id=1131481.1131790

credo che questo paper dovrebbe risolvere ogni tuo dubbio.

yossarian
11-02-2009, 21:42
ah dici queste?




scusami non le avevo viste:

http://portal.acm.org/citation.cfm?id=1131481.1131790

credo che questo paper dovrebbe risolvere ogni tuo dubbio.

leggo 2006 come anno di pubblicazione e fai riferimento ad un link IEEE, ovvero lo stesso che riporta che esistono 192 articoli e pubblicazioni sull'argomento a partire dal 1996.
Quindi? Si tratta di qualcosa che esiste da 40 anni? Anche le 4 operazioni hanno millenni e allora? Tutto ciò che si può fare con queste è vecchio di millenni?

Non sono io ad avere dubbi, sei tu che continui a travisare quello che si dice.
Le risposte le ho chieste a te: dammele tu (io so come funzionano e su quali principi sono basati)

wlog
11-02-2009, 21:43
leggo 2006 come anno di pubblicazione e fai riferimento ad un link IEEE, ovvero lo stesso che riporta che esistono 192 articoli e pubblicazioni sull'argomento a partire dal 1996.
Quindi? Si tratta di qualcosa che esiste da 40 anni? Anche le 4 operazioni hanno millenni e allora? Tutto ciò che si può fare con queste è vecchio di millenni?

Non sono io ad avere dubbi, sei tu che continui a travisare quello che si dice.
Le risposte le ho chieste a te: dammele tu (io so come funzionano e su quali principi sono basati)

ma tu cosa vuoi? una descrizione degli algoritmi iterativo probabilistici, che esistono dagli anni 70, o dei PCMOS, che ne sono una implentazione sotto forma hardware invece che software?


Poi potresti presentarmi una algoritmo in floating point esatto?

yossarian
11-02-2009, 21:48
ma tu cosa vuoi? una descrizione degli algoritmi iterativo probabilistici, che esistono dagli anni 70, o dei PCMOS, che ne sono una implentazione sotto forma hardware invece che software?


Poi potresti presentarmi una algoritmo in floating point esatto?

una descrizione esatta di ciò che è un PCMOS dal punto di vista fisico e in cosa differisce (se differisce) rispetto ad un normale processore. Vediamo se è ciò che tu sostieni(ovvero qualcosa che esiste da 40 anni) oppure no

wlog
11-02-2009, 21:51
una descrizione esatta di ciò che è un PCMOS dal punto di vista fisico e in cosa differisce (se differisce) rispetto ad un normale processore. Vediamo se è ciò che tu sostieni(ovvero qualcosa che esiste da 40 anni) oppure no

non ti basta il pdf che ti ho postato? troppo poco tecnico? :D:D:D

l'algoritmo floating point esatto? perchè tergiversi?:D:D:D:D

yossarian
11-02-2009, 21:54
non ti basta il pdf che ti ho postato? troppo poco tecnico? :D:D:D

l'algoritmo floating point esatto? perchè tergiversi?:D:D:D:D

aspetto risposte da te :D :D :D :D :D :D

wlog
11-02-2009, 22:21
aspetto risposte da te :D :D :D :D :D :D

che risposte? io ti ho linkato un bel pdf, cosa vuoi di piu?

Per me è fatta: sono 2 pagine che ti linko fior fior di documenti, tu fin'ora invece hai postato solo chiacchere.

O mi fai un esempio di un algoritmo in floating point esatto oppure io non perdo altro tempo.

Vorrei ricordare a tutti gli altri lettori che un algoritmo in FP esatto è un ossimoro: è come dire un urlo silenzioso. Infatti ti insegnano alla PRIMA lezione di informatica o algoritmica che le operazioni in floating point non possono essere precise, dato che i floating point non sono essi stessi precisi, data la natura finita della memoria e la natura ad informazione infinita dei floating point.

La seconda cosa che ti insegnano è a sfruttare questo errore coi metodi iterativi: dato che non si potrà mai avere una precisione infinita, tanto vale costruire degli algoritmi che approssimano il risultato attraverso varie iterazioni (iterativi per l'appunto), raggiungendo il risultato esatto ipoteticamente dopo infinite iterazioni. Per questo gli algoritmi vengono troncati ad un certo punto, e decidere questo punto è una variante di un famoso problema che si chiama halting problem.

E' intorno all'halting problem e alla teoria della computabilità che si evolve l'invenzione di questi chip probabilistici, che sono figli dei primi studi sulle macchine di turing e sugli "oracoli".

Cos'è un oracolo? un oracolo è una macchina che è in grado di darti sempre la risposta giusta a qualsiasi domanda in un tempo costante (nullo). Lo studio teorico sul confronto tra il comportamento di questi oracoli e il reale comportamento di una macchina di turing è un problema di teoria della misura. Un problema molto affascinante perchè noi non sappiamo bene misurare la differenza tra il risultato che otteniamo e il risultato reale, e questo ha moltissimi risvolti.

Possiamo approcciarci però alla misura di questo errore in vari modi: attraverso un metodo diretto, molto dispendioso e non sempre possibile, un metodo iterativo, che è molto veloce, ma molto complicato da realizzare, ed un metodo probabilistico, che consiste nel sostituire la normale logica e algebra ad algebre booleane/probabilistiche, passando quindi dallo studio dei numeri allo studio delle funzioni che rappresentano variabili aleatore.

Credetemi lettori quando vi dico che attraverso piccolissimi accorgimenti si può ridurre al minimo questi errori usando dei piccoli trucchi: ad esempio se stiamo provando ad ordinare un vettore di numeri, possiamo tirare a caso una media, e da qui dividere l'insieme di numeri in due insiemi piu piccoli e piu facili da ordinare. Se la nostra media sarà vicina a quella reale, risparmieremo molto tempo, altrimenti in realtà impiegheremo molto piu tempo. Ecco quindi a cosa si riduce il problema: azzeccare questa media (o qualsiasi altro sia il parametro da stimare, valore atteso, varianza o qualsiasi altro momento probabilistico), per cercare di rendere il caso medio molto piu veloce, a discapito di tempo (o precisione) per i casi piu sfortunati, che saranno comunque bilanciati dai casi molto favorevoli (ad esempio un vettore già ordinato).

yossarian
11-02-2009, 22:30
che risposte? io ti ho linkato un bel pdf, cosa vuoi di piu?

Per me è fatta: sono 2 pagine che ti linko fior fior di documenti, tu fin'ora invece hai postato solo chiacchere.

O mi fai un esempio di un algoritmo in floating point esatto oppure io non perdo altro tempo.

Vorrei ricordare a tutti gli altri lettori che un algoritmo in FP esatto è un ossimoro: è come dire un urlo silenzioso. Infatti ti insegnano alla PRIMA lezione di informatica o algoritmica che le operazioni in floating point non possono essere precise, dato che i floating point non sono essi stessi precisi, data la natura finita della memoria e la natura ad informazione infinita dei floating point.

La seconda cosa che ti insegnano è a sfruttare questo errore coi metodi iterativi: dato che non si potrà mai avere una precisione infinita, tanto vale costruire degli algoritmi che approssimano il risultato attraverso varie iterazioni (iterativi per l'appunto), raggiungendo il risultato esatto ipoteticamente dopo infinite iterazioni. Per questo gli algoritmi vengono troncati ad un certo punto, e decidere questo punto è una variante di un famoso problema che si chiama halting problem.

E' intorno all'halting problem e alla teoria della computabilità che si evolve l'invenzione di questi chip probabilistici, che sono figli dei primi studi sulle macchine di turing e sugli "oracoli".

Cos'è un oracolo? un oracolo è una macchina che è in grado di darti sempre la risposta giusta a qualsiasi domanda in un tempo costante (nullo). Lo studio teorico sul confronto tra il comportamento di questi oracoli e il reale comportamento di una macchina di turing è un problema di teoria della misura. Un problema molto affascinante perchè noi non sappiamo bene misurare la differenza tra il risultato che otteniamo e il risultato reale, e questo ha moltissimi risvolti.

Possiamo approcciarci però alla misura di questo errore in vari modi: attraverso un metodo diretto, molto dispendioso e non sempre possibile, un metodo iterativo, che è molto veloce, ma molto complicato da realizzare, ed un metodo probabilistico, che consiste nel sostituire la normale logica e algebra ad algebre booleane/probabilistiche, passando quindi dallo studio dei numeri allo studio delle funzioni che rappresentano variabili aleatore.

Credetemi lettori quando vi dico che attraverso piccolissimi accorgimenti si può ridurre al minimo questi errori usando dei piccoli trucchi: ad esempio se stiamo provando ad ordinare un vettore di numeri, possiamo tirare a caso una media, e da qui dividere l'insieme di numeri in due insiemi piu piccoli e piu facili da ordinare. Se la nostra media sarà vicina a quella reale, risparmieremo molto tempo, altrimenti in realtà impiegheremo molto piu tempo. Ecco quindi a cosa si riduce il problema: azzeccare questa media (o qualsiasi altro sia il parametro da stimare, valore atteso, varianza o qualsiasi altro momento probabilistico), per cercare di rendere il caso medio molto piu veloce, a discapito di tempo (o precisione) per i casi piu sfortunati, che saranno comunque bilanciati dai casi molto favorevoli (ad esempio un vettore già ordinato).

sono io a non perdere tempo con chi afferma tutto e il contrario di tutto nel giro di poche pagine.
Oltre a fare domande impara anche a dare risposte, se ne hai. Un pcmos fa uso di algoritmi probabilistici per minimizzare gli errori introdotti dal fatto che non si prendono accorgimenti hw (non sw) per massimizzare il snr. Per il resto funzionano esattamente come gli altri chip, con le uniche limitazioni dovute al fatto che gli errori non sempre sono prevedibili ed eliminabili (o riconducibili a valori accettabili, se preferisci). Questo ne limita il campo di applicazione.
Come vedi, nulla a che vedere con gli sproloqui su algoritmi iterativi o probabilistici.
Impara a dare risposte precise a domande precise, invece di girarci intorno (come hai fatto in quest'ultimo post che non c'entra, tanto per cambiare, nulla con l'argomento della news). Se avessi fatto un corso sulle architetture di un processore o sulle tecnologie dei dispositivi a stato solido sapresti anche di quali accorgimenti parlo, ma poichè hai dimostrato non poca presunzione me ne guardo bene dal farlo.

Ti saluto :D

wlog
11-02-2009, 22:35
gli errori [...] non sempre sono prevedibili ed eliminabili

ci riconduciamo alla mia domanda precedente: esistono degli algoritmi in cui gli errorir sono prevedibili o eliminabili?

equivarrebbe a dire che tu riesci a registrare informazione infinita con un numero finito di bit.

Dai perfavore, stai dando una pessima impressione di te.

yossarian
11-02-2009, 22:44
ci riconduciamo alla mia domanda precedente: esistono degli algoritmi in cui gli errorir sono prevedibili o eliminabili?

equivarrebbe a dire che tu riesci a registrare informazione infinita con un numero finito di bit.

Dai perfavore, stai dando una pessima impressione di te.

quota per intero, la pessima figura la stai facendo tu, dimostrando di non conoscere l'argomento della news (ma questo è evidente da pagine), come l'hai fatta nel thread dove parlavi dell'algoritmo scritto per CUDA con compressione lossless :D

bye bye :sofico:

wlog
11-02-2009, 22:51
scritto per CUDA con compressione lossless :D



.....

leoneazzurro
12-02-2009, 00:25
Posto che yossarian poteva essere certamente più delicato nel rispondere, questi post:

E invece è un ambito in cui questo aspetto sta andando molto... come le ricostruzioni tomografiche.


Una notizia per tutti: ragazzi, non vi scaldate. Questa cosa è stata inventata negli anni 70 e ormai è implementata su OGNI calcolatore.


Negli anni 70 si accorsero che, dato che la precisione del computer è finita, si sarebbe potuto calcolare i risultati per approssimazioni successive, fermandosi quando l'errore era abbastanza piccolo, piuttosto che usare il classico metodo diretto.

Oggi questa pratica, che ha preso il nome di algoritmi iterativi, è molto diffusa. Ad esempio TUTTE le schede grafiche usano questa tecnica, TUTTI i sistemi operativi usano questa tecnica, e cosi via...

Semplicemente hanno preso una idea e l'hanno messa su un circuito, invece che tenerla nel software.

Poco male. Però di sicuro non parlerei di grossa novità.

ragazzi ve lo ripeto: il 90% degli algoritmi che voi usate sono iterativi, cioè non danno neanche nella migliore delle ipotesi un risultato corretto, ma passano attravero un guess iniziale, a volte adirittura random, verso passi di precisione successivi.

Esattamente come questi PCMOS... I metodi diretti sono passati di moda negli anni '70!!!

mi fai un esempio di algoritmo probabilistico non iterativo non banale (quindi non vale il random number generator)?

In tutta la mia carriera non ne ho incontrato uno.

e in cosa cambia da un algoritmo iterativo? risparmi soldi, spazio e tempo in cambio di un po di errore. In parole povere: l'informatica.

Dimostrano che non hai capito assolutamente nulla dell'argomento della notizia, in quanto non si parla di chip la cui peculiarità è avere una precisione finita. Si parla di chip che a causa delle caratteristiche costruttive introducono di tanto in tanto un errore CASUALE ossia aleatorio a causa del rapporto Segnale -rumore piuttosto basso rispetto ai circuiti attuali (il SNR di cui parla yossarian) e privi della circuiteria di autocorrezione, errore la cui entità media tuttavia si può stimare a livello probabilistico e quindi dare una compensazione ma non correzione, neppure al livello della precisione finita dei processori attuali. Anzi, per questo motivo, questi chip in linea teorica non sarebbero particolarmente adatti ad algoritmi di calcolo di tipo iterativo, a causa del fenomeno della propagazione degli errori.

Invece di polemizzare, sarebbe cosa buona cercare di capire di cosa si sta parlando. Grazie.

wlog
12-02-2009, 00:46
, errore la cui entità media tuttavia si può stimare a livello probabilistico e quindi dare una compensazione ma non correzione, neppure al livello della precisione finita dei processori attuali.


e mi spieghi come faccio a distinguere io l'errore causato dall'uso di una algebra definita su un campo finito, con quello causato da una algebra definita su uno spazio probabilistico?

in parole povere: se l'errore viene dalla finitezza dei byte o da una algebra probabilistica come faccio io a distinguerlo?

Ragazzi questa è la base di algoritmica... non mi potete cadere qui...



Anzi, per questo motivo, questi chip in linea teorica non sarebbero particolarmente adatti ad algoritmi di calcolo di tipo iterativo, a causa del fenomeno della propagazione degli errori.

ti sarebbe bastato leggere il pdf che ho postato, per scoprire che si usa un algoritmo iterativo sul chip per correggere l'errore.

http://portal.acm.org/citation.cfm?id=1176781


When applied to the dsp domain, the resulting error in the output of a probabilistic arithmetic primitive, such as an adder for example, manifests as degradation in the signal-to-noise ratio (SNR) ofthe sar image that is reconstructed through the FFT algorithm.



Non dico aprire il pdf. Dico solo leggere l'abstract. Ma vabbè....

leoneazzurro
12-02-2009, 01:10
e mi spieghi come faccio a distinguere io l'errore causato dall'uso di una algebra definita su un campo finito, con quello causato da una algebra definita su uno spazio probabilistico?

in parole povere: se l'errore viene dalla finitezza dei byte o da una algebra probabilistica come faccio io a distinguerlo?

Ragazzi questa è la base di algoritmica... non mi potete cadere qui...




ti sarebbe bastato leggere il pdf che ho postato, per scoprire che si usa un algoritmo iterativo sul chip per correggere l'errore.

http://portal.acm.org/citation.cfm?id=1176781




Non dico aprire il pdf. Dico solo leggere l'abstract. Ma vabbè....

Ma una domanda: quando capirai che non sei l'unico depositario della scienza? Invece che cercare di capire, stai ancora sparando sentenze a vanvera. 2 settimane di ban, visto che l'atteggiamento non cambia e sto ancora aspettando delle risposte all'altro lungo e infruttuoso scambio di pvt.
Grazie anche per il "pessimo" in segnalazione.

In ordine

1) L'errore di approssimazione dovuto alla precisione finita è stimabile in ampiezza assoluta ed è ben conosciuto in ampiezza massima a priori, se io voglio una precisione maggiore devo solo aumentare le cifre binarie disponibili per i numeri sui quali vado ad effettuare un calcolo. L'errore probabilistico di cui si parla invece non è noto a priori, ma si può solo determinare il suo effetto medio ed un fattore di correzione probabile ma non certo, quindi potrei, in teoria ed estremizzando il concetto, dovere ottenere 5 da un dato calcolo ed invece ottengo 10 una volta ogni 50 calcoli perchè il circuito sbaglia effettivamente il calcolo a causa del rumore, il che è accettabile in alcuni campi ma inaccettabile ad esempio nel calcolo scientifico, dato che questo errore me lo porto appresso poi nei calcoli successivi ed io ho solo una determinata probabilità che il risultato di una data operazione sia esatto mentre nel caso dei chip tradizionali il risultato è esatto sempre, al netto dell'errore di approssimazione.
Non a caso applicazioni immediate di questa tecnologia sono gestione di flussi audio e video dove una certa imprecisione può essere tollerata.
2) Si sta parlando di cose differenti, perchè un algoritmo iterativo di calcolo scientifico è una cosa, una tecnica eventualmente iterativa per la minimizzazione dell'errore in un PCMOS un'altra, e non è detto che l'applicazione della seconda consenta l'utilizzo efficace della prima.

E, oltre a postare link che non dicono quello che affermi, almeno nell'abstract , mi sai dire che cosa c'è di probabilistico NEL FUNZIONAMENTO un chip di tipo tradizionale. Grazie.

yossarian
12-02-2009, 02:01
Ma una domanda: quando capirai che non sei l'unico depositario della scienza? Invece che cercare di capire, stai ancora sparando sentenze a vanvera. 2 settimane di ban, visto che l'atteggiamento non cambia e sto ancora aspettando delle risposte all'altro lungo e infruttuoso scambio di pvt.
Grazie anche per il "pessimo" in segnalazione.

In ordine

1) L'errore di approssimazione dovuto alla precisione finita è stimabile in ampiezza assoluta ed è ben conosciuto in ampiezza massima a priori, se io voglio una precisione maggiore devo solo aumentare le cifre sulle quali vado ad effettuare un calcolo. L'errore probabilistico di cui si parla invece non è noto a priori, ma si può solo determinare il suo effetto medio, quindi potrei in teoria dovere ottenere 5 ed invece ottengo 10 una volta ogni 50 calcoli perchè il circuito sbaglia effettivamente il calcolo a causa del rumore, il che è accettabile in alcuni campi ma inaccettabile ad esempio nel calcolo scientifico, e questo errore me lo porto poi nei calcoli successivi.
2) Si sta parlando di cose differenti, perchè un algoritmo iterativo di calcolo scientifico è una cosa, una tecnica eventualmente iterativa per la minimizzazione dell'errore in un PCMOS un'altra, e non è detto che l'applicazione della seconda consenta l'utilizzo efficace della prima.

E, oltre a postare link che non dicono quello che affermi, almeno nell'abstract , mi sai dire che cosa c'è di probabilistico NEL FUNZIONAMENTO un chip di tipo tradizionale. Grazie.

il fatto è che è difficile capire il funzionamento di un dispositivo se non si parte dai principi che ne hanno ispirato il progetto (a parte il fatto che per quanto riguarda i pcmos siamo ancora nel campo delle simulazioni, per cui è prematuro parlare di dispositivi :D ).
L'idea alla base è quella del risparmio energetico. Per ottenerlo, si è deciso di seguire la strada della riduzione della Vdd, facendo uso di alu altamente specializzate, sfruttando il parallelismo dei dati ed eliminando tutti i circuiti che potevano essere rimossi. Ridurre la Vdd significa introdurre un peggioramento del SNR. Per ovviare a questo inconveniente, si è pensato di scrivere un'algebra dedicata a questi PCMOS che associ a ciascun valore in input due valori in output pesati con funzioni di probabilità differenti. Giocando sui valori delle funzioni peso si può decidere quanto diminuire il SNR ma anche qual è il livello di accuratezza del risultato finale. Nel disclaimer si legge che, poichè ogni chip, prima o poi, manifesta un certo comportamento di tipo prpobabilistico, dovuto a fenomeni indesiderati (quali, ad esempio, il rumore) e che tale comportamento è sempre più difficile da contenere al diminuire del pp, allora si è pensato di sfruttare questo comportamento "non voluto" per ridurre i consumi. Nel computo del rumore si è tenuto conto degli accoppiamenti capacitivi indesiderati (che sono anche funzione di Vdd) e di una componente di rumore di fondo, considerato costante.
Ovviamente, data la peculiarità dell'architettura del chip (alu specializzate, data parallelism, ecc) è facile intuire che si tratta di una famiglia di chip ASIC e non GP; in particolare l'idea è quella di impiegarli al posto dei dsp, per fare operazioni di encoding audio/video o nei dispositivi mobili (dove la durata della batteria è fondamentale).
La simulazione che è stata fatta, riguarda un SOC con integrati un processore tradizionale della famiglia ARM, una ram locale e un PCMS usato come coprocessore. E' stata effettuata la codifica in formato H.264 di un file video, seguendo due modalità differenti: la prima vedeva l'assegnazione del parametro di "correzione" uguale per ogni bit, la seconda in cui i parametri di "correzione" variavano in modalità random. Nel rpimo caso si è avuto un buon risparmio energetico, prestazioni allineate ai sistemi tradizionali ma un sensibile degrado della qualità del file. Nel secondo caso, fermi restando i oprimi due aspetti, la qualità del file ha subito un degrado in misura definita "minima". Questo potrebbe spiegarsi col fatto che l'occhio è più sensibile ad un rumore di tipo fixed pattern (non a caso i migliori algoritmi di AA utilizzano pattern con disposizioni dei sample di tipo random).

EDIT: la codifica H.264 con parametro di correzione costante per ogni bit fa veramente schifo :D ; l'altra appare abbastanza buona

MiKeLezZ
12-02-2009, 12:45
L'articolo originale (http://www.chron.com/disp/story.mpl/metropolitan/6252697.html) parla di 1/30 del consumo, e non il 30% come scritto in questa news.

Burnware
13-02-2009, 11:14
Un errore si può comunque correggere, basta sapere la percentuale di errori che avvengono in un determinato lasso di tempo. in ogni tipo di circuito o trasmissione ci sono degli errori e vengon riconosciuti e spesso corretti dal "ricevitore" oppure viene richiesto il re-invio del pacchetto dati. quindi se si riesce ad avere una velocità 7 volte superiore al un CMOS con una percentuale di errore alta, basterebbe mettere un inverter che quindi mi trasforma tutti gli 1 in 0 e viceversa: quindi tutti quelli che erano errati ora sono giusti e quei pochi bit giusti adesso sarebbero sbagliati. Ergo si arriverebbe alla percentuale di errore di un normale CMOS.

leoneazzurro
13-02-2009, 14:36
Un circuito che faccia il complemento a 1 delle uscite non fa altro che ribaltare la probabilità di errore, ossia se io ho il 50% di probabilità che il circuito dia errore, avere o meno un circuito "invertente" mi àd in uscita sempre il 50% di risultati errati. I circuiti in questione poi concettualmente non correggono l'errore, ma mantengono entro certi limiti la probabilità di avere un errore nell'output.

Mixmar
07-03-2009, 12:30
Ecco un articolo collegato: link al sito APS (http://focus.aps.org/story/v23/st7).