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 di Computerphile sulle password in cui Mike Pound si vanta del supercomputer della sua azienda con 4 schede grafiche (Titan X, per l'esattezza).

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 elemento dovrei interessarmi di più?


11
Non penso che questa sia necessariamente una domanda tra Gorilla e Shark ... C'è una semplice domanda: "Perché Mike Pound misura l'abilità computazionale del suo computer con le sue schede grafiche e non con i suoi processori?" a cui si può rispondere e la sua risposta ha un valore costruttivo per i futuri lettori.
Maybe_Factor il

6
@gnat: nemmeno vicino. Naturalmente, la domanda, nella sua forma attuale, non riguarda davvero l'ingegneria del software. Ma suppongo che potrebbe essere interpretato come una domanda sull'ingegneria del sistema, dove system = "combinazione di hardware + software".
Doc Brown,

10
Un computer con 4 schede grafiche non equivale a un supercomputer (e nemmeno un cluster di 10 Raspberry Pis per quella materia).
Matti Virkkunen,

10
È solo una configurazione PC molto costosa, non un supercomputer ...
Bakuriu,

3
La semplice risposta a "Perché Mike Pound non misura l'abilità computazionale del suo computer con le sue schede grafiche" perché il contesto è la violazione della password? Se il problema con lo spazio è qualcos'altro, ciò di cui devi preoccuparti potrebbe essere qualcos'altro.
JimmyJames,

Risposte:


32

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

Perché? Una scheda grafica è sostanzialmente composta da MOLTI processori semplificati che funzionano tutti in parallelo. Per alcuni lavori di simulazione, molti calcoli possono essere facilmente parallelizzati ed elaborati in parallelo sulle migliaia di core disponibili nelle schede grafiche, riducendo il tempo di elaborazione totale.

quale articolo dovrei interessarmi di più? Dipende molto dal carico di lavoro che ti interessa e da come tale carico di lavoro può / è parallelizzato per l'uso su una scheda grafica. Se il tuo carico di lavoro è un insieme imbarazzantemente parallelo di semplici calcoli e il software è scritto per sfruttare le schede grafiche disponibili, allora più schede grafiche avranno un impatto molto maggiore sulle prestazioni rispetto a più CPU (dollaro per dollaro).


5
Aggiunta di alcuni numeri Supponiamo che il tuo computer principale sia un AMD Epyc Server, 64 core, 128 con Hyperthreading. Diciamo anche che un "core" della scheda grafica è solo il 10% più veloce. ONE TitanX ha ancora 3072 core cuda, circa 12000 per l'installazione. Prendi l'idea? Se è possibile eseguire il problema sulla scheda grafica, non è "più veloce" - è come confrontare la velocità di una carrozza con un'auto di formula 1.
TomTom,

3
+1 per "set imbarazzantemente parallelo di calcoli semplici", scritto molto bene. Breve e dritto al punto.
Michael Viktor Starberg,

11
@ TomTom: In realtà il mio confronto preferito è il confronto di un'auto di formula 1 (la tua CPU) con un treno proiettile. Certo, il treno e l'auto hanno approssimativamente la stessa velocità. Ma il treno può spostare 1000 persone dalla A alla B più velocemente della vettura di formula 1.
slebetman,

2
@slebetman il punto è che la CPU è in genere molto più veloce nelle prestazioni single-core (non approssimativamente alla stessa velocità). Forse possiamo scendere a compromessi e confrontare un aereo jet supersonico con una locomotiva a vapore.
Darren Ringer,

2
Se dovessi scegliere un'analogia basata sul veicolo, direi che la CPU è come un jet da combattimento (è molto più veloce per il trasporto da punto a punto e ha molti trucchi nella manica che altri veicoli non possono, ma può solo portare un carico molto piccolo) mentre la GPU è come una nave mercantile (può trasportare un carico significativamente maggiore in parallelo, ma avere un inversione molto più lenta).
Lie Ryan,

5

Dai un'occhiata a https://developer.nvidia.com/cuda-zone (e google cuda nvidia per molte altre informazioni). L'architettura cuda e le schede grafiche di fascia alta sono abbastanza ampiamente utilizzate per i supercomputer desktop. In genere è possibile mettere insieme una scatola da più Tflop per meno di $ 10K (usd) utilizzando componenti whitebox pronti all'uso.

Così...

Come appassionato di simulazione numerica, sogno di costruire un desktop esclusivamente per il lavoro di simulazione

... cuda è praticamente il miglior gioco in città per te. Forse prova a chiedere di nuovo in /scicomp// o in un altro sito Web stackexchange, più direttamente coinvolto in questo tipo di cose.

(A proposito, suppongo che tu sia a tuo agio con l'idea che stiamo parlando di una programmazione in parallelo massiccia qui, quindi potresti aver bisogno di familiarizzare con quel paradigma per la progettazione di algoritmi.)


E torniamo a Ordos come al solito.
Michael Viktor Starberg,

2
@MichaelViktorStarberg Sono l'unico a non capire il riferimento Ordos?
MarnixKlooster ReinstateMonica,

Temo che tu sia ...: /
Ismael Miguel il

4
@MarnixKlooster: ho dovuto Google "Ordos". Non sono sicuro di cosa abbia a che fare una "città fantasma" in Cina con supercomputer o teraflop.
Robert Harvey,

@MarnixKlooster In effetti non lo sei.
jpmc26,

2

Se stavo costruendo un computer, quale elemento dovrei interessarmi di più?

Da un punto di vista pratico dovresti probabilmente prestare molta attenzione alla scheda madre e alla CPU data 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 per tenerli tutti occupati.

Dovresti anche essere consapevole che le prestazioni della GPU sono spesso riportate nei FLOP a precisione singola e diminuiscono un po 'per una doppia precisione. Se hai bisogno della massima precisione nelle tue simulazioni, finirai molto al di sotto della velocità pubblicizzata.

Vai alle gare di ingegneria del software

Ci sono in realtà due preoccupazioni principali dal punto di vista del software, il collo di bottiglia di Von Neumann e il modello di programmazione. La CPU ha un buon accesso alla memoria principale, la GPU ha una grande quantità di memoria più veloce integrata. Non è noto che il tempo in cui i dati si spostano dentro e fuori dalla GPU negano completamente qualsiasi vittoria di velocità. In generale, la CPU è vincente per un calcolo moderato su grandi quantità di dati, mentre la GPU eccelle nel calcolo pesante su quantità minori. Tutto ciò ci porta al modello di programmazione.

Ad alto livello il problema è l'antico e onorato dibattito MIMD / SIMD. I sistemi a istruzione multipla / dati multipli sono stati i grandi vincitori dell'informatica generale e commerciale. In questo modello, che include SMP, vi sono più processori che eseguono ciascuno il proprio flusso di istruzioni individuale. È l'equivalente al computer di una cucina francese, dove dirigi un piccolo numero di cuochi qualificati per completare compiti relativamente complicati.

I sistemi a istruzione singola / dati multipli, d'altra parte, assomigliano più da vicino a un'enorme stanza piena di impiegati incatenati ai loro banchi seguendo le istruzioni di un controller principale. "Tutti aggiungono le righe 3 e 5!" È stato utilizzato nella sua forma pura nell'ILLIAC e in alcuni sistemi "mini-super", ma ha perso il mercato. Le GPU attuali sono cugine strette, sono più flessibili ma condividono la stessa filosofia generale.

Per riassumere brevemente:

  • Per ogni data operazione la CPU sarà più veloce, mentre la GPU può eseguirne molte 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. Si vince solo se si eseguono calcoli sufficienti per compensare il tempo di trasferimento.
  • Il codice pesante nei condizionali sarà in genere più felice sulla CPU.
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.