Flex FP, AMD Bulldozer e i calcoli in virgola mobile

AMD parla di Flex FP, l'unità in virgola mobile dell'architettura Bulldozer. Sarà condivisa tra i due core integer di ogni modulo Bulldozer e garantirà prestazioni elevate, consumi ridotti e un'occupazione del die contenuta.

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

L'unità in virgola mobile Flex FP consentirà all'architettura AMD Bulldozer (Bulldozer e Bobcat, le nuove architetture per CPU di AMD) dei futuri processori desktop e server di raggiungere "prestazioniformidabili per applicazioni tecniche e finanziarie", nonché "efficienza in termini di dimensioni occupate nel die e consumi".

Secondo John Fruehe, direttore marketing per i prodotti Server/Workstation di AMD, "Flex FP è un'unità floating point condivisa tra i due core integer di un modulo (quindi un processore Interlagos a 16 core dovrebbe avere 8 unità Flex FP). Ogni unità Flex FP ha il proprio scheduler e non conta sull'interger scheduler per programmare i comandi in virgola mobile, né usa risorse integer per programmare esecuzioni a 256 bit. Questo aiuta ad assicurarci che l'unità FP rimanga sempre occupata quando vengono richiesti calcoli in virgola mobile. Le architetture del nostro avversario (Intel, Sandy Bridge) hanno un singolo scheduler sia per i calcoli integer che in virgola mobile. Tutto è gestito da un singolo scheduler condiviso", ha spiegato Fruehe.

"Le istruzioni AVX possono amministrare calcoli in virgola mobile a 256 bit. […] I comandi a singola precisione sono a 32 bit e, se in doppia precisione, a 64 bit. Con le unità FPU a 128 bit diffuse oggi potete eseguire quattro comandi a singola precisione o due comandi in doppia precisione in parallelo per ciclo. Con AXV potete raddoppiare tutto questo, eseguendo otto comandi a 32 bit o quattro comandi a 64 bit per ciclo - ma solo se l'applicazione supporta AVX. Se non lo supporta la nuova FPU a 256 bit lavorerà a 128 bit. Questo a meno che non abbiate Flex FP".

"L'unità FlexFP è basata su due unità FMAC a 128 bit. Ogni FMAC può eseguire istruzioni FMAC, FADD o una FMUL per ciclo. Le soluzioni della concorrenza possono eseguire solo una FADD sulla loro singola pipeline FADD o una FMUL sulla loro singola pipeline FMUD. Potete capire la potenza di Flex FP che assicura sia a 128 che 256 bit flessibilità per le applicazioni tecniche. Con FMAC i comandi di moltiplicazione e addizione non iniziano ad accumularsi".

Architettura Bulldozer

Flex FP è quindi una singola unità in virgola mobile a 256 bit condivisa da due core integer. Per ogni ciclo, entrambi i core possono operare su dati paralleli a 256 bit attraverso due istruzioni a 128 bit o una istruzione a 256 bit. Oppure ognuno dei core integer può eseguire comandi a 128 bit simultaneamente.

"Con il carico di lavoro tipo dei data center odierni, la maggior parte del lavoro di calcolo è integer e solo una piccola porzione è in virgola mobile. Quindi in molti casi non c'è bisogno di avere una grande unità FP a 256 bit che occupi tutto lo spazio sul die e consumi molta energia. Condividendo una singola unità FP a 256 bit per ciascuno dei due core, possiamo contenere consumi e le dimensione del die, aiutando a mantenere bassi sia i costi di acquisizione che quelli di amministrazione a lungo termine", ha spiegato Fruehe.

Flex FP permette ad AMD di aggiungere più core integer mantenendo lo stesso TDP. L'unità è in grado di ridurre il proprio consumo in modalità "idle attiva" ad appena il 2% del proprio consumo di picco.

"Ci sono ovviamente dei benefici nel ricompilare il codice per supportare le nuove istruzioni AVX. Se pensate però che avremo del vecchio codice 128-bit FP in giro per diverso tempo, non credete che avere un'unità in virgola mobile flessibile sia una scelta migliore per le applicazioni? Il supporto da parte del software alle funzionalità a 256-bit AVX richiederà una ricompilazione e cioè  tempo e test. Non mi aspetto di vedere un rapido passaggio ad AVX", ha concluso Fruehe.