Perché Mike Pound misura l'abilità computazionale del suo computer con le sue schede grafiche e non con i suoi processori?

17

Di recente stavo guardando un ottimo video Computerphile sulle password in cui Mike Pound si vanta del supercomputer della sua azienda che ha 4 schede grafiche (Titan X's, per essere precisi).

Come appassionato di simulazione numerica, sogno di costruire un desktop esclusivamente per il lavoro di simulazione. Perché Mike Pound misura l'abilità computazionale del suo computer con le sue schede grafiche e non con i suoi processori? Se stavo costruendo un computer, quale oggetto mi dovrebbe interessare di più?

    
posta Ra31513 05.10.2017 - 06:29
fonte

3 risposte

32

Mike Pound valuta ovviamente l'abilità computazionale delle schede grafiche superiore alla capacità computazionale delle CPU.

Perché? Una scheda grafica è fondamentalmente composta da MANY processori semplificati che funzionano tutti in parallelo. Per alcuni lavori di simulazione, molto del calcolo può essere facilmente parallelizzato ed elaborato in parallelo sulle migliaia di core disponibili nelle schede grafiche, riducendo il tempo di elaborazione totale.

di quale elemento dovrei preoccuparmi di più? Dipende molto dal carico di lavoro che ti interessa e dal modo in cui tale carico di lavoro può / è parallelizzato per l'uso su una scheda grafica. Se il tuo carico di lavoro è un set imbarazzante di semplici calcoli paralleli e il software è scritto per sfruttare le schede grafiche disponibili, più schede grafiche avranno un impatto prestazionale molto maggiore rispetto a più CPU (dollaro per dollaro).

    
risposta data 05.10.2017 - 06:59
fonte
5

Controlla link (e google cuda nvidia per molte altre informazioni). L'architettura cuda e le schede grafiche high-end sono ampiamente utilizzate per i supercomputer desktop. Generalmente puoi mettere insieme una scatola con diversi Tflop per meno di $ 10K (usd) usando componenti della whitebox disponibili in commercio.

...

As a numerical simulation enthusiast, I dream of building a desktop solely for simulation work

... Cuda è praticamente il gioco migliore in città per te. Forse prova a chiedere di nuovo in link o in un altro sito Web di stackexchange, più direttamente coinvolto in questo genere di cose.

(A proposito, presumo che tu sia a tuo agio con l'idea che stiamo parlando di programmazione massicciamente parallela qui, quindi potresti aver bisogno di familiarizzare con quel paradigma per la progettazione dell'algoritmo.)

    
risposta data 05.10.2017 - 12:52
fonte
2

If I was building a computer, which item should I care about more?

Da un punto di vista pratico dovresti probabilmente prestare un po 'di attenzione alla scheda madre e alla CPU, vista la relativa difficoltà di aggiornamento rispetto alla GPU. Dopo l'acquisto è un momento terribile per scoprire che non hai spazio per quattro GPU o un processore abbastanza veloce da tenerli tutti occupati.

Dovresti anche essere consapevole del fatto che le prestazioni della GPU vengono spesso riportate in FLOP a precisione singola e si riducono un po 'per la doppia precisione. Se hai bisogno della precisione extra nelle tue simulazioni, ti ritroverai ben al di sotto della velocità pubblicizzata.

Off alle gare di ingegneria del software

Ci sono due problemi principali da un punto di vista del software, il collo di bottiglia di Von Neumann e il modello di programmazione. La CPU ha un accesso abbastanza buono alla memoria principale, la GPU ha una grande quantità di memoria più veloce a bordo. Non è sconosciuto che il tempo che sposta i dati dentro e fuori la GPU nega completamente qualsiasi vincita di velocità. In generale, la CPU è vincente per il calcolo moderato su grandi quantità di dati, mentre la GPU eccelle per il calcolo pesante su importi minori. Tutto ciò ci porta al modello di programmazione.

Ad un alto livello il problema è l'antico e onorato dibattito MIMD / SIMD. I sistemi Multiple-Instruction / Multiple-Data sono stati i grandi vincitori nell'informatica generale e commerciale. In questo modello, che include SMP, ci sono più processori ognuno che esegue il proprio flusso di istruzioni individuale. È l'equivalente informatico di una cucina francese, dove dirigere un piccolo numero di cuochi esperti per completare compiti relativamente complicati.

I sistemi Single-Instruction / Multiple-Data, d'altra parte, assomigliano più a una grande stanza piena di impiegati incatenati alle loro scrivanie seguendo le istruzioni di un controller master. "Tutti aggiungono le linee 3 e 5!" Veniva usato nella sua forma pura nell'ILLIAC e in alcuni sistemi "mini-super", ma persi nel mercato. Le attuali GPU sono un cugino vicino, sono più flessibili ma condividono la stessa filosofia generale.

Per riassumere brevemente:

  • Per ogni operazione la CPU sarà più veloce, mentre la GPU può eseguire molti contemporaneamente. La differenza è più evidente con i float a 64 bit.
  • I core della CPU possono funzionare su qualsiasi indirizzo di memoria, i dati per la GPU devono essere impacchettati in un'area più piccola. Vinci solo se stai facendo abbastanza calcoli per compensare il tempo di trasferimento.
  • Il codice con condizioni condizionali in genere sarà più felice sulla CPU.
risposta data 05.10.2017 - 17:57
fonte

Leggi altre domande sui tag