Als u ooit veel vergelijkingen hebt gemaakt met winkelen voor een nieuwe CPU, is het u misschien al opgevallen dat kernen allemaal lijken te hebben snelheid in plaats van een combinatie van verschillende. Waarom is dat? De SuperUser Q & A-post van vandaag biedt het antwoord op de vraag van een nieuwsgierige lezer. De vraag- en antwoordsessie van vandaag komt tot ons dankzij SuperUser - een onderdeel van Stack Exchange, een door de gemeenschap gestuurde groep van Q & A-websites.
De vraag
Als u een nieuwe computer koopt, bepaalt u meestal welke processor moet worden gekocht op basis van de verwachte werkbelasting voor de computer . Prestaties in videogames worden meestal bepaald door single-core-snelheid, terwijl toepassingen zoals videobewerking worden bepaald door het aantal kernen. In termen van wat er op de markt beschikbaar is, lijken alle CPU's ongeveer dezelfde snelheid te hebben, met als belangrijkste verschillen meer threads of meer kernen.
Bijvoorbeeld:
Intel Core i5-7600K, basisfrequentie 3.80 GHz, 4 cores, 4 threads
- Intel Core i7-7700K, basisfrequentie 4,20 GHz, 4 cores, 8 threads
- AMD Ryzen 5 1600X, basisfrequentie 3,60 GHz, 6 kernen, 12 threads
- AMD Ryzen 7 1800X, basisfrequentie 3,60 GHz, 8 kernen, 16 threads
- Waarom zien we dit patroon van toenemende kernen, maar hebben alle kernen dezelfde kloksnelheid? Waarom zijn er geen varianten met verschillende kloksnelheden? Bijvoorbeeld twee "grote" kernen en heel veel kleine kernen.
In plaats van bijvoorbeeld vier kernen op 4.0 GHz (dwz 4 × 4 GHz, maximaal 16 GHz), wat dacht u van een CPU met twee kernen op 4,0 GHz en vier kernen met een snelheid van 2,0 GHz (dwz 2 x 4,0 GHz + 4 x 2,0 GHz, maximaal 16 GHz)? Zou de tweede optie even goed zijn in workloads met één thread, maar potentieel beter op multi-threaded workloads?
Ik vraag dit als een algemene vraag en niet specifiek met betrekking tot de hierboven genoemde CPU's of over een specifieke werklast. Ik ben gewoon nieuwsgierig naar de reden waarom het patroon is zoals het is.
Waarom hebben CPU-kernen allemaal dezelfde snelheid in plaats van verschillende?
Het antwoord
Dit staat bekend als heterogene multi-processing (HMP) en wordt op grote schaal gebruikt door mobiele apparaten. In op ARM gebaseerde apparaten die big.LITTLE implementeren, bevat de processor kernen met verschillende prestatie- en energieprofielen, dat wil zeggen dat sommige kernen snel werken maar veel stroom trekken (snellere architectuur en / of hogere klokken), terwijl andere kernen energie-efficiënt maar traag zijn ( langzamere architectuur en / of lagere klokken). Dit is handig omdat het stroomgebruik doorgaans onevenredig toeneemt omdat je de prestaties verbetert zodra je een bepaald punt voorbij bent. Het idee hier is om prestaties te krijgen wanneer u het nodig hebt en de levensduur van de batterij wanneer u dat niet doet.
Op desktopplatformen is het stroomverbruik veel minder een probleem, dus dit is niet echt nodig. De meeste toepassingen verwachten dat elke kern vergelijkbare prestatiekenmerken heeft en dat planningsprocessen voor HMP-systemen veel complexer zijn dan planning voor traditionele symmetrische multi-processing (SMP) -systemen (technisch gezien heeft Windows 10 ondersteuning voor HMP, maar het is vooral bedoeld voor mobiele apparaten). apparaten die ARM big.LITTLE gebruiken).
Ook zijn de meeste desktop- en laptopprocessors van vandaag niet thermisch of elektrisch beperkt tot het punt waar sommige kernen sneller moeten werken dan andere, zelfs bij korte bursts. We hebben in feite een muur geraakt voor hoe snel we individuele kernen kunnen maken, dus het vervangen van sommige kernen door langzamere kernen staat niet toe dat de overgebleven kernen sneller rennen.
Hoewel er een paar desktopprocessors zijn die één of twee kernen kunnen gebruiken sneller dan de anderen, is deze mogelijkheid momenteel beperkt tot bepaalde zeer geavanceerde Intel-processors (bekend als Turbo Boost Max Technology 3.0) en gaat het alleen om een lichte winst in prestaties voor die kernen die sneller kunnen worden uitgevoerd.
zeker mogelijk om een traditionele x86-processor te ontwerpen met zowel grote, snelle kernen en kleinere, langzamere kernen om te optimaliseren voor zwaar belaste workloads, dit zou een aanzienlijke complexiteit aan het processorontwerp toevoegen en toepassingen ondersteunen dit waarschijnlijk niet goed.
Neem een hypothetische processor met twee snelle Kaby Lake (zevende generatie) kernen en acht trage Goldmont (Atom) kernen. Je zou in totaal 10 cores hebben, en workloads met een hoge schroefdraad die zijn geoptimaliseerd voor dit soort processor kunnen een winst in prestaties en efficiëntie zien in vergelijking met een normale quadcore Kaby Lake-processor. De verschillende typen kernen hebben echter enorm verschillende prestatieniveaus en de trage kernen ondersteunen niet eens enkele van de instructies die de snelle kernen ondersteunen, zoals AVX (ARM vermijdt dit probleem door zowel de grote als de LITTLE-kernen dezelfde instructies te laten ondersteunen ).
Nogmaals, de meeste Windows-gebaseerde multi-threaded applicaties gaan ervan uit dat elke kern hetzelfde of bijna hetzelfde prestatieniveau heeft en dezelfde instructies kunnen uitvoeren, dus dit soort asymmetrie resulteert waarschijnlijk in minder-dan- ideale prestaties, misschien zelfs crasht als het instructies gebruikt die niet worden ondersteund door de langzamere kernen. Hoewel Intel de langzame kernen kon aanpassen om geavanceerde instructieondersteuning toe te voegen, zodat alle kernen alle instructies kunnen uitvoeren, lost dit problemen met softwaresteun voor heterogene processors niet op.
Een andere benadering van applicatieontwerp, dichter bij wat u waarschijnlijk denkt in uw vraag, zou de GPU gebruiken voor het versnellen van zeer parallelle delen van toepassingen. Dit kan worden gedaan met behulp van API's zoals OpenCL en CUDA. Wat betreft een oplossing met één chip, promoot AMD hardwaresteun voor GPU-versnelling in zijn APU's, die een traditionele CPU en een hoogwaardige geïntegreerde GPU combineert in dezelfde chip, als heterogene systeemarchitectuur, hoewel dit buiten de industrie nog niet veel is waargenomen van enkele gespecialiseerde toepassingen.
Heeft u iets toe te voegen aan de uitleg? Geluid uit in de reacties. Wilt u meer antwoorden van andere technisch onderlegde Stack Exchange-gebruikers lezen? Bekijk hier de volledige discussiethread.
Image Credit: Mirko Waltermann (Flickr)
Hoe macOS Spotlight Search te reviseren met behulp van Alfred
Spotlight Search op macOS is de laatste paar jaar een stuk beter geworden, maar er ontbreekt nog steeds zoveel potentieel. Voer Alfred in, vergelijkbaar met zoeken in Spotlight, maar op enkele belangrijke steroïden. Wat kan Alfred doen? Alfred heeft enkele basisfuncties waarmee het meteen opvalt, net als zijn webzoekfunctionaliteit.
Het bericht Automatisch beantwoorden wijzigen in Android Automatisch
Android Auto doet veel om uw telefoon nuttiger en veiliger te maken in de auto: het vereenvoudigt de interface en beperkt de functionaliteit, stelt alleen toegang tot belangrijke apps die je onderweg nodig hebt. Meer recentelijk heeft Google een "automatisch antwoord" -functie opgenomen waarmee gebruikers snel inkomende berichten kunnen beantwoorden.