spezielle innovative Rechner Architekturen

Script vom 11.04.2005.

2.2 Software- Herstellung für Vektorrechner

  • Vektorisierung durch Computer:
for (i=2; i<=100; i++)
  a[i-1]=a[i]+b[i];
//Iteration nicht vektorisierbar!
for (i=2; i<=100; i++)
  a[i+1]=a[i]+b[i];
for (i=1; i<=100; i++)
  for (j=2; j<=100; j++)    // } -nur 1 Dimensionale Vektorbefehle möglich
   c[j,i]=c[j-1,i]+a[j,i];  // } -wieder Iteration, keine Vektorisierung möglich

→ äußerse und innere Schleifen tauschen (= Loop Interchange)

for (j=2; j<=100; j++)
  for (i=1; i<=100; i++)    // } 1 Befehl nach Vektorisierung
   c[j,i]=c[j-1,i]+a[j,i];  // }

for (i=1; i<=100; i++) {
 if (a[i]>0) {
  c[i]=3*a[i];
 } else {
  c[i]=10*b[i];
}
maskierte Vektorbefehle
a: -5 6 -8 -9
b: -3 -8 1 11
3*a: -15 18 -24 -27
10*b: -30 -80 10 110
(a>0): 0 1 0 0
merge: -30 18 10 110

2.3 Beispiele für Vektormaschienen

  • Klassisch: Cray
  • Earth Simulator
  • Vektorrechenwerke und Universalprozessoren
    • MMX, SSe, 3DNow, AltiVee
MMX 3DNow! SSE
Intel '97 AMD '98 Intel '99 Hersteller, Jahr
Integer: 8, 16,32,64 Integer + Float: 32 Float: 32 Zahlenformate: Breite
8/4/2/1 2 4 Vektorlänge
paddb1) mm3,mm1 pfadd mm1,mm0 addps xmm5,xmm4 Beispiel- Befehle
1)
p → Vektor
add → add
b → byte
 
wiki/study/sira/11.04.2005.txt · Last modified: 2005/06/27 12:31 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki