Perché i produttori di CPU hanno smesso di aumentare le velocità di clock dei loro processori? [chiuso]


63

Ho letto che i produttori hanno smesso di concentrarsi su velocità di clock più elevate e ora stanno lavorando ad altre cose per migliorare le prestazioni.

Con

  • una vecchia macchina desktop con processore Intel® Xeon® E3110 con velocità di clock di 3,0 GHz
  • e un nuovo server con processore AMD Opteron (TM) 6272 con velocità di clock di 2,1 GHz

quando viene eseguito un semplice confronto di crittografia utilizzando (thread singolo)

 openssl aes256c

il desktop ha funzionato molto meglio del server.

Quindi, anche con l'ultima ottimizzazione, perché il processore con la migliore velocità di clock funziona meglio?


57
Il chip desktop è un dual-core; il server è una CPU a 16 core. L'uso di un benchmark a thread singolo NON è affatto appropriato.
MSalters,

@learner - Perché la velocità dei processori non può aumentare con l'aumento della quantità di tensione richiesta che riduce il calore. Concentrandosi sul consumo energetico, in teoria saranno in grado di aumentare le velocità del processore in futuro.
Ramhound,

1
Si prega di citare casi reali di "produttori" che "riducono anche" le velocità di clock (senza confrontare mele e arance) o limitare il titolo della domanda a "non aumentare".
Jan Doggen,

8
Le velocità di clock tra AMD e Intel non sono state un confronto equo dai tempi di K6 / Pentium. AMD ha commercializzato i processori Athlon come 2500+ o 3000+ quando i loro core clock potrebbero essere rispettivamente 1.8 o 2.1, ma in genere hanno fatto un benchmark piuttosto rispettivamente con i chip Intel che hanno registrato un vero 2,5 o 3GHz. Ci sono semplicemente modo troppe differenze tra le architetture ora a fare un confronto semplicemente sulla velocità di clock.
KeithS

Risposte:


72

Il motivo per cui i produttori hanno smesso di concentrarsi sull'aumento della velocità di clock è perché non possiamo più raffreddare i processori abbastanza velocemente da renderlo possibile. Maggiore è la velocità di clock, maggiore è il calore generato e ora abbiamo raggiunto uno stadio in cui non è più efficiente aumentare la velocità del processore a causa della quantità di energia necessaria per raffreddarlo.

Altre risposte spiegano in dettaglio come una maggiore velocità di clock non significa prestazioni migliori in tutte le aree.


1
+1 Mi sembra di aver acquistato la mia macchina proprio quando è stato colpito questo muro, il mio P4 3.4 ghz di 8 anni è probabilmente il più veloce in termini di velocità di clock, se si guarda alla stragrande maggioranza del mercato (non OC).
Karthik T

2
notare che anche il consumo di energia sarebbe un problema. Se avessi un 3.0 core a 16 GHz, probabilmente consumeresti oltre 200 watt, che gli alimentatori più comuni riescono a malapena a supportare in combinazione con il resto del sistema.
Mixxiphoid

9
@Mixxiphoid Dovresti anche inserire quei 200+ W nella CPU in qualche modo, a una tensione che il circuito può gestire. Questo è un compito non banale in sé.
un CVn

1
Non solo, per aumentare il clock della CPU è necessario aumentare la pipeline, ma ogni volta che devi fork il codice, cambiare il contesto, saltare o cancellare la memoria, cancella l'intera pipeline e devi riempirla di nuovo per dare un risultato per quell'istruzione, quindi è meglio ridurre la pipeline e la frequenza della CPU, quindi ogni volta che devi biforcarti, cambiare contesto, saltare non devi aspettare molto tempo per riempire di nuovo la pipeline.
Lefsler

1
@demonofnight: Sarebbe troppo dire "ogni volta che devi (...) saltare". I rami diretti incondizionati non comportano rischi di controllo, quindi non contano dai rami condizionati ~ 95% -99% sono previsti da varie tecniche (dati basati su alcuni documenti basati su SPEC). Le diramazioni dirette pongono il problema se l'obiettivo non è ancora nel registro e vi è un errore. Non sono sicuro di cosa intendi per "fork del codice" o "cancella la memoria", ma gli switch di contesti non dovrebbero essere eseguiti così spesso (interruzioni e possibilmente I / O).
Maciej Piechotka,

37

C'è molto di più nella velocità di elaborazione rispetto alla frequenza di clock.

  • CPU diverse possono fare quantità diverse nello stesso numero di cicli di clock, a causa delle diverse varianti sulla disposizione della pipeline e con unità a più componenti (additivi e così via) in ciascun core. Mentre nel tuo test non è così, spesso trovi che un chip "più lento" può fare più di un veloce (misurato solo dalla frequenza di clock) grazie alla possibilità di fare di più per tick.

  • Il test che hai eseguito potrebbe essere molto sensibile alle differenze nell'architettura della CPU: potrebbe essere ottimizzato per un'architettura specifica, potresti scoprire che funziona diversamente non solo tra i chip Intel e quelli AMD ma tra i chip Intel (o AMD) di diverse famiglie. Probabilmente sta usando anche un singolo thread, quindi non sta sfruttando i multipli core della CPU.

  • Si passa a frequenze di clock inferiori per motivi di gestione della potenza e del calore: aumentare la frequenza di clock non ha un effetto lineare sul consumo di energia e sulla potenza termica.

  • A causa della relazione non lineare di cui sopra è molto più efficiente per i requisiti odierni disporre di più unità di elaborazione piuttosto che spingere la velocità di un'unità sempre più in alto. Ciò consente anche a trucchi intelligenti di risparmiare energia come spegnere i singoli core quando non sono in uso e ripristinarli quando la domanda aumenta di nuovo. Ovviamente più core ovviamente non aiutano un algoritmo a thread singolo, sebbene lo farebbe se ne eseguissi due o più istanze contemporaneamente.


Quindi qual è la relazione tra frequenza di clock e consumo di energia?
user84207

$ P = CV ^ 2f $. Potresti anche voler leggere questo .
zakkak,

19

Perché pensi che i produttori stiano effettivamente abbassando la velocità di clock confrontando solo due processori?

  1. Il 6272 ha una velocità Turbo di 3Ghz. La velocità di base più bassa serve solo per ridurre la potenza media e mantenere un TDP accettabile per un workloard quando tutti i core sono stressati.
  2. Il prossimo chip AMD ad alte prestazioni per desktop FX-9590 raggiungerà i 5 Ghz.

Anche la velocità di clock non è la stessa delle prestazioni per ciclo di clock. Puoi avere un P4 da 3,8 Ghz contro un core da 3,2 Ghz da un i7-3930K, ma ciò non significa che il core P4 sia più veloce.

Tutto ciò che viene detto qui sul consumo energetico è anche perfettamente valido e vero per un design a 16 core, dove naturalmente devi essere più preoccupato per i problemi di TDP.

Anche il tuo metodo di benchmark che sta testando openssl è un po 'semplice per dare numeri reali. Forse dovresti provare qualsiasi suite di benchmark crypto.


3
Solo per aggiungere un'analogia a clock-speed = fallacy delle prestazioni. Immagina una persona che fa passi molto piccoli ma molto rapidamente (alta velocità di clock), contro un'altra persona che fa passi molto grandi a una velocità leggermente più lenta (frequenza di clock inferiore). La persona che fa grandi passi può muoversi molto più velocemente.
Martin Konecny,

@MartinKonecny: ottima visualizzazione!
Zach Latta,

2
@MartinKonecny ​​La mia comprensione è che la maggior parte delle istruzioni dell'assemblatore (ADD, MOV, IMUL, ecc.) Vengono eseguite in un singolo ciclo. Quindi, con questi nuovi processori, vengono eseguite più istruzioni in un singolo ciclo?
nialsh,

4
@nialsh Questo non è affatto vero per i computer CISC (in effetti una delle cose che definiscono il CISC sono le istruzioni richiedono più cicli), se tutte le istruzioni hanno richiesto un ciclo, l'istruzione più lenta impiegherà lo stesso tempo per essere eseguita come la più veloce istruzioni.
Scott Chamberlain,

Le CPU x86 richiedevano più cicli di clock per istruzione, ma oggigiorno possono eseguire più istruzioni per ciclo di clock.
Oskar Skog,

13

Il tuo test case (crittografia aes-256) è molto sensibile alle ottimizzazioni specifiche del processore.

Esistono varie CPU con istruzioni speciali intese ad accelerare le operazioni di crittografia / decrittografia. Queste istruzioni speciali non possono essere presenti solo sul desktop, ma è possibile che la CPU AMD abbia istruzioni speciali diverse. Inoltre, openssl potrebbe supportare queste istruzioni speciali solo per la CPU Intel. Hai controllato se fosse così?

Per scoprire quale sistema è più veloce, prova a utilizzare una suite di benchmark "corretta" - o meglio, usa il tuo carico di lavoro tipico.


Dove avviene la traduzione di quell'istruzione speciale? Non sono sicuro se esistono diversi compilatori per diversi set di istruzioni.
Shubham,

I compilatori hanno opzioni per indirizzare diversi set di istruzioni e / o speciali "funzioni intrinseche" che si associano strettamente alle istruzioni specifiche della CPU. È possibile per un singolo eseguibile verificare su quale famiglia di CPU è in esecuzione e selezionare un percorso di codice diverso in base a quello.
Russell Borogove,

10

Semplice: il chip AMD è molto, molto più veloce perché è un chip a 16 core. A 115 Watt, significa che ogni core produce ~ 7 Watt. Ciò non sarebbe realizzabile se ogni core funzionasse a 3 Ghz. Per raggiungere quella cifra di 7 Watt, AMD ha abbassato la frequenza di clock. Abbassare la frequenza di clock del 10% riduce il consumo energetico del 20%, il che a sua volta consente di mettere il 25% di core in più su un chip.


10

Come altri hanno già detto, non possiamo più raffreddare efficacemente le CPU se dovessimo spingere la tensione richiesta per gli stessi aumenti della frequenza di clock relativa in passato. C'è stato un tempo (era P4 e precedenti) in cui era possibile acquistare una nuova CPU e vedere un guadagno "immediato" è la velocità perché la frequenza di clock era significativamente aumentata rispetto alla generazione precedente. Ora abbiamo colpito una sorta di muro termico.

Ogni nuova generazione moderna di processori aumenta leggermente la frequenza di clock, ma ciò è anche relativo alla capacità di raffreddarli in modo appropriato. I produttori di chip, come Intel, si stanno concentrando continuamente sulla riduzione della dimensione del die della CPU per renderli entrambi più efficienti dal punto di vista energetico e produrre meno calore con gli stessi clock. Come nota a margine, la riduzione delle dimensioni dello stampo rende questi processori moderni più inclini a morire per sovratensione piuttosto che per surriscaldamento. Ciò significa che sta anche limitando la frequenza di clock a soffitto di qualsiasi CPU di generazione attuale senza altre ottimizzazioni apportate dal produttore di chip.

Un'altra area su cui i produttori di chip si concentrano fortemente è l'aumento del numero di core su chip. Ciò si traduce in significativi aumenti della potenza computazionale, ma solo quando si utilizza un software che sfrutta più core. Nota qui la differenza tra potenza computazionale e velocità. In poche parole, la velocità si riferisce alla velocità con cui un computer può eseguire una singola istruzione, mentre la potenza di calcolo si riferisce a quanti calcoli può fare un computer in un determinato periodo di tempo. I moderni sistemi operativi e molti software moderni sfruttano più core. Il problema è che la programmazione simultanea / parallela è più difficile del paradigma di programmazione lineare standard. Ciò ha aumentato il tempo impiegato da molti programmi sul mercato per sfruttare appieno la potenza di questi nuovi processori perché molti sviluppatori non erano abituati a scrivere programmi in questo modo. Esistono ancora oggi alcuni programmi sul mercato (moderni o legacy) che non sfruttano più core o multi-threading. Il programma di crittografia che hai citato ne è un esempio.

Queste due aree di interesse dei produttori di chip sono intrinsecamente connesse. Riducendo sia la dimensione dello stampo che il consumo di energia di un chip, sono quindi in grado di aumentare il numero di core su detto chip. Alla fine, però, anche questo colpirà un muro, causando un altro, più drastico, cambio di paradigma.

Il motivo di questo cambiamento di paradigma è dovuto al fatto che ci avviciniamo ai limiti del silicio come materiale di base per la produzione di chip. Questo è qualcosa che Intel e altri stanno lavorando per risolvere da tempo. Intel ha affermato che ha un'alternativa al silicio in cantiere e probabilmente inizieremo a vederlo dopo il 2017. Oltre a questo nuovo materiale, Intel sta anche esaminando i transistor 3D che potrebbero "triplicare efficacemente la potenza di elaborazione". Ecco un articolo che menziona entrambe queste idee: http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm


2
  • Le perdite di calore H equivalgono a 4 ° grado di frequenza f.

    H ~ f ^ 4

    Pertanto, il lieve aumento della frequenza porta a elevate perdite di calore.

  • Miniaturizzazione più lontana

    Una frequenza più alta porta a una riduzione al minimo del cristallo. Al momento non abbiamo tecnologie per lavorare in modo efficace con materiali in scala nanometri e i nanometri sono il limite.


2
-1 La quarta parte di potenza non è corretta. La potenza (calore generato al secondo) nelle CPU è (approssimativamente) linearmente proporzionale alla frequenza di clock come P ~ f CV ^ 2 + P0 ( en.wikipedia.org/wiki/CPU_power_dissipation ). La tensione concessa dipende dalla velocità di clock (anche se non necessariamente lineare). Vedere: physics.stackexchange.com/questions/34766 In conclusione, la potenza generata dalla CPU è approssimativamente da lineare a quadratica sulla velocità di clock nell'intervallo 1,6 GHz - 5 GHz. (Non prop a f ^ 4).
dr jimbob,

2

Come indicato in alcune altre risposte, i produttori di CPU vogliono mantenere basse le velocità di clock per controllare il consumo di energia e la dissipazione del calore. Per fare più lavoro alla stessa velocità di clock, vengono utilizzate diverse strategie.

Le grandi cache di memoria su chip possono mantenere più dati "vicini" alla CPU, disponibili per essere elaborati con un ritardo minimo, rispetto alla memoria principale, che è molto più lenta nel fornire i dati alla CPU.

Il completamento di diverse istruzioni della CPU richiede un numero diverso di cicli di clock. In molti casi, è possibile utilizzare un semplice circuito per implementare un'operazione su più cicli di clock o un circuito più complesso per farlo in meno.

L'esempio più drammatico di questo nell'evoluzione di Intel è nel Pentium 4, che è stato un grande outlier nella velocità di clock, ma non ha funzionato proporzionalmente bene. Le istruzioni di spostamento dei bit, che nei chip precedenti potevano spostare 32 bit in un singolo ciclo, utilizzavano un circuito molto più semplice nel Pentium 4, che richiedeva un singolo ciclo per ogni spostamento di bit. L'aspettativa era che l'architettura Pentium 4 sarebbe stata scalabile a velocità di clock molto più elevate a causa della sua semplicità, ma ciò non ha funzionato, e il circuito di spostamento veloce e complesso è tornato nel Core e successive architetture.


2

Dall'IEEE:

Quindi perché non spingere l'orologio più velocemente? Perché non vale più il costo in termini di energia consumata e calore dissipato. Intel definisce il compromesso velocità / potenza un "teorema fondamentale dei processori multicore", ed è per questo che ha senso utilizzare due o più aree di elaborazione, o core, su un singolo chip.

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.