Le GPU attualmente disponibili supportano l'aritmetica in virgola mobile a doppia precisione?


17

Ho eseguito il codice GROMACS di dinamica molecolare (MD) su un cluster Ubuntu Linux costituito da nodi contenenti 24 CPU Intel Xeon. Il mio particolare punto di interesse risulta essere in qualche modo sensibile alla precisione aritmetica in virgola mobile, quindi ho dovuto eseguire GROMACS in doppia precisione anziché in precisione singola, nonostante il costo computazionale più elevato della doppia precisione. Quindi sul cluster, ho compilato GROMACS in doppia precisione.

Sto prendendo in considerazione l'acquisto di alcune GPU, poiché potrebbe esserci un relativo acceleratore ("accelerazione GPU") per le CPU. Tuttavia, ho bisogno di una GPU che mi permetta di fare un'aritmetica a doppia precisione. Sai se tale hardware è disponibile in commercio? Un recente post sulla mailing list di GROMACS suggerisce che le GPU a doppia precisione non sono disponibili in commercio:

L'hardware non lo supporta [aritmetica a doppia precisione] ma AFAIK.

Questa pagina di Wikipedia sembra suggerire che le GPU a doppia precisione non sono comuni poiché potrebbero essere inefficienti:

Le implementazioni di virgola mobile su GPU Nvidia sono per lo più conformi IEEE; tuttavia, questo non è vero per tutti i fornitori. Ciò ha implicazioni per la correttezza che sono considerate importanti per alcune applicazioni scientifiche. Mentre i valori a virgola mobile a 64 bit (float a doppia precisione) sono comunemente disponibili sulle CPU, questi non sono universalmente supportati sulle GPU; alcune architetture GPU sacrificano la conformità IEEE mentre altre mancano del tutto di doppia precisione. Ci sono stati sforzi per emulare valori in virgola mobile a precisione doppia su GPU; tuttavia, il compromesso di velocità annulla in primo luogo qualsiasi vantaggio derivante dallo scarico del calcolo sulla GPU.

Questa pagina di NVIDIA Tesla , riferendosi al "Prestazioni di picco in virgola mobile a doppia precisione" nel grafico, sembra suggerire che i calcoli di doppia precisione possano , di fatto, essere eseguiti sulle loro GPU (sebbene a costi di calcolo più elevati).

Quindi, cosa dovrei credere? Hai qualche esperienza con questo problema?


controlla il gtx titan è basato su gk110 e ha il doppio supporto di precisione ..... anche se è un po 'costoso ..... circa $ 1k

Wikipedia non ha sempre informazioni aggiornate su argomenti in rapida evoluzione ...
Jeff,

Risposte:


17

La doppia precisione è abbastanza comune nelle GPU più recenti. Ad esempio, possiedo una NVIDIA GTX560 Ti (una fascia piuttosto bassa quando si tratta di elaborazione) che non ha problemi a eseguire ViennaCL in doppia precisione. Da qui (sezione 4) , tutte le schede NVIDIA dalla GTX4xx in poi supportano nativamente la doppia precisione.

Immagino che le informazioni di GROMACS siano semplicemente obsolete.


5
Molto obsoleto I processori NVIDIA, in particolare, hanno da anni supporto a doppia precisione. Francamente, era significativamente più lento della capacità di precisione singola, ma era lì (e non solo emulato) nelle primissime GPU a marchio Tesla, e probabilmente prima. Incarnazioni più recenti hanno ridotto considerevolmente il divario tra segnale e supporto a doppia precisione.
Michael Grant,

Sì, il documento che ho collegato menzionava cifre di circa un fattore di 8 differenza di prestazioni quando era necessaria l'emulazione, ma ora che i chip sono progettati per questo, è più vicino a un fattore di 2. Direi che probabilmente è dovuto a latenza della memoria della scheda da VRAM ai processori, ma è semplicemente una mia ipotesi.
Godric Seer,

In realtà il motivo principale era che le GPU precedenti semplicemente non dedicavano molto spazio ai chip per il calcolo a doppia precisione. Secondo questa pagina , la serie GK110 ha 8 volte il numero di unità a doppia precisione per "blocco SMX" (qualunque cosa ciò significhi) rispetto alla serie GK104.
Michael Grant,

1
Ah, sì, in realtà mi riferivo alla differenza 2x delle GPU attuali per quanto riguarda il commento sulla larghezza di banda della memoria.
Godric Seer,

Gotcha. Non intendevo scendere in questa tana del coniglio. La tua risposta va bene, motivo per cui ti ho commentato e votato invece di aggiungere la mia risposta ;-)
Michael Grant,

8

Ogni GPU con SM 1.3 (Tesla / GTX2xx) o superiore ha un supporto hardware a doppia precisione. A partire dall'architettura Fermi, le varianti Quadro e Tesla offrono un supporto a doppia precisione migliore rispetto ai modelli Ge Force di consumo.

La cosa strana è che il supporto a doppia precisione Ge Force Kepler / GTX6xx è inferiore al supporto GeForce Fermi / GTX5xx per migliorare la differenziazione di Tesla in Kepler K20 / K20x. A comporre la stranezza, i Tesla K10 hanno un supporto a doppia precisione di livello Ge Force. E più recentemente, questo è stato completamente sconvolto dall'introduzione della Ge Force GTX Titan, che ha un supporto completo a doppia precisione e molte funzionalità CUDA finora presenti solo sui modelli Tesla. Un Titano GTX costa ~ $ 1.000 - un affare IMO urlante.



0

Secondo questa discussione , le GPU Tesla e Titan sono le più adatte (delle GPU Nvidia) per la doppia precisione.

Guardando ad esempio un elenco di GPU Nvidia su Wikipedia (una tabella simile per le GPU AMD è qui ) e confrontando la potenza di elaborazione a precisione singola e doppia (in termini di GFLOP) si vede che le prestazioni a doppia precisione sono molto inferiori alla metà della precisione singola prestazioni per la maggior parte delle altre GPU. Ad esempio per la serie GTX 900, l'articolo menziona che la doppia precisione è 1/32 della singola precisione, mentre questo articolo di Wikipedia afferma che per la serie GTX 700, la doppia precisione è 1/24 della singola precisione prestazioni (ad eccezione di Titano dove può arrivare fino a 1/3 della prestazione a precisione singola).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.