Newsgroup: it.comp.hardware.video-3d
Titolo: TECNICO : funzione pipeline

sono stato sempre abituato a vedere, nelle cpu, la pipeline come una 
tecnica che consente l'elaborazione di nuovi dati senza necessità di 
attendere che i dati precedentemente inviati termino la loro 
elaborazione.ora nelle cpu si è sempre parlato di "stadi" della pipeline 
e si è visto che a parte il prescott, generalmente con pentium-M e 
athlon64 ci si è sempre mantenuti su pipeline con un numero di stadi 
sempre sotto la decina(spero di ricordare bene).
a questo punto quando mi suona strano il sentir parlare di "numero" di 
pipeline nelle GPU.forse vengono usate in modo differente.
inoltre una domanda ancora più tecnica, quando si sbloccano le 
pipeline(come la ati 9800) si fa si che vengano usati anche altri 
"stadi", ma come si fa tecnicamente?è come se in un processo lineare in 
cui vi sono determinate sequenze di circuiti interessanti "inserissi" un 
  nuovo circuito (pipeline sbloccate)?!?!e poi tutto questo sempre via 
software....!qualcuno puoi aiutarmi a chiarire le idee?grazie

iblinku ha scritto:

Ti posso fare un paragone con una fabbrica, sperando di spiegarlo in 
maniera giusta. La CPU consiste in una singola catena di montaggio, con 
diverse postazioni che effettuano diverse lavorazioni ad ogni passaggio. 
Se si sbaglia all'inizio della catena di montaggio è corrotto tutto il 
processo e si deve rifare tutto daccapo. La GPU consiste in più catene 
di montaggio in parallelo,ognunga che fa la parte di lavoro assegnatole 
a partire dal tutto, ed alla fine si assembla il prodotto finale.
Ora non so se questa storiella ti abbia aiutato a comprendere qualcosa, 
ma è la prima cosa che mi è venuta in mente leggendo il tuo post ^_^.
X spiegazioni + teniche ( attivazioni pipeline in più ) posso solo fare 
supposizioni logiche, dato che non lo so effettivamente.
CIIAOO

 iblinku ha scritto:



ogni pipeline e' sempre seriale, ma al contrario dei processori  le
schede grafiche hanno piu' pipelines in parallelo (attualmente si
arriva fino a 16, i modelli di prossima introduzione aumenteranno
notevolmente questo numero) in quanto il codice usato dalle schede
grafiche e' molto piu' facilmente parallelizzabile di quello gestito
dalla cpu.
-- 
    (iao!!oai)                                    (ICQ: 10860566)
    //.aurizio
[WARNING!: togliete _nessuno_ per rispondere]
    Coloro che sono disposti a farsi togliere alcune liberta' 
essenziali per ottenere un piccolo, temporaneo senso di sicurezza
non meritano ne liberta' ne sicurezza. [B. Franklin]

quindi il fatto di sbloccare le pipeline su alcune GPU non fa altro che 
aumentare il numero di "linee" parallele su cui eseguire istruzioni?!
Maurizio Mugelli ha scritto:


 aumentare il numero di "linee" parallele su cui eseguire istruzioni?!
esatto ;-) ... 

 schede grafiche hanno piu' pipelines in parallelo
FALSISSIMO, nel senso che anche i processori moderni hanno più
pipeline in parallelo, persino il Pentium (il primo pentium!) ha 2
pipeline in parallelo (chiamate U e V).
Saluti da P4

 ha scritto nel messaggio
news:1118752685.7...@f14g2000cwb.googlegroups.com...


Si, appunto al max ne hanno due, pari a quelle presenti nelle unità
di esecuzione... -_-

 ha scritto nel messaggio 
news:xCCre.20030$75.13...@news4.tin.it...

Cell ha 8 unità parallele (chiamale pipeline se vuoi)
infatti va a nozze con codice altamente parallelizzato mentre fa 
letteralmente schifo con il codice abituale 

 ha scritto nel messaggio
news:sECre.20047$75.13...@news4.tin.it...

Infatti... ;-)



calmati, sei sempre il solito agitato...
il livello di parallelismo interno dei processori e' sempre limitato,
ad esempio un athlon ha 3 unita' dedicate agli interi ma per le
moltiplicazioni e divisioni due di queste unita' devono lavorare
accoppiate (e soltanto queste due possono farlo, la terza non puo'
eseguire moltiplicazioni o divisioni), mentre in fp la pipeline e'
unica, anche se sezionata in tre grossi stadi (uno schema piuttosto
semplice: 
http://www.lithium.it/articolo0026p2.htm
).
il processore con il massimo livello di parallelismo in campo desktop
afaik e' il g5, un vero mostro in questo caso , ma anche qui il
parallelismo e' limitato ad ambiti ristretti, principalmente la alu  e
le unita' simd, il fatto e' che semplicemente il codice generico per
processore e' molto difficilmente parallelizzabile a livello di
singolo thread.
se invece guardi lo schema di un processore video recente (ad esempio
R300 - 
http://www.alientech.it/hardware/r300/pixel_pipeline.htm
)
noterai che ogni unita' logica (unita' vertex, unita' pixel ecc..)
viene suddivisa in un grandissimo numero di sottounita' (le pipelines,
appunto) del tutto identiche fra di loro e - nel loro ambito - del
tutto indipendenti, si possono piu' paragonare ad un multiprocessing
piuttosto che al parallelismo interno dei processori, questo perche'
il genere di dati che devono elaborare (principalmente stream) e'
estremamente lineare e quindi prevedibile, non servono complicatissime
unita' di branch prediction o di OutOfOrderExecution, quindi spezzare
l'elaborazione di una textures fra N pipelines diventa semplice.


Le parole di Maurizio Mugelli (_
nessuno_...@virgilio.it
)
richiamarono la mia attenzione:
[CUT]
Questa relativa semplicità nell'aumentare le capacità di calcolo tramite 
parallelizzazione può essere la base del fatto che la velocità dei 
processori grafici aumenta vertiginosamente (raddoppia ogni 12-18 mesi al 
massimo) se confrontata a quella dei processori general purpose?
-- 
DanySK
-:| AMD Athlon 64 3000+@4800+ (320x9) | MSI K8N Neo4 Platinum 54G
(3x320) | 1GB Vitesta DDR500 | Gigabyte 6600GT @550/1.24 | ThermalTake
680W | Toshiba SD-M 1902 | NEC ND3520A |:-
www.alientech.it
 -- 
www.hwitalia.it
 


C'e da dire che le cpu general purpose devono gestire una varietà
di compiti e non solo eseguire operazioni vettoriali altamente
parallelizzabili come accade con le GPU...

 massimo) se confrontata a quella dei processori general purpose?
Sì, ma non solo. Ci sono pur sempre fattori "esterni" come l'aumento del 
bus delle memorie e la migliore qualità delle stesse, unite a una 
progressiva ottimizzazione dei circuiti interni del chip, che 
sicuramente concorrono al miglioramento delle prestazioni generali. Le 
basi su cui gli attuali chipset sono stati realizzati, però, negli 
ultimi anni non sono cambiate gran che: le uniche novità nel settore, 
per il momento, le ho viste su Xenos di Ati (con la eDram e gli shader 
unificati).
p.bes


come si suol dire, cavallo vincente non si cambia.
se fino ad adesso e' sempre bastato aumentare il numero delle
pipelines per ottenere un incremento di prestazioni piu' o meno
lineare, perche' investire cifre spropositate in architetture
radicalmente diverse?
non che tutti quanti non abbiano due o tre progetti collaterali di
sperimentazione, ma di solito gli viene data una priorita' piu' bassa,
fino a che il reparto marketing non ritiene che i tempi siano
maturi...
al solito, comanda il marketing, la ricerca viene fatta con gli
avanzi.
