Imho fake grande una casa. Ha troppi shaders quasi da 1080
le 1070 per portatili possono essere vendute sia con 1920 che con 2048 cuda core.
cambiano le frequenze operative e viene fatto per migliorare il rendimento facendole consumare meno (non c'e' piu' una distinzione tra portatile e desktop, se non i parametri "consigliati").
nelle 1070 "mobile" il boost clock sta a 1635 (+/-10% a discrezione del produttore), ma possono benissimo clockare a velocità piu' alta, anche se la mappa di settaggio è diversa dalle desktop.
la differenza marcata ed importante tra la "mobile" da 2048 e la semplice desktop da 1920 è dovuta principalmente all'implementazione di base, pur rimanendo sullo stesso chip:
le desktop da 1920 usano solo 3 GPC su 4 del GP104, quindi tagliano, di fatto, un'intero GPC, che racciude in se sia gli SM (i sottogruppi da 128 cuda core), sia l'engine grafico).
usare 2048 cuda core significa adottare tutti e 4 i GPC, disabilitando solo parte degli SM; in GP104 si hanno 5 SM da 128 per ogni GPC che porta il conteggio a 20; la 1080 li abilita tutti mentre la 1070 desktop li abilita tutti e 5 su singolo GPC ma elimina uno di questi, portando il conteggio a 15 SM.
la 1070 "mobile" da 2048 disabilita invece un solo SM per ogni GPC, portando il conteggio a 16.
questo porta ad usare 4 engine grafici completi, e non solo 3.
diminuisce il carico per singolo engine, in quanto gestisce solo 4 SM invece che 5;
uniforma il "tenore termico", in quanto il chip lavora su quasi tutta la superficie e non localizzato su 3/4 di questo;
le maggiori risorse date da 2048 cuda invece che 1920, il 6.66% in piu', possono permettere frequenze inferiori per bilanciare le stesse prestazioni, del 6.66% in meno, ed anche se pascal ha una buona linearità nel rapporto frequenza/consumo, sicuramente diminuire il massimo del 6-7% permette di stare in una zona della curva con minor pendenza;
la risposta sul software è "in linea" con l'implementazione piu' usata sui giochi, soprattutto dx11... usi 4 (o 8 se DX11.3) thread, hai 4 GPC su cui sistemare le risorse, senza dover sovraccaricare una di queste.
prendiamo in esame questo confronto:
in effetti sarebbe molto meglio guardare il comportamento su un i5 e non un i7, perchè l'uso dell'HT offusca effettivamente l'indice di utilizzo dei singoli core fisici
piccola nota: faccio presente che l'HT non è solo un core logico, ma l'occupazione che viene mostrata (la %) è riparametrata rispetto a quante risorse rimangono disponibili in relazione all'uso del suo "gemello" logico sullo stesso core fisico... se uso uno dei due core logici al 50%, all'altro rimangono solo il 50% di risorse computazionali, e se mi indica 100% sto usando, in assoluto, la stessa potenza computazionale del gemello logico sullo stesso core fisico, ossia 50% in assoluto, quindi 50+50=100% d'uso del core fisico; se uso il 50% anche su questo sto in effetti usando il 50% del 50% (0.5x0.5=0.25), quindi il 25% assoluto e quindi 50%+25%=75% del core fisico.
se devo capire il reale uso dovrò prima riconoscere le coppie gemelle e quindi sommare una al valore assoluto dell'altro.
se si usasse un i5 non si riscontrerebbe questa "alterazione" dei dati mostrati sull'occupazione del singolo core logico.
altra piccola nota: la frequenza della GTX 1080, in questa sequenza, è leggermente piu' alta, ma l'uso dell'occupazione della scheda non è mai allo stesso livello della 1070.
questo è dovuto essenzialmente al fatto che le specifiche risorse del processore che vengono sfruttate da questo gioco sono saturate con l'uso della 1080 e limitano la potenza espressa dalla scheda.
la 1080 risulta cosi' decurtata, considerando anche la differenza della frequenza, di un 10% circa ed allo stesso valore l'occupazione totale della CPU che risulta del +23% superiore (e la % totale di occupazione della CPU è quella effettiva di tutto il processore), a fronte, pero' di un aumento di risorse del 33% (da 1920 a 2560 cuda), quindi con un 10% in meno di CPU, insomma...
altra nota: le prestazioni generali sono generalmente guidate dal megathread grafico... puoi suddividere in 100 sottothread, ma se è il mega thread ad essere limitato dalla CPU, le prestazioni si rifaranno allo sfruttamento della CPU di questo specifico thread; quando pero' hai pochi core ed il gioco è stato concepito per tanti sottothread i core usati da questi possono saturarsi e saranno i sottothread a limitare le prestazioni.
succede quando non si bilanciano bene i carichi...
generalmente è piu' difficile dividere in sottothread grafici che riuscire a limitare il peso computazionale del megathread, ma ci sono esempi di giochi in cui sono proprio i sottothread a limitare se si hanno a disposizione pochi core sulla CPU (ROTR, ad esempio, dopo la patch dx12 ha limitato il megathread del 7% circa, ma se non hai piu' di 6 core fisici le prestazioni sono assai limitate).
detto questo, e parametrizzando per la decurtazione prestazionale che si ha in questo specifico setting, su questo specifico gioco sulla 1080 (l'overclock della CPU sulla 1080 avrebbe compensato), si nota che l'uso della 1070 implica una dinastia di thread che si puo' concentrare in 6 sottothread grafici piu' un megathread, mentre la 1080 usa un megathread e 8 sottothread grafici; ogni GPC riesce a gestire, quindi, 2 thread; 6 per la 1070, 8 per la 1080...
riprendiamo l'inizio e vediamo che l'uso di 2048 cudacore, e quindi l'uso di 4 GPC, garantirebbe anche sulla 1070 8 thread.
prestazionalmente, sul video ad esempio che ho portato, non cambierebbe nulla, se non un uso piu' bilanciato dei singoli core logici (ma non l'occupazione totale);
le cose sarebbero pero' diverse qualora non hai processori ad elevata frequenza.
se confronto un'ipotetica 1070 da 1920 ed una da 2048 su una CPU 4+4 che ha una frequenza che non limita la 1920, che in effetti sfrutta solo 3/4 della sua architettura, non avro problemi a spalmare il carico su tutti gli 8 core; se invece uso una CPU 4+4 (o 8 e superiore) che viene saturata dall'uso della 2048, perchè il suo megathread e i sottothread occuopano totalmente le specifiche risorse della CPU, sulla 1920 avro problemi di sovrasaturazione, quindi andrà meno, per il semplice fatto che usero' 6 thread singolarmente piu' pesanti invece che spalmare il computo su 8.
in questo caso ho thread mediamente piu' pesanti del 33% e se prima un thread occupava per intero le risorse di un core, in questo caso la risorsa mi limiterà in tale parametro le prestazioni (che poi verranno spalmate sul carico totale, facendomi perdere quel 33% su 6 thread, ossia il 5-10% a seconda se lo spike di richiesta prestazionale avviene solo su un thread alla volta o su piu' thread).
quindi, in finale, va uguale se non hai colli, ma se hai CPU meno performanti va meglio...
è principalmente questo il motivo per cui la 1070 "mobile" ha questa implementazione; le CPU dei portatili non garantiscono elevate frequenzee numero di core, quindi frazionare maggiormente il carico aiuta parecchio.
domani, che si avranno gli i3 serie 8000 quadcore, ma si, ma limitati nel boost e il non K nel clock, ed oggi con i Ryzen 5 quadcore, avere la 2048 sarebbe meglio.
logicamente questo si accentua in DX12, ma dipende da gioco a gioco, da PC a PC...
credo che aggiustare quell'implementazione sia anche migliorativo per quanto riguarda le rese (meglio un solo SM a GPC che un intero GPC, perchè se ho 2 SM poco performanti sul GP104, per farla diventare una buona 1070 dovrebbero stare nello stesso GPC... cosi' hai piu' "smadonnamenti" di configurazione bios (devi disabilitare piu' cose in mezzo al chip, non una sola, quindi un controllo qualitativo maggiore), ma anche una maggiore longevità della scheda, che sfrutta meglio i processori multicore...
poi intervengono molte altre cose:
se la fanno a 2048 l'abbassano di frequenza e TDP base, perchè 4 GPC con 4 SM a testa, in overclock raggiungerebbe le prestazioni di molte 1080 di adesso...
o migliorano conseguentemente anche la 1080 (ma in quel caso solo sulle frequenze e power limit massimo), o, piu' intelligentemente, la fanno piu' efficente strozzando il TDP e il margine di guadagno.