Dunque... Non voglio entrare nell'argomento con test e link vari perchè non ne ho il tempo. Desidero solo spiegare un secondo la storia dei benchmark vs giochi per i test sui bottleneck e il perchè un benchmark non serve a nulla (o quasi) al fine di testare un'abbinata CPU-GPU.
1) Il benchmark NON è ottimizzato al fine di sfruttare poco o nulla la CPU. I benchmark grafici servono a far lavorare la GPU al massimo, proprio per valutarne le prestazioni indipendentemente dal resto dell'hardware. Se notate i benchmark completi hanno anche test combinati CPU e GPU (come quello della fisica) perchè nei test "comuni" la CPU non viene quasi nemmeno usata.
2) Un benchmark NON è un gioco. In un gioco il rendering è dinamico, seguie le azioni dell'utente, cambia di continuo. La CPU non può prevedere quello che il giocatore farà, se sparerà ad un barile che esploderà con una grande nuvola di fumo e fiamme e molti rottami. In un gioco la CPU deve calcolare nuovi dati in ogni momento e provare a prevedere quelli che calcolerà dopo. Se la previsione è errata deve svuotare le pipeline ricominciare il calcoclo da capo. nel benchmark ciò non avviene, perchè è una seuqenza scriptata e non interattiva. La CPU sa già cosa renderizzerà e quali elementi sono contenuti nella scena. Il carico, infatti,dipende dagli effetti video che è la GPU, e non la CPU, a calcolare.
3) Il benchmark NON è multiplayer. I giochi online, anche se a molti potrebbe suonare strano, impegnano un sacco di CPU in più rispetto a quelli single player. In una partita multiplayer il processore deve occuparsi della grafica, dei giocatori, della comunicazione con il server e di tante altre cose relative al gioco in rete. In una partita multiplayercon molte unità a schermo (un dethmatch di CS:GO, una partita a Starcraft e così via) sarà quindi molto più pesante di una partita a Far Cry 3 dal punto di vista della CPU. Il bottleneck quindi aumenta all'aumentare delle unità che la CPU deve controllare oltre che renderizzare. In un benchmark ciò non accade.
4) I benchmark sono ottimizzati, i giochi no. Riprendendo ciò che ho già detto nel punto Numero 1, occorre poi precisare che la maggior parte dei benchmark (vedi Unigine Valley, ad esempio, o heaven) sono pensati per testare la GPU mettendola sotto sforzo. Al fine di tirare fuori dall'hardware il massimo della potenza questi software sono ottimizzati fino alla singola virgola del codice. Il carico sulla CPu è solitamente ben distribuito tra i core e l'esecuzione scala bene sulel CPU multi-core.
E' quindi possibile, ad esempio, che una CPU scadente ottenga ottimi risultati con una 970 in 3D Mark che però poi non vengono riconfermati in gioco. Tantissima gente si basa su questi punteggi fasulli. Secondo 3D mark, ad esempio, è probabile che un i5 di prima generazione limiti poco o nulla una 970. Provando una partita di Bf4 con 64 giocatori la storia cambia completamente e ci ritroveremmo con una GPU utilizzata al 65-70%.
Inoltre, e questo lo dico in generale, il bottleneck non si ha solo quando la CPU lavora al 100%, ma è tutto proporzionato in base al gioco che si vuole far girare. Se un gioco sfrutta massimo 2 core il bottleneck si ha se due core lavorano al 100%, anche se gli altri restano sullo 0. Per questo spesso una CPU Intel, ingaming, lavora molto meglio rispetto ad una AMD. Un core Intel, infatti, è molto più potente di uno core AMD. Ci potremmo dunque ritrovare con un gioco che sfutta al massimo 4 core e vedere un FX con 4 core in idle e 4 al 100%. Questo è comunque bottleneck, perchè uno stesso i7 quad core con 4 core al 100% riesce a sviluppare molta più potenza di un FX8250, grazie all'ICP alto a favore della soluzione Intel.
Inoltre è necessario non confondere il concetto di potenza con quello di velocità. Mi spiego meglio: un camion è molto potente ma non per forza veloce, una Ferrari è molto veloce ma sicuramente non traina un rimorchio carico di massi su per una strada di montagna.
Un FX8350 utilizzato al 100% (quindi tutit gli 8 core / 4 moduli al 100%) è effettivamente molto potente, ma parliamo anche di una CPU molto lenta. Questo significa che il motore deve andare al massimo e solo su determinati compiti ben pianificabili (ad esempio un rendering) per funzionare bene. In caming conta anche che la CPU sia molto reattiva a livello di cache, gestione della memoria, prefetcher e così via. Ci ritroviamo quindi con un FX8350 molto potente (anche più del 20% migliore di un i5 4690k in rendering) che però perde in gaming contro la stessa CPU a causa del basso ICP e della cattivissima ottimizzazione della cache e del prefetcher. Inoltre la struttura a pipeline lunghe tipica degli FX consente appunto una buona velocità in rendering. Questo perchè le pipeline vengono riempite con dati certi e non dinamici, come invece accade nei giochi, dove ogni azione è a discapito dell'utente e non è ben stabilita come lo è invece un fotogramma di un video, che quello è e quello rimane.
L'ottimizzazione di cache e prefetcher delle CPU Intel, unite ad una buona frequenza e ad un altissimo ICP permettono una vittoria schiacciante delle CPU Core in gaming, spesso anche degli i3, contro la concorrenza.