Ciao Mondo 3!

AMD Interlagos: l’architettura Bulldozer per il mondo server - Ecosistema software

Indice articoli


Ecosistema software

Per sfruttare al meglio l’architettura Bulldozer si devono riconoscerne le sue peculiarità:

  • Ottimizzare il software per la sua architettura a moduli: il sistema operativo o l’Hypervisor devono riconoscere Bulldozer e agire di conseguenza;
  • Sfruttare le nuove istruzioni di Bulldozer, con particolare riferimento alle istruzioni SIMD, SSEn, AVX, di accelerazioni crittografiche e le esclusive FMA4 e XOP;
  • Sfruttare i contatori per la misurazione delle prestazioni per poter monitorare e migliorare il software;
  • Sfruttare lo stato C6 per consumare meno e/o abilitare un turbo core più spinto (ad esempio core parking)
  • Sfruttare le nuove istruzioni per l’accelerazione della virtualizzazione, per ottenere prestazioni quasi identiche a una macchina nativa.

AMD_Interlagos_17

Tra le varie istruzioni supportate dalle CPU AMD Bulldozer, segnaliamo quelle esclusive di AMD: FMA4 e XOP.

FMA4 implementa la fused multiply accumulate, nella formula d=a+b x c, che consente grande flessibilità di programmazione, permettendo di scegliere i 4 registri in modo indipendente. Tale istruzione è in grado di eseguire questo calcolo in modo pipelined e una FPU di un modulo Bulldozer è in grado di eseguire una FMA a 256 bit o 2 a 128 bit Floating point e contemporaneamente una FMA a 256 bit o 2 a 128 bit Intere in un singolo ciclo di clock.

Questa classe di istruzioni accelera le applicazioni che richiedono questo tipo di calcoli. IBM, SPARC e le CPU Itanium hanno già questo tipo di istruzioni. Le CPU Intel di classe x86 le implementeranno nel 2013 ma nella versione FMA3, più limitata, in cui uno dei 4 registri è sovrascritto. Questo è dovuto alla microarchitettura interna delle CPU INTEL che non consente di avere più di 3 registri per istruzione.

AMD_Interlagos_18

 

 

XOP comprende istruzioni a 128 e 256 bit a 3 o 4 operandi di sommatoria o sottrazione orizzontale, compare, shift, rotazione, permutazione, accumulazione e produttoria intera, estrazione di frazione e conversione da e verso floating point a 16 bit, usati nelle schede video.

Per sfruttare appieno la potenza delle CPU Bulldozer, i software devono essere compilati con l’opzione SSE e AVX a 128 bit e l’opzione FMA4 e linkati alla libreria ACML versione 5.x.

Se il software supporta le istruzioni in comune con INTEL e non usa il compilatore INTEL (che controlla che la CPU sia INTEL prima di abilitare il supporto alle nuove istruzioni) allora non deve essere ricompilato. Se si vuole far uso delle istruzioni FMA4 o XOP, si deve ricompilare il software o linkarlo con le librerie ACML 5.x.

Il supporto alle nuove istruzioni di virtualizzazione è in fase di implementazione in tutti i software e kernel più recenti.

Il supporto a Bulldozer è attivo su tutti i compilatori più recenti, eccetto quello INTEL in cui XOP e FMA4 non sono supportati e bisogna forzare a mano l’uso di AVX con lo switch –mAVX.

Librerie:

  • la libreria ACML 4.0 di AMD è compatibile con Bulldozer. La versione 5.0 è ottimizzata per Bulldozer. Essa contiene le routine di algebra lineare base (BLAS), le routine di algebra avanzata (LAPACK), routine per le FFT e i numeri casuali. E’ in sviluppo la versione 5.1 della libreria ACML che contiene le stesse routine in doppia precisione ed estese ai numeri complessi;
  • la libreria LibM di AMD, versione 3.0 ottimizzata per Bulldozer, contiene le funzioni matematiche standard ottimizzate per tale CPU;
  • infine la libreria IPP di INTEL che su CPU AMD è limitata alla versione con SSE3.

 

Pubblicità


Corsair

Articoli Correlati - Sponsored Ads