Stream processing: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
FrescoBot (discussione | contributi)
m Bot: apostrofo dopo l'articolo indeterminativo
MaxDZ8 (discussione | contributi)
Molto male, vedi talk
Riga 1:
{{stub}}
Lo '''Stream processing''' è un paradigma di [[programmazione parallela]] di tipo [[Single instruction multiple data|SIMD]] che permette ad alcune applicazioni di sfruttare semplicemente una forma limitata di elaborazione parallela. Le applicazioni utilizzano delle unità funzionali come [[Unità di calcolo in virgola mobile|FPU]] o [[Graphics Processing Unit|GPU]] senza doversi preoccupare di gestirne la sincronizzazione o la comunicazione tra le unità funzionali, sgravando il programmatore da uno dei principali problemi della programmazione parallela.
 
Line 12 ⟶ 13:
*'''Parallelismo dei dati''': I dati devono poter essere elaborati in parallelo senza aver problemi di sincronizzazione o di dipendenza tra i dati.
*'''Località dei dati''': Questa è una particolare tipologia di località dei dati, comune nell'elaborazione dei segnali e nella gestione dei file multimediali. Questa località prevede che il dato vengano letti una o due volte durante l'elaborazione, i dati intermedi dipendono direttamente dalle elaborazioni e quindi vengono gestiti e ricavati direttamente dal flusso di elaborazione.
 
== GPU ==
Le moderne schede grafiche si trovano a dover poter eseguire operazioni aritmetiche su dati generici. Le moderne schede grafiche devono poter eseguire operazioni di [[vertex shader|vertex]], [[pixelshader|pixel]] o [[geometry shader]], devono poter elaborare la fisica dei videogiochi e devono poter eseguire alcune operazioni legate alla gestione dell'intelligenza artificiale dei videogiochi. Data la varietà di operazioni da eseguire i produttori hanno deciso di abbandonare la realizzazioni di unità in grado di eseguire una sola tipologia di elaborazione in favore di unità più flessibili, in grado di eseguire operazioni generiche e quindi di poter essere configurate a seconda delle necessita al fine di fornire le prestazioni migliori. I produttori si sono orientati sullo sviluppo di GPU dotate di diversi stream processor che vengono configurati a seconda delle necessità.<ref>[http://www.tomshw.it/graphic.php?guide=20061108&page=geforce_8800_nvidia_g80-06 Una panoramica sull'architettura unificata ]</ref> Una panoramica sull'architettura unificata] Il paradigma dello stream processing ben si adatta allo sviluppo di applicazioni multimediali e alle applicazioni che devono svolgere le schede grafiche. Lo stream processing consente di realizzare con semplicità integrati con migliaia di unità di elaborazione<ref>[http://punto-informatico.it/2708432/PI/News/radeon-5000-sulla-rampa-lancio.aspx Radeon 5000 sulla rampa di lancio]</ref> quando microprocessori sviluppati con tecnologia simile sono in grado di contenere meno di dieci unità di elaborazione. La possibilità di programma le GPU ha consentito lo sviluppo anche di applicazioni che utilizzano l'elevata potenza di calcolo delle schede grafiche per eseguire operazioni aritmetiche o logiche non direttamente legate alla gestione di dati multimediali.
 
== Note ==
{{references}}
 
== Collegamenti esterni ==
* [http://www.appuntidigitali.it/4199/perche-le-gpu-sono-basate-su-architetture-di-tipo-simd/ Perchè le GPU sono basate su architetture di tipo SIMD]
 
[[Categoria:Architettura dei calcolatori]]