SIMD und VLIW

Heute wieder ein Thema aus dem Bereich Computer. Ich habe meinen Artikel über SIMD und VLIW aktualisiert (in dem noch mehr drin steht, für alle die der Blog nicht reicht). Fangen wir mit der Begriffsdefinition an:

  • SIMD steht für Single Instruction, Multiple Data
  • VLIW steht für Very Long Instruction Word

Fangen wir mit SIMD an. Eine klassische Assembleranweisung eines Prozessors bearbeitet einen oder zwei Werte die in einem Register stehen. Bei SIMD sind es mehr als maximal zwei Werte, die entweder in Registern stehen, die viele Werte fassen oder in überlangen Registern, in denen einzelne Teilbereiche jeweils für einzelne Werte stehen. Es gibt dann noch SISD (Single Instruction Single Data, das sind entspricht den meisten Prozessorbefehlen eines x86-Prozessors und MIMD (Multiple Instruction, Multiple Data), das liegt bei einem Mehrkernprozessor oder einem Rechner mit mehreren CPUs vor. Continue reading „SIMD und VLIW“

Der Compiler ist schuld – oder auch nicht

Ein Compiler hat die Aufgabe eine höhere Programmiersprache in Maschinensprache zu übersetzen. Bei Großrechnern haben kompilierte Programme schon in den Sechzigern die Maschinensprache sukzessive verdrängt. Im PC Bereich war wegen der anfangs langsamen Prozessoren und dem geringen Speicher Assembler noch in den ersten Jahren wichtig, aber heute sicher nicht mehr.

Machen wir einen geschichtlichen Rückblick. Früher hat man auch evaluiert, wie effizient Compiler sind. Die Ergebnisse sind natürlich stark vom Quelltext abhängig. Die NASA hat für die Flugsoftware der Shuttle evaluiert wie schnell HAL als höhere Programmiersprache verglichen mit Assembler war. Und das Ergebnis war damals: 10-20% langsamer. Das Betriebssystem, das zeitkritisch war, wurde daraufhin in Assembler geschrieben, die „Anwendungen“ dann in HAL. Ein ähnliches Ergebnis gab es bei Tests der ersten Versionen von Turbo Pascal. Das ist erfreulich, denn das Programmieren ist doch erheblich leichter in einer Hochsprache. Continue reading „Der Compiler ist schuld – oder auch nicht“

Das Ende eines Grundsatzes

Auch so könnte man ein Fazit aus den Benchmarks ziehen, welche die ct in ihren aktuellen Heft veröffentlicht. Sie hat Prozessoren von AMD und Intel unterschiedliche Benchmarks laufen lassen und auch die Prozessoren waren bunt gemischt – vom 35 Euro Exemplar bis zum neuen 950 Euro iCore i7 Haswell-EP Flagschiff.

Ich hatte jahrelang als Grundsatz beim Rechnerkauf bei allem auf die Mitte zu achten. Also bei Arbeitsspeicher, Prozessor, Festplattengröße. Damit bin ich immer gut gefahren. Man kann das auch gut begründen. Bei Festplatten ist es so, dass wenn man mehr Geld ausgibt, die Kapazität zuerst überproportional ansteigt, um dann stark abzuflachen. Bei Arbeitsspeicher bedeuten zu wenig, dass der Rechne rstark ausgebremst wird, weil viel auf die Festplatte ausgelagert ist, ist er zu groß wird er eventuell gar niemals vollständig genutzt. Bei Prozessoren gab es lange Zeit auch die Beziehung dass die Leistung jenseits der billigsten Exemplare zuerst stark anstieg und man bei den teuren Exemplaren extrem viel drauf zahlt für wenig Mehrleistung.

Wenn man das richtige Benchmark nimmt, findet man das auch noch in der ct bestätigt, so erreicht ein Celeron J1900 (35 Euro) 5% der Leistung eines ICore i7 5960X (950 Euro) – zumindest im Linpack Benchmark. Man kann aber auch mal sehen, wie schnell der Prozessor bei Benchmarks mit real existierenden Anwendungsprogrammen ist so der Office PC Mark 8 oder Sysmark 2014. Da kommt er Celeron schon auf 50-60% der Leistung des genannten iCore Prozessors. Der in etwa gleich teure Celeron G1840 erreicht sogar 80%. Wie diese enorme Diskrepanz? Continue reading „Das Ende eines Grundsatzes“