View Full Version : CPU vettoriale vs CPU scalare
Cecco BS
03-05-2004, 17:16
Qualcuno mi può precisare con esattezza la differenza tra CPU scalare e CPU vettoriale? So la differenza in fisica tra vettori e scalari, ma nella logica elettronica delle CPU come si spiega la differenza??
^TiGeRShArK^
03-05-2004, 17:55
è lievemete complicata se intendi i processori vettoriali ke si utilizzano in determinati tipi di super-computer...
cmq in parole povere, mentre una cpu scalare può lavorare su un calcolo x volta, una cpu vettoriale può lavorare su + dati in una volta...
un esempio è la differenza tra cpu (amd o intel) e GPU (nvidia o ati). A causa dell'elevato parallelismo insito nei calcoli di natura grafica, le GPU sono processori vettoriali ke applicano + calcoli a diversi dati in una volta, mentre le cpu, essendo general purpose, sono + limitate e generalmente eseguono un'operazione x volta.
Un caso particolare è con l'applicazione di istruzioni MMX o SSE in cui un'operazione può essere eseguita x un numero elevato di dati.
Cmq mi pare ke se ti fai un giro su lithium dovresti trovare qualche articolo interessante...
Il Velocity Engine del PowerPC G4 (http://www.lithium.it/articolo.asp?code=14)
Istruzioni SIMD (vettoriali) su x86, altre architetture e chip 3D (http://www.lithium.it/articolo.asp?code=31)
Cecco BS
05-05-2004, 13:14
ma quindi i PowerPC con Velocity Engine potrebbero essere considerati CPU vettoriali per quanto riguarda le istruzioni Altivec?? E idem gli x86 con le istruzioni SIMD SSE/MMX et similia?
E mi potete dare link ad articoli in italiano su CPU vettoriale per supercomputer? Ad esempio ho appena scaricato le datasheets di una CPU NEC che mi esalta un casino, vorrei saperne di più... su Lithium non dice molto sull'argomento specifico...
Cecco BS
05-05-2004, 20:24
up!
Goldrake_xyz
05-05-2004, 21:45
Mah x quanto ne sò io le CPU scalari, come già detto da ^TiGeRShArK^ fanno
"in generale" un' operazione alla volta ...
Le CPU Vettoriali (che come ben saprai dalla matematica
un vettore è composto da più componenti e spesso
si ha un' identita frà vettori e matrici)
Sono Cpu in grado di operare in maniera parallela
su più dati contemporaneamente.
Ad esempio se si fà del calcolo sulle matrici, facendo una operazione alla volta, occorre troppo tempo.
Invece se un processore calcola contemporaneamente
tutti i dati di una matrice NxN in un solo ciclo di clock
si ha un salto di prestazioni veramente notevole !
ovviamente per fare calcoli vettoriali non bastano i miseri
dieci (o poco più) registri di un processore 80x86 o P4
o PowerPC o Opteron ..... :D
okkio che vengono spacciati per processori vettoriali anche quei
processori in grado di trattare misere matrici 4x4 in un solo ciclo di clock :cry:
Per una CPU vettoriale occorrono anche 64Kbyte di registri
e un' architettura tutt'altro che semplice. (vedi i famosi computer CRAY)
Oggi sembra più conveniente fare una matrice di processori
tipo : un centinaio di Pentium4 per costruire un' unità di
calcolo vettoriale ....
ma la letteratura in materia è davvero molta ..... :rolleyes:
Cordiali Saluti. :)
Cecco BS
06-05-2004, 13:03
ma quindi le unità SIMD tipo SSE o Velocity Engine sono come un piccolo processore vettoriale dentro quello che in realtà è un processore vettoriale?
E i processori vettoriali hanno bisogno di registri molto più ampi del set x86.. mmhhh... ma l'IA64 (Itanium) è un'architettura vettoriale o scalare? Per quanto ne so Itanium ha registri molto più ampi dell'x86 e può effettuare una parallelizzazione esplicita dei calcoli... no?
Mi interessa molto l'argomento...
Cecco BS
06-05-2004, 14:00
uppete!
Originariamente inviato da Cecco BS
ma quindi le unità SIMD tipo SSE o Velocity Engine sono come un piccolo processore vettoriale dentro quello che in realtà è un processore vettoriale?
E i processori vettoriali hanno bisogno di registri molto più ampi del set x86.. mmhhh... ma l'IA64 (Itanium) è un'architettura vettoriale o scalare? Per quanto ne so Itanium ha registri molto più ampi dell'x86 e può effettuare una parallelizzazione esplicita dei calcoli... no?
Mi interessa molto l'argomento...
ciao!
prova a spulciare qui:
http://www.lithium.it/articoli.asp?p=2&arg=processori
Cecco BS
07-05-2004, 13:15
grazie ma ce li ho già tutti stampati in versione cartacea quegli articoli, ma su lithium si parlà perlopiù di processori non propriamente vettoriale o di istruzioni SIMD, io vorrei un approfondimento su processori vettoriale per supercomputer...
Cecco BS
07-05-2004, 14:20
up!
Goldrake_xyz
09-05-2004, 10:06
Per Quello che ne sò io Itanium 2 ha 128 Registri in
Floating point e 64 Registri per uso generale (da 64 bit)
Probabilmente sui registri float qualche istruzione di calcolo
vettoriale c'è. (non ho l'istruction set di Itanium 2)
Effettivamente per fare un calcolo vettoriale di una
matrice 50x50 in un solo ciclo di clock si ha bisogno
almeno di .... 2500 registri ( floating point )
e se si vuole sommare 2 matrici allora ....
Se non ricordo male, molto tempo fà venne realizzato
in italia dall' istituto di Fisica dell' università di Roma
un calcolatore parallelo formato da 1000 piccole CPU
in grado di eseguire calcoli vettoriali, ma poi non nè ho
saputo più nulla... :(
Cordiali Saluti :)
Provato a leggere su Lithium articolo sul Cray (http://www.lithium.it/dream0016p1.asp) ?
Cecco BS
09-05-2004, 19:55
sì, grazie, è molto interessante... ma ho già detto che quelli di lithium li ho già letti tutti, non avete altre fonti da propormi?
Cecco BS
11-05-2004, 14:48
evvabbè, va bene anche in inglese...??
Goldrake_xyz
11-05-2004, 20:40
Ciao, ho trovato questo :
AltiVec technology is a short vector parallel architecture. Depending on data size, vectors are 4, 8 or 16 elements long. This can be contrasted with the long vector architectures of supercomputers that were popular in the 1980s.
dal sito ... http://e-www.motorola.com/webapp/sps/site/overview.jsp?nodeId=03C1TR0467mKqW5Nf2hG12
come si vede il processore può trattare un vettore formato
da N numeri che vengono calcolati in un solo ciclo di clock.
Il vantaggio di una CPU vettoriale è solo questo.
Il supercomputer CRAY fà la stessa cosa... cpu che "lavorano"
a 1.0 GHz ma in grado di trattare matrici e vettori di dimensioni
molto grandi, e anche in floating point.
Sicuramente ci saranno molte istruzioni per trattare matrici
e allora fondamentalmente il discorso è questo :
un processore scalare fà operazioni solo su numeri singoli
quindi se funziona a 1GHz può arrivare (teoricamente) a
1 GFLOPS (Giga FLoating Operation Per Second)
Invece un processore vettoriale che funziona a 1 GHz
calcola vettori, che tu saprai certamente meglio di mè,
sono formati da più numeri, e quindi se il vettore è
formato da 4 numeri è possibile arrivare (teoricamente) a
4 GFLOPS limitatamente però ai soli vettori.
e questo discorso è ancora più valido per le matrici. :)
In sintesi il processore vettoriale ha una architettura
di tipo "rigido" cioè rende molto solo per quello per cui
è stato proggettato.
Viceversa il processore scalare è più flessibile, ma se
per caso deve eseguire calcoli matriciali o vettoriali
diventa molto lento ..... :)
Saluti.
Cecco BS
15-05-2004, 12:19
uh, grazie, molto esaustivo! Quindi delle CPU scalari hanno un'architettura altamente parallela, in grado di operare velocemente su matrici, mentre quelle scalari operano velocemente solo su numeri singoli e hanno bisogno di molti cicli di clock per operare su matrici...
....
...quindi una cpu vettoriale ha bisogno di software che utilizzi prevalentemente matrici di più numeri, giusto?
Goldrake_xyz
15-05-2004, 20:01
Penso proprio di si,
una famosa dimostrazione della potenza di questi processori
è nella fluidodinamica dove bisogna approssimare il
comportamento di un fluido mediante dei calcoli molto impegnativi
su grosse matrici floating point.
cioè si approssima ogni "molecola" con un numero della marice....
Cordiali saluti. :)
Cecco BS
17-05-2004, 12:33
wow... figata!!
Grazie delle informazioni!!
Non è che mi potete indicare link ad approfondimenti anche in inglese sulle CPU vettoriali per supercomputer??
Goldrake_xyz
17-05-2004, 19:10
Puoi vedere quì :
http://www.cray.com/company/video/
se hai l'ADSL puoi vedere degli ottimi filmati !
(consiglio di installare WindowsMediaPlayer9)
Array Processor:
Also called a vector processor. A microprocessor that executes one instruction at a time but on an array or table of data at the same time rather than on single data elements. :)
http://www.hyperdictionary.com/computing/array+processor
Prova a ricercare su goggle frasi del tipo :
...array processor... array cpu ...
Saluti.:)
Cecco BS
18-05-2004, 14:00
grazie fes!
Ma pensavo una cosa: il paradigma EPIC adottato da Itanium con la sua esplicitazione da parte del compilatore delle istruzioni da parallelizzare come si inserisce in questo contesto? Itanium è un "semplice" processore superscalare, giusto, non vettoriale? In quanto nonostante ci sia parallelizzazione non sono operazioni us matrici... altrimenti anche tutti gli x86 con più unità di calcolo dovrebbero essere vettoriale, ma non è così... giusto??
Goldrake_xyz
18-05-2004, 19:13
Originariamente inviato da Cecco BS
grazie fes!
fes :confused: stà x fesso ? :wtf:
Scherzo....
Sinceramente non mi sono mai interessato più di molto
a itanium e itanium2.
Hai provato a scaricare i datasheet di queste CPU ?
In particolar modo bisognerebbe vedere come sono
mappati i registri interni e le relative istuzioni assembler.
Mi spiego meglio se si guarda, l' "instruction set" di questo proc.
si capisce subito se è possibile trattare solo scalari o anche
vettori e/o matrici ....
Good Luck ! :)
Cecco BS
20-05-2004, 14:07
wow... ok, adesso tra una settimana dovrei avere più tempo libero... inizierò a spulciare i datasheets... grazie davvero dell'aiuto, alla prossima! ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.