11Aug

Proč mají jádra CPU všechny stejnou rychlost místo různých?

click fraud protection

Pokud jste někdy udělali hodně srovnání nákupu nového CPU, možná jste si všimli, že jádra se zdají mít spíše rychlost než kombinaci různých. Proč je to tak? Dnešní zpráva SuperUser Q & A má odpověď na otázku zvědavé čtenáře.

dnešní otázka &Odpověď na zasedání se k nám dostala s laskavým svolením SuperUser - podřízenou výměnou Stack Exchange, skupině webů Q & A založených na komunitě.

Otázka

SuperUser čtečka Jamie chce vědět, proč jádra CPU mají stejnou rychlost než jiné:

Obecně platí, že pokud kupujete nový počítač, určit byste, který procesor koupit na základě očekávané pracovní zátěže počítače. Výkonnost ve videohrách má tendenci být určována jednorázovou rychlostí, zatímco aplikace, jako je editace videa, jsou určeny počtem jader. Z hlediska toho, co je na trhu k dispozici, se zdá, že všechny CPU mají zhruba stejnou rychlost, přičemž hlavní rozdíly jsou více vlákna nebo více jader.

Například:

  • Intel Core i5-7600K, základní frekvence 3,80 GHz, 4 jádra, 4 závitky
  • instagram viewer
  • Intel Core i7-7700K, základní frekvence 4,20 GHz, 4 jádra, 8 závitů
  • AMD Ryzen 5 1600X, základní frekvence 3,60 GHz, 6jádra, 12 závitů
  • AMD Ryzen 7 1800X, základní frekvence 3,60 GHz, 8 jader, 16 závitů

Proč vidíme tento vzorec rostoucích jader, ale všechna jádra mají stejnou rychlost? Proč neexistují varianty s různými rychlostmi hodin? Například dvě "velké" jádra a spousty malých jader.

Místo čtyřmi jádra na 4,0 GHz( tj. 4 × 4 GHz, maximálně 16 GHz), jak o CPU se dvěma jádry pracujícími na 4,0 GHz a čtyřmi jádry na 2,0 GHz( tj. 2 × 4,0 GHz + 4 ×2,0 GHz, maximum 16 GHz)?Byla by druhá možnost stejně dobrá při jednostranných pracovních zatíženích, ale potenciálně lepší při zatížení s více závitmi?

Ptám se to jako obecnou otázku a nikoli konkrétně s ohledem na CPU uvedené výše nebo na jedno specifické pracovní zatížení.Jsem jen zvědavá, proč je tento vzorec takový.

Proč všechny jádra CPU mají stejnou rychlost než jiné?

Odpovědná odpověď pro odpověď

SuperUser bwDraco má pro nás odpověď:

Toto je známé jako heterogenní multiprocessing( HMP) a je široce využíváno v mobilních zařízeních. V zařízeních ARM, které implementují velký proces. LITTLE, procesor obsahuje jádra s různými výkonnostními a výkonovými profily, tj. Některé jádry běží rychle, ale čerpají spoustu výkonu( rychlejší architektura a / nebo vyšší hodiny), zatímco jiné jsou energeticky efektivní, ale pomalé( pomalejší architektura a / nebo nižší hodiny).To je užitečné, protože spotřeba energie má tendenci se neúměrně zvyšovat, protože zvyšujete výkonnost, jakmile překročíte určitý bod. Myšlenkou je získat výkon, když to potřebujete, a životnost baterie, když tomu tak není.

Na stolních počítačích je spotřeba energie mnohem méně problémem, takže to není skutečně nutné.Většina aplikací očekává, že každé jádro bude mít podobné výkonnostní charakteristiky a plánovací procesy pro systémy HMP jsou mnohem složitější než plánování tradičních symetrických systémů s více procesory( technicky, Windows 10 podporuje HMP, ale je určen hlavně pro mobilní zařízenízařízení, která používají ARM big. LITTLE).

Také většina procesorů stolních a přenosných počítačů dnes není tepelně ani elektricky omezena na místa, kde některé jádra potřebují běžet rychleji než jiné, a to i při krátkých výbojkách. V podstatě jsme zasáhli zdi, jak rychle můžeme vytvářet jednotlivé jádra, takže nahrazení některých jader pomalejšími neumožní, aby zbývající jádra rychleji proběhla.

Zatímco existuje několik stolních procesorů, které mají jednu nebo dvě jádra schopné běhat rychleji než ostatní, tato schopnost je v současné době omezena na určité vysoce výkonné procesory Intel( známé jako Turbo Boost Max Technology 3.0) a zahrnuje pouze mírný ziskve výkonu pro ty jádra, které mohou běžet rychleji.

Přestože je jistě možné navrhnout tradiční procesor x86 s velkými, rychlejšími jádry a menšími, pomalejšími jádry pro optimalizaci pracovních zátěží s velkým závitům, přineslo by to značné složitosti návrhu procesoru a aplikace by pravděpodobně správně nepodporovaly.

Proveďte hypotetický procesor se dvěma jádry Kaby Lake( 7. generace) a osmi pomalými jádry Goldmontu( Atom).Budete mít celkem 10 jader a těžké závitové pracovní zatížení optimalizované pro tento druh procesoru může vidět zisk ve výkonu a efektivitě v porovnání s běžným čtyřjádrovým procesorem Kaby Lake. Avšak různé typy jader mají velmi odlišné úrovně výkonu a pomalé jádra dokonce nepodporují některé z instrukcí, které podporují rychlá jádra, jako je AVX( ARM se vyhýbá tomuto problému tím, že vyžaduje, aby obě jádra velkých a LITTLE podporovaly stejné instrukce).

Většina aplikací s více vlákny založených na systému Windows předpokládá, že každé jádro má stejnou nebo téměř stejnou úroveň výkonu a může provést stejné instrukce, takže tento druh asymetrie pravděpodobně povede k méně než ideálnímu výkonu, snaddokonce selže, pokud používá instrukce, které nejsou podporovány pomalejšími jádry. Zatímco Intel mohl upravit pomalé jádro pro přidání pokročilé podpory výuky tak, aby všechny jádra mohly provádět všechny pokyny, nevyřešila by to problémy se softwarovou podporou heterogenních procesorů.

Jiný přístup k návrhu aplikací, blíže tomu, o čem pravděpodobně přemýšlíte ve své otázce, by použil GPU pro zrychlení vysoce paralelních částí aplikací.To lze provést pomocí rozhraní API jako OpenCL a CUDA.Pokud jde o jednočipové řešení, AMD podporuje hardwarovou podporu pro akceleraci GPU v jeho APU, která kombinuje tradiční CPU a vysoce výkonný integrovaný GPU do stejného čipu jako Heterogeneous System Architecture,několika málo specializovaných aplikací.

Musíte přidat něco k vysvětlení?Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde. Obrázek

: Mirko Waltermann( Flickr)