Newsgroup: it.comp.hardware.cpu
Titolo: P4 3.06 GHz Hyper Threading...

Salve
Chi l'ha provato sul campo? Tra un P4 2,4 GHz overcloccato a 3,06 GHz e un
"vero" 3,06 GHz dotato di questa nuova tecnologia c'č veramente
differenza? L'emulazione di due processori differenti funziona realmente?
Vale realmente la pena di spendere tantissimo per una CPU con tale
tecnologia?
Grazie e ciao a tutti
Salvatore Ciambra (Palermo)
Cancella TOGLI per rispondermi
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 tecnologia?
Salvo applicazioni particolari, l'HT addirittura peggiora le prestazioni
globali, perchè il sistema operativo deve continuamente switchare tra i due
processori virtuali. In generale, anche un sistema biprocessore è più lento
di un monoprocessore, se si utilizza una sola applicazione non ottimizzata
al multiprocessing. E' una tecnologia ancora giovane, anche se in futuro
potrà dire la sua. Comunque to sconsiglio caldamente di comprarla, non ne
vale la pena. E' certamente meglio il P4 2,4Ghz, come rapporto
prezzo/prestazioni. Per verificare queste affermazioni, comunque, puoi
consultare i vari test pubblicati su Internet.
Saluti

 al multiprocessing.
In poche parole, il S.O. usa i due processori virtuali anche se non serve a
niente usarli?
Mi sembra assurdo che, utilizzando applicazioni non-HT, invece di andare
uguale ad un P4 senza HT vada addirittura peggio...a livello di logica fa
piů di una grinza!
Con questo non voglio mettere in dubbio ciň che dici, mi documenterň su
Internet, 'sta storia mi ha incuriosito...
Ciao,
Canaro

Internet, 'sta storia mi ha incuriosito...
Purtroppo logicamente di grinze non ne fa... Diciamo che non sai molto bene come
funziona HT e quindi arrivi a conclusioni troppo veloci e sbagliate.
-- 
try: troll = "Brain"
except TypeError, data: 
   troll.plonk()
Co-Responsabile Hardware Information & Technology 
http://hit.edengames.net


Da 2 gg ho un P4 2...@3.25 Ghz (per ora ;-), e ti dico che le
prestazioni sono superiori a quelle di un P4 3.05 HT che ha "solo" il
bus a 133/166 (io sto a 180/225 su 845PE).
Considera che la mia cpu costa 1/4 del P4 3.05.
Se usassi 3D Max forse si noterebbe la differenza, ma non tale da
giustificare il prezzo del 3.05 HT.

 funziona HT e quindi arrivi a conclusioni troppo veloci e sbagliate.
Era chiaro che non sapessi molto bene come funziona l'HT, altrimenti il post
non lo facevo :)
Magari se lo spiegavi, anche senza usare troppi tecnicismi, era meglio...
Ciao,
Canaro

Magari se lo spiegavi, anche senza usare troppi tecnicismi, era meglio...
Diciamo che con HT abilitato il processore ha a disposizione 8 Kb per 2 thread.
Purtroppo se il programma non e' multi-thread si riesce ad eseguire un solo
thread per volta e quindi restano 4Kb di cache perche' l'altra parte non e'
usata ma e' comunque "allocata". Questo fa si che peggiorino le prestazioni.
Tra l'altro, le prestazioni non peggiorano poi in maniera cosi' elevata, quindi
stavo pensando... non e' che l'aumento della L1 sul Prescott non fara'
assolutamente nulla? Alla fine un cache miss sulla L1 fa veramente poco visto
che passa in L2 e quella e' assolutamente enorme e la possibilita' di trovarci
quello che serve ai processi e' elevatissima. Ragion per cui mi sa che con tutta
quella cache e il modello di utilizzo della cache del Prescott (inclusivo)
l'aumento portera' a un vantaggio parecchio esiguo...
BTW... Il prescott se non ha ALU a 32bit e full-pumped non avra' miglioramenti
significativi IMHO. C'e' chi parla di un Prescott 4,7Ghz equivalente a un
ipotetico Northwood 5Ghz.
Senza contare che il nuovo chipset Canterwood ha prestazioni che fanno ridere...
Una piattaforma con P4 3Ghz e Canterwood e' il 2% piu' veloce dello stesso
processore su Springdale (che se non erro va a 533Mhz) che non e' certo il piu'
performante per P4... Insomma un chipset che non fa migliorare le prestazioni
del P4. E' proprio arrivato alla fine quel processore, se neanche la versione a
3Ghz sfrutta un aumento di bus da 533 a 800Mhz, speriamo che la sfrutti il
Prescott.
Sbaglio o anche nel bus di sistema Intel sta cercando qualcosa del tipo "piu'
Mhz piu' veloce"?


 Mhz piu' veloce"?
Mi pare che sia la politica Intel da quando è uscito il P4
Ciao e grazie per il chiarimento,
Canaro

Mi pare che sia la politica Intel da quando è uscito il P4
Vivranno ancora poco se cotinuano cosi'... Sembra strano ma si ammazzano da soli
a continuare a far salire la frequenza, arriveranno a un certo punto quando non
potranno piu' permettersi un cambio di tecnologia produttiva all'anno per tenere
dietro al ramp up e quello sara' l'inizio della fine. Dovranno riprogettare
tutto il loro sistema (oppure arrendersi al MN di AMD e utilizzarlo per gli
Itanium).


 fa si che peggiorino le prestazioni.
Nel Xeon le cache sono condivise e comunque l'Intel afferma che questo
dipende esclusivamente dall'implementazione processore, ovvero i
programmatori non devono fare affidamento sul fatto che la cache sia
condivisa o meno (mi riferisco a metodi lock- e wait-free).
Non è necessario che un programma abbia più thread, ma che girino almeno due
programmi (magari dello steso peso "computazionale").
[Sono i test eseguiti a essere spesso insensati! E' come testare una ferrari
per le strade di Milano...]
Questa tecnologia è stata sviluppata (è un'estensione dell'architettura
NetBurst, sempre d'Intel) per massimizzare l'esecuzione di istruzioni
out-of-order.
Normalmente il sistema operativo esegue soltanto un singolo thread e quindi
il numero di operazioni eseguite fuori-ordine non potrà essere elevato dato
che qualsiasi thread contiene codice sequenziale. Avendo a disposizione due
thread logici sarà possibile eseguire un numero maggiore di istruzioni
fuori-ordine massimizzando l'utilizzo delle unità d'esecuzione multipla.
Quindi due processori dotati di HT saranno più veloci di due processori
normali (MP).
Vorrei anche rendere segnalare che un processore logico può essere bloccato
(HLT) in qualsiasi momento ottimizzando notevolmente le prestazioni
dell'altro thread logico. Se tutti i processori logici vengono bloccati il
processore fisico entra in power-saving.
A quanto pare l'Intel (almeno questo è quello che vuole far credere ai
programmatori di OS) ha intenzione di estendere l'HP a un numero sempre
maggiore di thread virtuali.
E' una mossa intelligente. Ormai i metodi per eseguire istruzioni
out-of-order sembrano aver raggiunto risultati prossimi al limite teorico (è
un po' come voler comprimere un file sempre di più: esiste un limite teorico
invalicabile), quindi perchè non cambiare direzione? Più thread
(indipendenti) abbiamo, maggiore sarà il numero di istruzioni eseguite
out-of-order nell'unità di tempo.
Non male...
Per quanto riguarda ogni singolo thread logico le cose non cambiano molto:
l'OS continuerà a eseguire il multitasking basato su time slice e così via.
Quello che voglio dire è che mi sembra a dir poco restrittivo valutare
questa tecnologia esclusivamente in base a ragionamenti sulla cache...
Kiuhnm

questa tecnologia esclusivamente in base a ragionamenti sulla cache...
A dir la verita' io ho detto ben altro... Detto questo perche' non mi metti 16
processori virtuali su di 1 processore con 1Kb di cache. cosi' i 16 processori
virtuali si scambiano la bellezza di 64 byte di cache. E non dirmi che non e'
necessario che sia multi-thread e via dicendo perche' con 64byte qualsiasi
processo va piano. Il mio ragionamento considerava altre cose. Pero', manchi
invece di dirmi la cosa fondamentale (altre che ooe) ovvero che HT serve per far
funzionare la pipeline del P4 che altrimenti sarebbe vuota ogni 2x3. 
In pratica quello che tu dici sono "mosse interessantissime" in realta' sono
pezze messe li' per venire a capo dei difetti di architettura. Una pipeline a 5
stadi si fa le pippe con HT perche' tanto la possibilita' che ci sia uno stadio
vuoto e' prossima allo zero.
Ci sono mille e mille variabili da tirare in gioco e tu ti sei limitato a
citarmi un volantino intel che spaccia per sua una tecnologia di 10 anni fa...


questa tecnologia esclusivamente in base a ragionamenti sulla cache...
A scanso di equivoci ti riporto sotto pure quello che ho scritto sopra. e a
quanto leggo io: "La dimostrazione di questo e' proprio in HT. Perde al
massimo il 5% nei programmi in cui non si puo' definire piu' di un thread ed e'
molto utile in presenza di piu' thread".
Tutto il resto non fa altro che utilizzare HT per fare considerazioni che con HT
non c'entrano una mazza ma che parlano di come il raddoppio della L1 sui
Prescott sara' quasi inutile.
***************************
Piccola e' e piccola sara'. 8Kb in piu' non permetteranno di far andare
decentemente le ALU del P4 specialmente alla frequenza a cui sono arrivati per
guerreggiare con AMD. La dimostrazione di questo e' proprio in HT. Perde al
massimo il 5% nei programmi in cui non si puo' definire piu' di un thread ed e'
molto utile in presenza di piu' thread. Questo cosa significa? Molto semplice:
il problema non e' la L1 ma la gestione della pipeline. Non capisco come mai i
processori fatti da Intel sono tutti _L2 cache_ dipendenti. Itanium2 in primis.
Ognuno di quei processori ha bisogno di quantita' gigantesche di L2, questo per
ovviare alla L1 piccolissima. Il problema e' che ormai la L1 cosi' piccola non
e' piu' il problema principale (lo era con 256Kb di L2) perche' ormai la L2 e'
cosi' capiente da contenere tutto quello che ti serve. 
Senza ombra di dubbio 8Kb in piu' di L2 sono praticamente inutili. Daranno un
beneficio di diciamo il 5% in piu' a parita' di clock (pari alla perdita di
prestazioni con HT abilitato dove non dovrebbe esserlo) che in sostanza sara' il
guadagno che ottieni evitando alcuni cache miss sulla L1, roba veramente
irrisoria (specialmente vedendo le prestazioni super della cache del P4).


> funzionare la pipeline del P4 che altrimenti sarebbe vuota ogni 2x3.
Non m'interessa se l'idea non è stata d'Intel (io uso CPU AMD, quindi pensa
quanto amo Intel) e altre cose del genere. Io so solo che l'Hyper Threading
è teoricamente un'ottima idea e prevedo che avrà una larga diffusione in
futuro.
E' ovvio che ora come ora ci sono vari problemi pratici perchè questa
tecnologia sia sfruttata adeguatamente, però col tempo verrà migliorata.
Anche i metodi lock-free sono stati scartati per molto tempo, ma ultimamente
stanno uscendo metodi sempre migliori (per es. col mio metodo sono riuscito
ad ottenere skip-list e alberi "auto-bilancianti" con una semplice CAS
(CMPXCHG), il che non è poco).
Non m'interessa l'HT d'Intel, ma l'idea generale...
Kiuhnm

 piu' di un thread ed e' molto utile in presenza di piu' thread".
Dal messaggio precedente (che ovviamente non avrai ancora letto) ho chiarito
che la mia è una posizione teorica.
Comunque se sei interessato puoi dare un'occhiata a queste due tesi:
http://citeseer.nj.nec.com/558581.html
e
http://citeseer.nj.nec.com/554830.html
di cui ti riporto una parte:
----
Microprocessor clock speeds and performance demands have increased over the
years. Unfortunately, external memory bandwidth and latency have not kept
pace. This widening processor-to-memory gap has led to increased cache sizes
and increased number of cache levels between the processing core(s) and main
memory. Figure 8 shows the size of the first and second level caches in the
last 7 generations of Intel microprocessors. As frequency increases, first
level cache size has begun to decrease to maintain low access latency,
typically 1 to 2 clocks, as shown in Figure 9.
As aggregate cache sizes increase in symmetric multiprocessor systems (SMP),
the ratio of conflict, capacity, and coherency misses, or cache-to-cache
transfers, will change. Set associative caches will see reduction in
conflict and capacity misses relative to cache size increases. However,
these increases will have smaller impact on coherency misses in large SMP
systems. This motivates system designers to optimize for cache-to-cache
transfers over memory-to-cache transfers. Two approaches to achieve this are
hyper-threading, also known as multithreading, and chip multiprocessing
(CMP)..
----
Come vedi l'Hyper-Threading è nato per *risolvere* i problemi legati alla
cache.
Kiuhnm

capability of the Intel NetBurst micro-architecture. "
Quello che dice Intel non ha importanza.
Per il resto ti ripeto che anche io sono convinto che HT sia un'ottima
tecnologia ma applicabile solo a processori ben determinati in quanto necessita
di una pipeline paradossalmente inefficente per funzionare a dovere.
