|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#921 | |||
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6170
|
Quote:
Nell' implementazione massima (registri a 2048bit) devono essere per forza un unità funzionale separata, a tutti gli effetti un coprocessore. Il grosso vantaggio rispetto ad altri approcci è che nelle implementazioni più "spartane" si possono integrare nei core aggiungendo una manciata di registri dei predicati senza neanche dove ampliare i datapath e mantenendo piena compatibilità con una implementazione a 2048bit. Quote:
Come modello architetturale e modello di programmazione è tutto un altro paio di maniche rispetto ad AVX-512. O per dirla in un altro modo sarebbe come avere un unico set d'istruzioni AVX identico per AVX, AVX-512, AVX-768,.., AVX-1024,...,AVX-2048 e con codice ottimizzato esclusivamente per AVX-2048 che gira senza ricompilare e senza degrado di prestazioni (rispetto alla specifica cpu) su un implementazione "solo" AVX. Questo perche si ragiona, si codifica e si ottimizza il codice SVE in termini di VETTORI (con lunghezza generica), non in termini di registri "multimediali" di lunghezza fissa. Quote:
E, ripeto, il fatto che SVE sia vector-lenght agnostic cambia totalmente le carte in tavola rispetto ad un architettura SIMD, specialmente sul lato software. |
|||
|
|
|
|
|
#922 | |
|
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2177
|
Quote:
Non sono io a scrivere questo che riporto ma tante persone che studiano o lavorano nel settore programmazione. Lato silicio non ho detto che il 14 nm glofo sia immaturo, ovvio deve esserlo abbastanza maturo per aver permesso questi risultati per frequenze e consumi con gli octacore amd che ricordiamo hanno circa 5 miliardi di transistor. Ma penso anche ci sia un ulteriore margine di miglioramento del prodotto nei prossimi mesi... come è accaduto per il 14 nm di intel. non sarà mica come il 32 nm sempre glofo precedente? Quello non aveva permesso nessun miglioramento o quasi da subito, vedi differenza tra i sample e le cpu BD al loro debutto, e la differenza nel caso di Zen.
__________________
__________ Configurazione: Mainboard Gigabyte G1.Sniper A88X (rev. 3.0) ; APU A10 7850K ; HDD Western Digital SATA III WD Blue 1 TB ; Ram Corsair 1866 mhz 16 gb ; OS Seven premium 64 bit |
|
|
|
|
|
|
#923 | ||||
|
Bannato
Iscritto dal: Dec 2001
Città: Palmi
Messaggi: 3241
|
Quote:
Quote:
La legge di Moore secondo la quale il numero di transistori per chip, raddoppi ogni 18 mesi ha necessità del multicore affinché possa avere un senso da un punto di vista prestazionale e, volenti o nolenti, anche il software dovrà seguire questa strada. Ricorda che nella vita ed in ogni ambito tutto è difficile solo per chi non ci crede. Mi chiedo un po', ma la pensavi anche così all'epoca dei single core, dei dual core e dei quad core prima della loro introduzione? Il codice può assolutamente essere parallelizzato anche lato CPU, questo non è un punto di vista ma un dato di fatto in quanto TUTTI gli algoritmi di renderizzazione in ray-tracing lavorano esclusivamente in multithreading sui cores attraverso algoritmi software (vedi il predetto Vray utilizzato anche nel tuo odiato Cinebench). Semmai quest'oggi è vero il contrario: pur disponendo di GPU con elevata prestazione computazionale il codice per sfruttarle via hardware in tale ambito non è a livello di quello utilizzato per il processamento via software mediante CPU. Questo perché stiamo continuando a "perder tempo" in ambito gaming con affinamenti sulla tecnica di rasterizzazione, ambito nel quale girano e si investono un sacco di soldi. Ma quando questi affinamenti grafici non troveranno più ulteriori migliorie apprezzabili dagli utenti si dovrà OBBLIGATORIAMENTE passare oltre. Quote:
Quote:
Ti assicuro che le case software più che i budget da rispettare devono in primis rispettare le scadenze annuali di immissione sul mercato dei loro prodotti. Ecco il perché ci si ritrova con giochi pieni di bug all'uscita che poi vengono risolti strada facendo. I soldi sono l'ultimo dei problemi in quanto a fine 2016 l'intera industria di gaming ed entrainment mondiale ha raggiunto la stratosferica cifra di 91 Miliardi di dollari ed è in continua ascesa visto l'interesse che si allarga sempre più a macchia d'olio tra i consumatori, praticamente più del fatturato dell'industria cinematografica e musicale mondiali messe insieme tanto per dare un'idea. Parallelamente ad esse (Ubisoft, EA, Activision, ecc.), che nello sviluppo di nuove tecnologie software entrano solo parzialmente occupandosi di mero "assemblaggio" di codice destinando le loro risorse alla realizzazione dei prodotti, operano altre software houses che si dedicano esclusivamente ai motori di fisica, di render, di IA con il fine ultimo di sfruttare sempre più, con algoritmi proprietari ed API, le ultime tecnologie hardware di nuova e prossima introduzione. Sta solo a noi consumatori promuovere attraverso acquisti intelligenti di prodotti con maggior potenziale di crescita al fine di farli diffondere maggiormente e giustificare gli sforzi da destinare a chi opera nel settore. I margini ed il profitto in ambito videoludico si fanno su larga scala ed occorre favorire una diffusione più capillare per contribuire come consumatori che fanno il loro interesse in tutto questo processo. Spero sia stato chiaro e non oggetto di un tuo ulteriore quote che vada a rispondere con altro pur di rispondere. Ultima modifica di NvidiaMen : 15-03-2017 alle 16:31. |
||||
|
|
|
|
|
#924 |
|
Senior Member
Iscritto dal: Nov 2006
Messaggi: 6835
|
Interessantissima recensione per chi si preoccupa di Ryzen e il gaming:
https://www.youtube.com/watch?v=O0fgy4rKWhk Riassumendo: -gli fps medi sono molto più simili fra R7 ed i7 quando si gioca davvero che nei benchmark -R7 offre molto meno stuttering registrando, usando shadowplay, ecc -R7 quadruplica a volte le prestazioni di un 7700k in ambito produttività, nel migliore dei casi un i7 distacca un r7 di 10 punti percentuali solo su giochi abbastanza male ottimizzati -AMD collabora con una valanga di produttori di giochi (che hanno già ufficializzato ottimizzazioni pro Ryzen), Intel non può vantare la stessa cosa -AM4 è destinato a durare 3-4 generazioni di cpu, con Intel si cambia tutto in continuazione -il futuro è verso un numero di core/thread superiore Ultima modifica di Vul : 15-03-2017 alle 19:34. |
|
|
|
|
|
#925 | |
|
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2177
|
Quote:
Questo è già stato fatto notare da quasi subito ma si preferisce far pesare i grafici che "congelano" il numero dei frames in un dato intervallo di tempo senza alla fine considerare la realtà del gioco. Ah si, vero avevo già letto di ottimizzazioni per Ryzen da parte delle software house peraltro annunciate da amd stessa, in "contraddizione" con quello che si scrive qui per certi versi dove non sembrano esistere queste ottimizzazioni per videogames.
__________________
__________ Configurazione: Mainboard Gigabyte G1.Sniper A88X (rev. 3.0) ; APU A10 7850K ; HDD Western Digital SATA III WD Blue 1 TB ; Ram Corsair 1866 mhz 16 gb ; OS Seven premium 64 bit |
|
|
|
|
|
|
#926 | |
|
Senior Member
Iscritto dal: Jan 2005
Messaggi: 2788
|
Quote:
|
|
|
|
|
|
|
#927 | |||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Ciò premesso, se hai avuto modo di vedere come funziona, anche nel caso di implementazione con vettori particolarmente lunghi, non vedrai comunque implementata quest'unità SIMD come un coprocessore separato, visto che vengono eseguite normali istruzioni dell'ISA ARM, e parecchie di esse riguardano i registri di predizione. IMO il design sarà molto simile a quello di Larrabee & Xeon Phi, dove l'unità "intera" (classiche istruzioni x86. ARMv8 in questo caso) ha il suo scheduler, mentre l'unità SIMD ha il suo, e comunicano fra di loro quando necessario (ad esempio quando si deve indirizzare la memoria per leggere o scrivere un vettore, ma ovviamente servono i registri GP per calcolare l'indirizzo). Quote:
Quote:
Con le ISA SIMD tradizionali, sei costretto a generare una sequenza di istruzioni che manipolano i dati rimanenti da elaborare, e questo ha un certo costo. Con AVX-512 ti basta caricare l'opportuno di registro di maschera marcando su quali elementi lavorare, e poi esegui esattamente le stesse istruzioni che hai usato nel loop principale, ovviamente usando l'apposita maschera per lavorare esclusivamente sulle "lane" interessate. Se vedi SVE, fa esattamente la stessa cosa di quest'ultimo caso, con la differenza che applica a livello generale il concetto di lavorare su un certo insieme di lane. La differenza è che all'inizio i registri di predizione saranno sempre pieni, e dunque lavoreranno su tutti i dati. Mentre nell'ultima iterazione del ciclo i registri di predizione saranno "automaticamente" (nel senso che ci pensa il codice, scritto in maniera opportuna, a farlo proprio durante la normale esecuzione del ciclo), a riempirli opportunamente con le lane da usare in questo specifico caso. Quote:
Quote:
Ma non sono tutte rose e fiori. Se hai visto gli esempi, proprio a causa dell'utilizzo dei registri di predizione per selezionare su quali dati lavorare, si crea una forte dipendenza fra le istruzioni, e inoltre ci sono diverse istruzioni "scalari" da eseguire. Dunque in ottica di scalabilità / esecuzione parallela di più istruzioni SVE, questo può rappresentare un problema, anche con architetture out-of-order. Cosa che con un'architettura che utilizza registri SIMD a dimensione fissa, è di gran lunga meno impattante. Se hai lavorato con unità SIMD, dovresti cogliere la differenza fra i due approcci, coi loro pro e contro. In ogni caso se ti studi bene il documento che mi hai passato, te ne renderai conto tu stesso, analizzando anche gli esempi che sono stati forniti, che sono utili a capire come funziona il tutto con casi concreti (ci sono pure implementazioni di strcpy e strcmp).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||||||
|
|
|
|
|
#928 | ||||||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Personalmente e da programmatore posso capire che si possa compilare un'applicazione con un compilatore Intel (che a default ottimizza al meglio per ALCUNE delle sue micro-architetture), oppure usando un altro compilatore ma generando codice più ottimizzato per le micro-architetture più utilizzate. Ma a parte questo, dubito che gli sviluppatori perdano tempo con ottimizzazioni IN CODICE appositamente per Intel. Quote:
Quote:
Ad esempio, prima di lasciare Intel ho scritto apposito codice che scala in base al numero di core, per alcuni calcoli intensivi (checksum di file). E visto che Python (che ho usato) è intrinsecamente mono-core/thread, ho dovuto lavorare un po' per implementare il tutto. A dimostrazione che non è che la manna scenda dal cielo in questi casi. Quote:
Mi riquoto: "Stai rimanendo sempre in ambito grafico, dove è naturale parallelizzare & distribuire i carichi di lavoro. ". Quote:
Ancora qualche anno, e ci arriveremo. Quote:
Prendi uno che vuole lanciare Dolphin, PCSX2, MAME, WinUAE, ecc.: non è che lancia n istanze di questi emulatori. Ne viene eseguito uno, e l'utente userà quella sola istanza. E in questi casi, come già detto, non c'è parallellizzazione che tenga: quando devi emulare UN processore della piattaforma emulata, potrai sempre e soltanto sfruttare un solo core/thread hardware. Non si scappa. E' così perché il codice è intrinsecamente "seriale" / non parallellizzabile, e la situazione non è affatto destinata a cambiare anche fra diversi, e con migliaia di core a disposizione: è questo codice che è così. Chiunque abbia esperienza in merito te lo potrà confermare. E idem per diverse altre tipologie di software "seriale". Quote:
I costi sono elevatissimi in assoluto, per cui ci sarà sempre da tagliare nelle ottimizzazioni per arrivare prima possibile nel mercato, e recuperare gli investimenti. Sì, i consumatori possono cercar di dirigere, ma fino a un certo punto. Quote:
E casualmente sono anche appassionato di architetture, micro-architetture, ed emulatori. Dunque riporto la mia esperienza e la mia visione. Da professionista.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
||||||||
|
|
|
|
|
#929 | |||||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
Come / cosa / quando è, però, tutto un altro paio di maniche. Come ho già scritto, aspettiamo... Quote:
Buondì a tutti.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||||
|
|
|
|
|
#930 | |
|
Senior Member
Iscritto dal: Nov 2000
Città: Grosseto
Messaggi: 10690
|
Quote:
Sicuramente competenza tecnica la ha nel suo campo, ma quando lo leggi é inevitabile fare la tara al discorso considerando questo fatto. Come lo sarà in futuro se discuteremo su come alfa possa tirar fuori un'auto migliore rispetto a bmw... |
|
|
|
|
|
|
#931 | |
|
Senior Member
Iscritto dal: Sep 2005
Messaggi: 2177
|
Quote:
http://www.bitsandchips.it/forum/vie...p=97460#p97460 E ok, ma io parlo di possibilità ossia che ciò sia possibile non di tempo, il tempo sappiamo che non è di due giorni.
__________________
__________ Configurazione: Mainboard Gigabyte G1.Sniper A88X (rev. 3.0) ; APU A10 7850K ; HDD Western Digital SATA III WD Blue 1 TB ; Ram Corsair 1866 mhz 16 gb ; OS Seven premium 64 bit |
|
|
|
|
|
|
#932 |
|
Senior Member
Iscritto dal: Apr 2005
Città: Napoli
Messaggi: 6817
|
https://twitter.com/mustmann/status/842240026486439937
Il freeze con codice FMA3 scompare disabilitando l'SMT. In arrivo aggiornamento microcodice...
__________________
0 A.D. React OS La vita è troppo bella per rovinarsela per i piccoli problemi quotidiani... IL MIO PROFILO SOUNDCLOUD! |
|
|
|
|
|
#933 | |
|
Senior Member
Iscritto dal: Jan 2003
Messaggi: 10395
|
Quote:
No, non serve che i giochi siano realizzati dalla stessa mano, basta che riconoscano erroneamente la topologia della CPU. |
|
|
|
|
|
|
#934 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 7258
|
Quote:
|
|
|
|
|
|
|
#935 | |
|
Bannato
Iscritto dal: Dec 2001
Città: Palmi
Messaggi: 3241
|
Quote:
Ciao e grazie del costruttivo confronto. |
|
|
|
|
|
|
#936 |
|
Senior Member
Iscritto dal: Jan 2009
Messaggi: 688
|
|
|
|
|
|
|
#937 | |
|
Bannato
Iscritto dal: Dec 2001
Città: Palmi
Messaggi: 3241
|
Quote:
In ogni caso io sono dell'avviso che una persona davvero professionale debba esser imparziale quando si discute di fatti oggettivi che possono sol far bene allo sviluppo informatico e che nulla hanno a che vedere con il parlar bene o male di questo o quel produttore. Io mi trovo da almeno cinque generazioni ad acquistare CPU Intel, dopo un lungo passato in cui mi sono affidato ad AMD, ma continuo sempre ad apprezzare molto gli sforzi di AMD che nel suo piccolo riesce sempre a dimostrare la bontà dei propri prodotti ad un prezzo molto più accessibile della concorrenza sia in capo CPU che GPU. Con Ryzen occorre oggettivamente ammettere che si è superata dimostrando che si possono realizzare CPU multicore più prestazionali ed al contempo più accessibili dal punto di vista economico, quasi AMD stessa volesse segnare una strada nuova da seguire. Sta a noi cogliere questo input e dare ragione una volta per tutte a questo nuovo modo di stimolare il mercato. In questo modo anche Intel si adeguerà con la sua serie 6xx0, non tanto dal punto di vista prestazionale, ma soprattutto dal punto di vista del costo d'acquisto dove con Ryzen ha davvero subito un grosso colpo dal suo maggiore competitor. Il mio contributo a questa causa non verrà a mancare in quanto il mio prossimo upgrade, previsto per fine anno sarà basato su un 1800x o superiore se ci sarà.
|
|
|
|
|
|
|
#938 | |
|
Senior Member
Iscritto dal: Nov 2000
Città: Grosseto
Messaggi: 10690
|
Quote:
Ma per me un dipendente può essere al 100% imparziale (in pubblico) solo se non ci mette passione in quel che fa. |
|
|
|
|
|
|
#939 | |
|
Senior Member
Iscritto dal: Jan 2007
Messaggi: 6170
|
Quote:
"è un unità SIMD con relative estensioni del set d'istruzioni". Mentre invece a livello di progettazione del set d'istruzioni è un estensione per vector processing generico senza vincoli troppo stretti su COME E DOVE va implementata. Un vettore è un gruppo di word di una certa dimensione, non necessariamente un unico super-registro. SVE è pensata per essere implementata in modo semplice ed economico ANCHE come unità SIMD "nel core" ed ovviamente per interoperare agilmente con il set d'istruzioni "standard" (da cui la sovrapposizione dei primi 128bit dei registri Z di SVE con i registri NEON a livello di logica di programmazione), ma non è l'unica implementazione possibile. E non è un caso che nel documento che avevo linkato dicano esplicitamente "SVE is not an extension of NEON, but a new set of vector instructions developed to target HPC workloads". Ad esempio un implementazione a 2048bit in realtà potrebbe generare microOp o macroOp per 16 shadow register a 128bit da/verso fino a 16 unita funzionali e/o accumulando le operazioni nel reorder buffer del core o di un unita di esecuzione separata con datapath separati verso le cache e/o condivisa tra più core. Immagina ad esempio un core ARM 4-way SMT in cui ogni thread ha un SVE "virtuale" che in realtà è implementato come 16 unità NEON condivise tra i 4 thread; dove quindi quando tutti e 4 i thread eseguono istruzioni SVE hanno le prestazioni di un SVE-512 ma quando solo uno di essi sta usando SVE e gli altri operano su interi è come se questo avesse un unità SVE-2048 tutta per se. Notare che l'unico "aggravio" sarebbe che i registri P dei predicati dovrebbero essere a 128bit ma non si supererebbe il caso peggiore di problemi di clock skew che si avrebbe implementando dei "semplici" core con set d'istruzioni ARMv8 e come detto prima nel caso "peggiore" in cui tutti i thread usano SVE simultaneamene si avrebbero "solo" le prestazioni di un implementazione SVE-512 (oppure SVE-1536 con un thread che usa SVE e gli altri che usano "solo" le NEON). A parte questo, non mi stupirei se in futuro spuntassero fuori GPU basate su ARMv8+SVE a gestire le parti più "computazionalmente flessibili" o anche SoC multicore ottimizzati per il signal processing e cose simili con implementazioni di SVE che dominano sul resto del core ARM vero e proprio. |
|
|
|
|
|
|
#940 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Guarda che siamo sostanzialmente d'accordo su tutto.
Lo so che si può fare "cracking" delle istruzioni, e suddividerle in più micro-op, se le unità SVE sono più piccole della dimensione massima esposta dall'ISA. E' proprio quello che ha fatto Intel quando ha introdotto le SSE (128 bit) col Pentium 3 (unità a 64 bit), ed è quello che ha fatto AMD con Ryzen (unità a 128 bit) per le AVX/-2 (256 bit). Nulla di nuovo qui, e ovviamente i benefici sono quelli che hai esposto (ma ci sono anche i risvolti negativi). Preciso pure che non ho mai detto che SVE sia un'estensione di NEON. Al contrario, se ho affermato questo: "se usi SVE non puoi usare NEON" è proprio per confermare il contrario. IMO se usi SVE non puoi usare NEON, e viceversa, proprio perché sono due cose diverse, anche se condividono il banco di registri vettoriali. Mentre, come penso saprai, puoi far eseguire codice SSE, AVX, e AVX-512 assieme, perché condividono tutte le risorse SIMD. L'unico appunto è che non vedo assolutamente SVE come un coprocessore. Anche nello scenario che hai esposto, con SMT4 (ma potrebbe anche essere SMT8 o addirittura SMT16 se si volessero utilizzare unità a 128 bit), rimarrebbero comunque delle normali unità d'esecuzione. E giusto per essere chiari, per coprocessore intendo un dispositivo esterno al core, come oggi è l'iGPU. Questo proprio per come funziona SVE. Spero che ci siamo finalmente chiariti.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:48.












In ogni caso io sono dell'avviso che una persona davvero professionale debba esser imparziale quando si discute di fatti oggettivi che possono sol far bene allo sviluppo informatico e che nulla hanno a che vedere con il parlar bene o male di questo o quel produttore. Io mi trovo da almeno cinque generazioni ad acquistare CPU Intel, dopo un lungo passato in cui mi sono affidato ad AMD, ma continuo sempre ad apprezzare molto gli sforzi di AMD che nel suo piccolo riesce sempre a dimostrare la bontà dei propri prodotti ad un prezzo molto più accessibile della concorrenza sia in capo CPU che GPU. Con Ryzen occorre oggettivamente ammettere che si è superata dimostrando che si possono realizzare CPU multicore più prestazionali ed al contempo più accessibili dal punto di vista economico, quasi AMD stessa volesse segnare una strada nuova da seguire. Sta a noi cogliere questo input e dare ragione una volta per tutte a questo nuovo modo di stimolare il mercato. In questo modo anche Intel si adeguerà con la sua serie 6xx0, non tanto dal punto di vista prestazionale, ma soprattutto dal punto di vista del costo d'acquisto dove con Ryzen ha davvero subito un grosso colpo dal suo maggiore competitor. Il mio contributo a questa causa non verrà a mancare in quanto il mio prossimo upgrade, previsto per fine anno sarà basato su un 1800x o superiore se ci sarà.








