View Full Version : MMX rediviva grazie a Larrabee?
Redazione di Hardware Upg
02-07-2007, 11:17
Link alla notizia: http://www.hwupgrade.it/news/cpu/21792.html
Il progetto multicore per calcolo parallelo al quale Intel sta lavorando potrebbe essere basato su una sorta di riedizione dell'architettura MMX
Click sul link per visualizzare la notizia.
E' anche ora di usare l'MMX.....è da 10 anni che aspetto di vedere qualcosa che usi quell'estensione dell'ISA x86 :D
davide86
02-07-2007, 11:54
le prime ipotesi parlano di una generale miglioria per quanto riguarda la velocità di computazione in virgola mobile.
ma le mmx non lavorano solo su interi??
Allora Amd userà le sue per fare concorrenza?
Forse è per questo che ci mettono tanto per le nuove cpu... 20 K6-III in un singolo pezzo di silicio?
Se Intel riesce a sfruttare bene solo le MMX per fare andare i suoi nuovi progetti meglio per loro. Se faccio lo sborone perchè ho il P100 sono giustificato!
Si
Le SSE sono state l'evoluzione dell MMX che erano solo per numeri interi. Attualmente siamo alle SSE4 quindi si può ritenere una evoluzione delle MMX simili al passagio tra SSE2 ad SSE3 con l'introduzioni di operazioni in colonna e non solo in riga (le sse e mmx sono operazioni su matrici 4x4)
era ormai nell'aria questa evoluzione in quanto codec come H264 fanno un uso intesivo di numeri interi. Questo è dovuoto al fatto che spesso i processori per cellularie ed affini sono privi di unità in virgola mobile.
filippo1974
02-07-2007, 12:40
(le sse e mmx sono operazioni su matrici 4x4)
Non necessariamente: le SSE2 hanno istruzioni dedicate a processamento di dati interi che possono trattare 8 interi da 16 bit ciascuno, quindi sotto determinate condizioni sono possibili operazioni su matrici 8x8, che guarda caso sono proprio le dimensioni dei blocchi di pixel usati per gli algoritmi di codifica video MPEG-1, MPEG-2, MPEG-4 e H.263...
era ormai nell'aria questa evoluzione in quanto codec come H264 fanno un uso intesivo di numeri interi. Questo è dovuoto al fatto che spesso i processori per cellularie ed affini sono privi di unità in virgola mobile.
L'H264 è solo l'ultimo di tutta una serie di standard di codifica video dove si sono usati intensamente i numeri interi per processare i dati. L'H.264 ha però avuto il merito di definire rigorosamente le caratteristiche in termini di precisione nell'elaborazione dei dati: su MPEG-1, MPEG-2, MPEG-4 ed H.263, alcuni blocchi di elaborazione (nella fattispecie la trasformata discreta coseno, DCT) sono definiti in termini statistici: in altre parole, si dice "Questo è l'algoritmo di riferimento, e lo devi implementare in virgola mobile con la precisione più alta che la tua macchina ti consente. Dopodiché l'algoritmo che userai nel tuo CODEC fallo come ti pare, basta che rispetto a quello di riferimento non sgarri in media più di un tot". Con H.264 questo non si può più fare, l'aritmetica è definita in modo rigoroso.
Comunque, tornando in topic, sembra quasi che il modo in cui è riportata la notizia facesse sottilmente intendere che l'MMX era ormai un set di istruzioni dimenticato, e che sia "risorto" grazie a Larrabee. Io onestamente non sono del tutto d'accordo, l'MMX è attualmente molto utile per determinati tipi di processamento. Piuttosto, sono contento che nelle estensioni a 64 bit del set di istruzioni x86 siano sparite le macchinose istruzioni floating-point x87, sostituite dalle molto più efficienti istruzioni scalari SSE/SSE2.
Ciao
Filippo
X Filippo
E' verissimo ma non volevo dilungarmi su spiegazioni troppo tecniche. Quello che volevo dire è che con l'arrivo del HD è ormia necessario ottimizzare a tutti i livelli e questo è uno dei più inportanti. A memoria ricordo che l'introduzione delle operazioni in colonna negli SSE cuasò un incremento di quasi il 20% nella codifica video.
Ora è vero che l'algoritmo e la sua inplementazione sono distinti dal reale standard ma con i tempi che corrono un processore di fascia bassa senza SSE e MMX non sarebbe in grado di riprodurre un filmato HD.
Il discorso è ancora più marcato su tutte le applicazioni embedded dove spesso le risorse sono molto poche .
ciao
Xeus32
beh, quindi dopo POD della Ubisoft (chi se lo ricorda?) avremo un altro sw in grado di sfruttare le mmx.............
POD l'avevo avuto insieme alla scheda 3dfx, appunto come dimostrativo delle prestazioni tra cpu e scheda 3d. Scheda PCI da affiancare a quella in uso.
Il gioco in sè non era poi sto granchè, ma la grafica era un mondo a parte...
Ventresca
02-07-2007, 13:27
ma in parole MOLTO SEMPLICI in cosa consisteva l'mmx?
@Ventresca wikipedia e google sono tuoi amici..
Quello che mi stuzzica nella news e che può sembrare meno importante è l'implementazione raytrace , non si capisce molto bene dalla news ma "adottare l'approccio raytracing " è qualcosa di decisamente più rivoluzionario . Oggi infatti le scene vengono disegnate spendendo molti calcoli anche su parti non visibili , utilizzare il raytracing per disegnare la scena nel framebuffer significa avere un efficenza vicina al 100% .
Uno degli studi maggiori è stato fatto da uni tedesche e dalla uni di stanford http://graphics.stanford.edu/papers/tpurcell_thesis/ quello che viene chiamato RPU e se ne parla da un annetto... molto molto interessante
ma in parole MOLTO SEMPLICI in cosa consisteva l'mmx?
Semplificando al massimo, l'MMX era un set di istruzioni rivolte al multimedia (o comunque a particolari calcoli matematici). Più precisamente 57 istruzioni in grado di usare particolri registri a 64 bit che potevano essere utilizzati "a pezzi"(packed integer), per esempio per 2 dati da 32bit o 8x8bit.
beh, quindi dopo POD della Ubisoft (chi se lo ricorda?) avremo un altro sw in grado di sfruttare le mmx.............
POD me lo ricordo eccome me lo diedero in bundle assieme a un pentium MMX 200 Mhz, la prima applicazione che sfruttava l'estensione MMX.
Quanti ricordi :)
In soldini:
In un processore un comando (ex somma) permette di computare a+b. se però noi abbiamo flussi da computare video , matrici , giochi e vettori è molto frequente eseguire la stessa operazione su più dati uguali. Gli mmx ed sse permettono di eseguire con un comando solo 4 somme o moltiplicazioni. In questo modo si riesce ad incrementare le prestazioni “parallelizando” i conti. Con il passare degli anni poi si sono evolute ma il succo base è eseguire più operazioni con un solo comando.
ciao
Xeus32
blackshard
02-07-2007, 16:04
Comunque, tornando in topic, sembra quasi che il modo in cui è riportata la notizia facesse sottilmente intendere che l'MMX era ormai un set di istruzioni dimenticato, e che sia "risorto" grazie a Larrabee. Io onestamente non sono del tutto d'accordo, l'MMX è attualmente molto utile per determinati tipi di processamento. Piuttosto, sono contento che nelle estensioni a 64 bit del set di istruzioni x86 siano sparite le macchinose istruzioni floating-point x87, sostituite dalle molto più efficienti istruzioni scalari SSE/SSE2.
Non ho dato occhiata al long mode a 64 bit, ma davvero hanno tolto le istruzione x87? Mi sembra strano: le x87 permettevano tutta una serie di operazioni complesse simpatiche realizzate con un singolo opcode, come la radice quadrata, logaritmi, elevamenti a potenza e roba simile che ora manco mi ricordo più... hanno tolto tutto il set di mezzo?
edit: aggiungo che non sono affatto d'accordo a chi dice che le istruzioni MMX non sono mai state utilizzate e bla bla bla... solo perché loro non vedono la checkbox "attiva mmx". Tantissimi software che operano nel multimediale le usano, primi fra tutti i codec audio e video.
LoneRunner
02-07-2007, 19:20
POD me lo ricordo eccome me lo diedero in bundle assieme a un pentium MMX 200 Mhz, la prima applicazione che sfruttava l'estensione MMX.
Quanti ricordi :)
Era per caso un Olidata Alicon 200? :D
POD aveva un finale davvero suggestivo...
Alessio73
02-07-2007, 20:28
scusate OT: ricordate il gioco in bundle con alcune matrox mi pare comunque nel periodo del bump mapping... era tipo shock troopers per neogeo dei soldati visti dall'alto ma in 3d era un genere nettamente poco comune per il PC mi piacerebbe ricordare il titolo e cercarlo da qualche parte....
grazie
Quell_uomo
02-07-2007, 22:16
Anche MDK supportava le MMX...
pod e pentium 200mhz mmx....sembrano veramente altri tempi eppure sono "solo" una decina d'anni. *lacrimuccia*
blackshard
03-07-2007, 01:52
scusate OT: ricordate il gioco in bundle con alcune matrox mi pare comunque nel periodo del bump mapping... era tipo shock troopers per neogeo dei soldati visti dall'alto ma in 3d era un genere nettamente poco comune per il PC mi piacerebbe ricordare il titolo e cercarlo da qualche parte....
grazie
Expendable ;)
Piuttosto, sono contento che nelle estensioni a 64 bit del set di istruzioni x86 siano sparite le macchinose istruzioni floating-point x87, sostituite dalle molto più efficienti istruzioni scalari SSE/SSE2.
Non ho dato occhiata al long mode a 64 bit, ma davvero hanno tolto le istruzione x87?
Non e' stato tolto nulla. Rif. AMD64 Architecture Programmer’s Manual Volume 5:
64-Bit Media and x87 Floating-Point Instructions (Pub. 26569, Rev 3.04 - Sep/2003).
Se interessa spiego perche' non sono state tolte.
blackshard
03-07-2007, 13:13
Non e' stato tolto nulla. Rif. AMD64 Architecture Programmer’s Manual Volume 5:
64-Bit Media and x87 Floating-Point Instructions (Pub. 26569, Rev 3.04 - Sep/2003).
Se interessa spiego perche' non sono state tolte.
Allora penso che filippo1974 intendesse dire che privilegiano l'uso di SSE nelle operazioni scalari comuni come addizione, sottrazione, etc..
Mi sembrava proprio strano che invece si abolissero le istruzioni fpu rinunciando a compatibilità e a tanto sviluppo passato sulle fpu, ma anche alla precisione estesa e tutto il resto.
Quale è il tuo punto di vista sul perché non siano state tolte?
Quale è il tuo punto di vista sul perché non siano state tolte?
Giustamente non sono state tolte in quanto:
1) Come hai ricordato, le istruzioni x87 consentono una precisione ad 80-bit (dal Pentium Pro in poi) contro i 32-bit (singola precisione SSE) e 64 bit (doppia precisione SSE2).
2) Le istruzioni SSE/SSE2, sono piu' efficienti in packet mode (uso dell'intero registro XMM); in modalita' scalare le istruzioni sono meno efficienti basta confrontare la latenza e il throughput di due istruzioni ADDPD e ADDSD, nonostante la prima agisca su un set di 2 dati, le latenze e il throughput sono simili (5/4/4 contro 5/4/3) e (2/2/2 contro 2/2/1) per CPU di 0F3h/0F2h/069h, da cui si evince che tranne che per il Pentum M (probabilmente anche C2D), se si deve agire su dati scalari con operazioni non omogenee convengono ancora le istruzioni x87. Le istuzioni SSE/SSE2 convengono in caso di dati impacchettati su vettori a blocchi di 2 o di 4, specialmente per grosse quantita' di dati (ho semplificato parecchio).
3) Per le istruzioni SSE/SSE2 mancano del tutto funzioni trascendentali. Ci sono addizione, moltiplicazioni, sottrazione, divisione, radice quadrata, max e min (+ il reciproco in precisione singola). Mancano seno/coseno, tangente (parziale), arcotangente (parziale), 2^x-1, y*log2(x) e x+1. Insomma con le quattro operazioni piu' la radice quadrata, le istruzioni SSE/SSE2 non possono sostituire l'unita' FPU in alcun modo (se non a costo di un tempo di elaborazione assai elevato).
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.