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.