Menü
c't Magazin

AMD Bulldozer: Leitfaden für Software-Entwickler erschienen

Von
vorlesen Drucken Kommentare lesen 62 Beiträge

Verschaltung von vier Bulldozer-Prozessoren.

(Bild: AMD)

Auf der AMD-Webseite steht seit einigen Tagen der "Software Optimization Guide for AMD Family 15h Processors" zum Download bereit (PDF-Datei). Der Leitfaden ist für Programmierer gedacht, deren Software die neuen Möglichkeiten der kommenden Bulldozer-Mikroarchitektur ausreizen soll: Etwa Advanced Vector Extensions (AVX), Load-Execute-Befehle für Gleitkomma-(Floating-Point-) oder Ganzzahl-(Integer-)Operanden, Fused Multiply-Accumulate (FMAC) und viele mehr. Daneben beschreibt der Leitfaden auch Details der Bulldozer-Prozessoren, die als Zambezi alias FX (4000, 6000, 8000) für AM3+-Mainboards sowie in den Server-Versionen Valencia und Interlagos für C32- und G34-Boards kommen werden.

Die Bulldozer-FPU

(Bild: AMD)

Laut dem AMD-Dokument enthalten (die ersten) Bulldozer-Prozessoren jeweils vier Compute Units, die wiederum je zwei (Integer-)Cores sowie eine Gleitkomma-Einheit (Floating-Point Unit, FPU) besitzen. Letztere besteht aus zwei 128-Bit-FMAC-Einheiten, die pro Taktschritt aber auch einen einzelnen 256-Bit-(AVX-)Befehl ausführen können. Zudem besitzt jede 128-Bit-FMAC auch eine IMAC-Einheit für ganze Zahlen.

AMD veröffentlicht in dem Dokument auch eine Rangliste der wichtigsten Verbesserungen, die Bulldozer bringt.

Optimierungen nach Rangfolge
Rang Bezeichmung
1 Load-Execute Instructions for Floating-Point or Integer Operands
2 Write-Combining
3 Branches That Depend on Random Data
4 Loop Unrolling
5 Pointer Arithmetic in Loops
6 Explicit Load Instructions
7 Reuse of Dead Registers
8 ccNUMA Optimizations
9 Multithreading
10 Prefetch and Streaming Instructions
11 Memory and String Routines
12 Floating-Point Scalar Conversions

Demnach verspricht AMD durch die Load-Execute-Befehle, die ein Datum einlesen und sofort verarbeiten, besonders große Geschwindigkeitsvorteile. Sie gibt es auch für SIMD-Befehle und sollen dort wiederum vor allem bei "Misaligned"-Zugriffen unnötige Wartezeiten vermeiden. Durch den "dichter gepackten" Code sollen aber auch der Befehls-Cache und indirekt auch der FP-Scheduler effizienter arbeiten. (ciw)