it.phhsnews.com


it.phhsnews.com / Perché tutti i core CPU hanno la stessa velocità invece di quelli diversi?

Perché tutti i core CPU hanno la stessa velocità invece di quelli diversi?


Se hai mai fatto molti acquisti di confronto per una nuova CPU, potresti aver notato che tutti i core sembrano avere il velocità piuttosto che una combinazione di diversi. Perché? Il post di Q & A di SuperUser di oggi ha la risposta alla domanda di un lettore curioso.

La sessione di domande e risposte di oggi ci viene fornita per gentile concessione di SuperUser, una suddivisione di Stack Exchange, un raggruppamento di domande e risposte basato sulla community.

La domanda

Lettore SuperUser Jamie vuole sapere perché i core CPU hanno tutti la stessa velocità invece che diversi:

In generale, se stai acquistando un nuovo computer, devi determinare quale processore acquistare in base al carico di lavoro previsto per il computer . Le prestazioni nei videogiochi tendono a essere determinate dalla velocità single core, mentre le applicazioni come il video editing sono determinate dal numero di core. In termini di ciò che è disponibile sul mercato, tutte le CPU sembrano avere all'incirca la stessa velocità con le differenze principali che sono più thread o più core.

Ad esempio:

  • Intel Core i5-7600K, frequenza di base 3,80 GHz, 4 core, 4 thread
  • Intel Core i7-7700K, frequenza di base 4.20 GHz, 4 core, 8 thread
  • AMD Ryzen 5 1600X, frequenza di base 3,60 GHz, 6 core, 12 thread
  • AMD Ryzen 7 1800X, frequenza di base 3,60 GHz, 8 core, 16 thread

Perché vediamo questo modello di core crescenti, ma tutti i core hanno la stessa velocità di clock? Perché non ci sono varianti con diverse velocità di clock? Ad esempio, due core "grandi" e molti piccoli core.

Invece di quattro core a 4,0 GHz (ovvero 4 × 4 GHz, massimo 16 GHz), che dire di una CPU con due core in esecuzione a 4,0 GHz e quattro core a 2,0 GHz (ovvero 2 × 4,0 GHz + 4 × 2,0 GHz, 16 GHz massimo)? La seconda opzione sarebbe altrettanto valida per i carichi di lavoro a thread singolo, ma potenzialmente migliore per i carichi di lavoro multi-thread?

Chiedo questo come una domanda generale e non specificamente per le CPU sopra elencate o per qualsiasi carico di lavoro specifico. Sono solo curioso di sapere perché il pattern è quello che è.

Perché i core della CPU hanno tutti la stessa velocità invece di quelli diversi?

La risposta

Contribuente SuperUser bwDraco ha la risposta per noi:

Questo è noto come multi-processing eterogeneo (HMP) ed è ampiamente adottato dai dispositivi mobili. Nei dispositivi basati su ARM che implementano big.LITTLE, il processore contiene core con diversi profili di prestazioni e potenza, ovvero alcuni core funzionano velocemente ma assorbono molta potenza (architettura più veloce e / o clock più elevati) mentre altri sono efficienti dal punto di vista energetico ma lenti ( architettura più lenta e / o orologi più bassi). Questo è utile perché il consumo di energia tende ad aumentare in modo sproporzionato quando si aumenta la prestazione una volta superato un certo punto. L'idea qui è quella di ottenere prestazioni quando ne hai bisogno e la durata della batteria quando non lo fai.

Sulle piattaforme desktop, il consumo energetico è molto meno un problema, quindi questo non è veramente necessario. La maggior parte delle applicazioni prevede che ogni core abbia caratteristiche di prestazioni simili e i processi di pianificazione per i sistemi HMP sono molto più complessi rispetto alla pianificazione per i tradizionali sistemi SMP (simmetric multi-processing) (tecnicamente, Windows 10 supporta HMP, ma è principalmente destinato ai dispositivi mobili). dispositivi che usano ARM big.LITTLE).

Inoltre, la maggior parte dei processori desktop e portatili oggi non sono limitati dal punto di vista termico o elettrico al punto in cui alcuni core devono funzionare più velocemente di altri, anche per brevi raffiche. Abbiamo praticamente colpito un muro su quanto velocemente possiamo creare singoli core, quindi la sostituzione di alcuni core con quelli più lenti non consentirà ai core rimanenti di funzionare più velocemente.

Mentre ci sono alcuni processori desktop che hanno uno o due core in grado di più veloce delle altre, questa capacità è attualmente limitata a determinati processori Intel di fascia molto alta (nota come Turbo Boost Max Technology 3.0) e comporta solo un leggero aumento delle prestazioni per quei core che possono essere eseguiti più velocemente.

Mentre è Sicuramente possibile progettare un processore x86 tradizionale con core grandi e veloci e core più piccoli e più piccoli per ottimizzare i carichi di lavoro con thread pesanti, ciò aggiungerebbe una notevole complessità al design del processore e difficilmente le applicazioni potrebbero supportarlo.

Assumi un ipotetico processore con due core veloci Kaby Lake (7a generazione) e otto core lenti Goldmont (Atom) lenti. Avresti un totale di 10 core e carichi di lavoro a thread pesante ottimizzati per questo tipo di processore potrebbero vedere un guadagno in termini di prestazioni ed efficienza rispetto a un normale processore quad-core Kaby Lake. Tuttavia, i diversi tipi di core hanno livelli di performance molto diversi, e i core lenti non supportano nemmeno alcune delle istruzioni supportate dal core veloce, come AVX (ARM evita questo problema richiedendo che i core big e LITTLE supportino le stesse istruzioni ).

Anche in questo caso, la maggior parte delle applicazioni multi-thread basate su Windows presuppongono che ogni core abbia lo stesso o quasi lo stesso livello di prestazioni e possa eseguire le stesse istruzioni, quindi questo tipo di asimmetria risulterà probabilmente in meno prestazioni ideali, forse anche crash se utilizza istruzioni non supportate dai core più lenti. Mentre Intel potrebbe modificare i core lenti per aggiungere supporto avanzato alle istruzioni in modo che tutti i core possano eseguire tutte le istruzioni, questo non risolverà i problemi con il supporto software per i processori eterogenei.

Un approccio diverso alla progettazione delle applicazioni, più vicino a ciò che probabilmente stai pensando circa nella tua domanda, userebbe la GPU per l'accelerazione di porzioni di applicazioni altamente parallele. Questo può essere fatto usando API come OpenCL e CUDA. Per quanto riguarda una soluzione a chip singolo, AMD promuove il supporto hardware per l'accelerazione GPU nelle sue APU, che combina una CPU tradizionale e una GPU integrata ad alte prestazioni nello stesso chip, come l'architettura di sistemi eterogenei, sebbene questo non abbia visto molto l'assorbimento dell'industria all'esterno di alcune applicazioni specializzate.


Hai qualcosa da aggiungere alla spiegazione? Audio disattivato nei commenti. Vuoi leggere più risposte dagli altri utenti di Stack Exchange esperti di tecnologia? Controlla il thread completo di discussione qui.

Image Credit: Mirko Waltermann (Flickr)


Come gestire le cattive foto su Facebook

Come gestire le cattive foto su Facebook

Non tutti sono abbastanza carini e capaci di posare perfettamente su preavviso di qualche secondo. Per la maggior parte dei semplici mortali, le fotografie possono essere un affare rischioso. Se vieni catturato a metà parola, dopo qualche drink o, Dio non voglia, mentre stai ballando, nessuna quantità di lavoro in Photoshop può mai salvare la foto.

(how-top)

Come controllare il tuo Insteon Smarthome con Amazon Echo

Come controllare il tuo Insteon Smarthome con Amazon Echo

Se possiedi dei prodotti smarthome di Insteon, probabilmente ti piacerebbe un modo per controllarli con la tua voce. Puoi usare Amazon Echo con i dispositivi Insteon, anche se può essere un po 'complicato. Il supporto Alexa di Insteon è limitato, con solo alcuni dispositivi completamente supportati. Alcuni potrebbero avere un mezzo supporto - per esempio, ho alcuni controller del ventilatore a soffitto Insteon che Alexa può solo controllare le luci accese, non la ventola stessa.

(how-top)