Reverse HyperThreading: solo rumors
Mai confermate ufficialmente da AMD, le notizie su una possibile tecnologia che unifichi due core in uno vengono smentite
di Paolo Corsini pubblicata il 11 Luglio 2006, alle 11:14 nel canale ProcessoriAMD










Recensione Nothing Phone 4(a): sempre iconico ma ora più concreto
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
MindsEye cambia rotta: Build A Rocket Boy assume il controllo totale e salta la collaborazione con Hitman
Offerte Amazon in tempo reale: i migliori prezzi su iPhone, robot aspirapolvere e smart home
Ecco come potrebbe apparire Project Helix di Xbox: una Series X trasformata in un vero PC gaming
Carl Pei immagina un futuro senza app: gli smartphone saranno guidati da agenti AI autonomi
Google lancia il "vibe design": Stitch si aggiorna con voice canvas e un agente che ragiona su tutto il progetto
NVIDIA non ha intenzione, almeno per ora, di creare tanti modelli della CPU Vera
Recensione Realme 16 Pro+ 5G: la fascia media ha un nuovo punto di riferimento?
FBI, ammesso l'acquisto di dati privati: scontro al Congresso sulla sorveglianza senza mandato
Realme 16 Pro e 16 Pro+ in evidenza: caratteristiche chiave e offerte Amazon da non perdere
I prossimi mid-range di Samsung utilizzeranno display AMOLED di fornitori cinesi
Lyten avvierà la produzione di batterie a Heide nel 2028: NMC e litio-zolfo nell'ex sito Northvolt
Sony INZONE H9 II in sconto su Amazon: cuffie gaming wireless con ANC e audio 360° a meno di 300€
Micron vola grazie alla crisi delle memorie: supera ogni aspettativa e guarda a un altro trimestre record
Sony Music contro la musica fake: oltre 135mila brani AI rimossi per imitazione degli artisti








34 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoper piacere evitiamo...
The Inquirer può non piacere a noi italiani sopratutto perchè non capiamo quello che è il tipico giornalismo inglese, che fa un sacco di speculazioni sulle notizie di corridoio... Io trovo The Inquirer un ottimo sito con un format completamente differente dagli altre testate di informazione sulla tecnologia, certo non ti puoi aspettare che tutto quello che pubblicano corrisponda a verità, visto che per loro stessa ammisione si occupano proprio di pubblicare "rumors"...
scusate, non mi intendo molto di parallelizzazione del codice, ho sempre programmato in single thread. Ma domando: se un codice non e' parallelizzabile a livello software, perche' mai dovrebbe esserlo in hardware? Mi spiego, una serie di core diversi che lavorano sullo stesso thread possono dare conflitti a livello di program counter, a livello di coerenza di cache (che si fregherebbe completamente dopo ogni istruzione), ma specialmente a livello di pipeline, dove interdipendenze tra le istruzioni dovrebbero essere risolte a livello di 2 core: una cosa impossbile. Il tutto in somma si ridurrebbe nell'avere una sola CPU (chiaramente, visto che sullo stesso thread non ci possono essere piu' di 2 CPU!) con le unita' di esecuzione di 2 CPU che pero' non potrebbero essere sfruttate per via di quanto scritto sopra. Morale, secondo me e' una voce di corridoio a livello di pesce d'aprile... ed ha poco senso, visto che "l'ottimizzazione" viene fatta a livello di codice e non a livello di unita' di controllo. Se non si riesce a farla a livello di codice, quando un compilatore ha tempo virtualmente infinito per farlo e specialmente risorse illimitate, cosa puo' fare una control unit cablata e per giunta in pochi nanosecondi?
...
La filosofia dual-core si basa sul concedere tutto un core al programma attivo e le restanti (in background) al secondo core. Forse accoppiare quattro, otto, sedici core e farli vedere come un dual-core potrebbe essere la soluzione.
Se pensate che piu' la frequenza aumenta piu' la temperatura diventa assurda e molte prestazioni vengono 'perse' (guardate HT di intel che e' un modo per guadagnare un 20% spremendo un solo core alla medesima frequenza) forse c'e' un limite che dimostra come N core a basse frequenze sono piu' efficienti di un solo core ad alta frequenza.
Se AMD smentisce, forse Intel ci sta pensando seriamente.
In linea teorica con N core visti come un'unica cpu le prestazioni dovrebbero essere moltiplicate per N
...
esistono due tipi di programmi a cui si può applicare questo discorso del "Reverse HyperThreading"
1) programmi che sono stati sviluppati prima dell'avvento massiccio dei Dual/Tri/Quad/MultiCore
in questo caso questo sistema funzionerebbe, ma ancora meglio sarebbe dividere il programma in thread partendo dal codice, in modo da avere già in anticipo una stima del carico di lavoro di ogni thread e creare delle suddivisioni logicamente corrette
2) programmi che non sono stati realizzati multithreaded perché NON SI POTEVA FARE, magari perché ci sono delle sequenze di istruzioni (e capita spessissimo) che il programmatore SA di non poter dividere
in questo caso è tutto inutile, puoi avere anche 45 Core, ma se la sequenza inscindibile viene assegnato al 15°, lavorerà da solo perché così deve essere.
3) (ma non avevo detto 2?
scusate, non mi intendo molto di parallelizzazione del codice, ho sempre programmato in single thread. Ma domando: se un codice non e' parallelizzabile a livello software, perche' mai dovrebbe esserlo in hardware? Mi spiego, una serie di core diversi che lavorano sullo stesso thread possono dare conflitti a livello di program counter, a livello di coerenza di cache (che si fregherebbe completamente dopo ogni istruzione), ma specialmente a livello di pipeline, dove interdipendenze tra le istruzioni dovrebbero essere risolte a livello di 2 core: una cosa impossbile. Il tutto in somma si ridurrebbe nell'avere una sola CPU (chiaramente, visto che sullo stesso thread non ci possono essere piu' di 2 CPU!) con le unita' di esecuzione di 2 CPU che pero' non potrebbero essere sfruttate per via di quanto scritto sopra. Morale, secondo me e' una voce di corridoio a livello di pesce d'aprile... ed ha poco senso, visto che "l'ottimizzazione" viene fatta a livello di codice e non a livello di unita' di controllo. Se non si riesce a farla a livello di codice, quando un compilatore ha tempo virtualmente infinito per farlo e specialmente risorse illimitate, cosa puo' fare una control unit cablata e per giunta in pochi nanosecondi?
In realtà la cosa non è tanto infattibile (anche se complicata), si tratterebbe in pratica di condividere tutto ciò che va dal decoder in poi, per la coerenza si disabilita temporaneamente metà cache e si fa funzionare la CPU come se fosse un unico processore con la cache di un singolo core e pipeline di "larghezza" doppia. Per quanto riguarda le unità di esecuzione, le CPU odierne sono già superscalari, ossia sono in grado di eseguire più istruzioni per ciclo di clock, ad esempio gli A64 sono in grado di eseguire per quanto riguarda gli interi fino a 3 istruzioni per ciclo di clock, i Core 2 fino a 4, questo è reso possibile dall'esecuzione fuori ordine - Out OF Order Execution o OOO, e dalla rilevazione delle istruzioni indipendenti che possono quindi essere eseguite in parallelo. Ovvio che la sfruttabilità di tutte le unità non è mai ideale, ed anzi più unità ci sono e meno sono mediamente sfruttate, però non è detto nemmeno che siano inutili. Direi quindi che la notizia potrebbe essere un pesce d'aprile, ma potrebbe anche non esserlo, dato che come detto su AMD ha dei brevetti a riguardo. Dubito che i procesori attuali possano esserne capaci, se verità ce n'è forse si potrebbe vedere qualcosa di concreto solo dai K8L in poi.
esistono due tipi di programmi a cui si può applicare questo discorso del "Reverse HyperThreading"
1) programmi che sono stati sviluppati prima dell'avvento massiccio dei Dual/Tri/Quad/MultiCore
in questo caso questo sistema funzionerebbe, ma ancora meglio sarebbe dividere il programma in thread partendo dal codice, in modo da avere già in anticipo una stima del carico di lavoro di ogni thread e creare delle suddivisioni logicamente corrette
2) programmi che non sono stati realizzati multithreaded perché NON SI POTEVA FARE, magari perché ci sono delle sequenze di istruzioni (e capita spessissimo) che il programmatore SA di non poter dividere
in questo caso è tutto inutile, puoi avere anche 45 Core, ma se la sequenza inscindibile viene assegnato al 15°, lavorerà da solo perché così deve essere.
3) (ma non avevo detto 2?
Di programmi non parallelizzabili a livello di codice ce ne sono parecchi, e dipende anche se e come sono parallelizabili, ad esempio se la parte parallelizzabile è quella che è eseguita il 10% del tempo i vantaggi sono relativi. Pensiamo ad un emulatore.
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".