Processorns bitar byter värde (Uträkning?)

Trädvy Permalänk
Avstängd
Registrerad
Mar 2016

Processorns bitar byter värde (Uträkning?)

Tjenare!
Undrar hur många bitar som kan byta värde i en processor under en sekund om processorn har:

  • 64bit

  • 2GHz

  • 4 Kärnor

  • 8 Trådar

Tack på förhand!

Trädvy Permalänk
Medlem
Plats
-
Registrerad
Mar 2008

Inte riktigt så det fungerar, processorer är olika, och även programmen/instruktionerna de får utföra , börja med att läsa https://en.wikipedia.org/wiki/Instructions_per_cycle

Om vi tar:
2GHz * 4 kärnor * 4 operationer per klockcykel = 32 GFlops

Men kör du ett program som utnyttjar AVX512 instruktioner med Xeon Skylake så skulle liknande kalkyl ge:
2 * 4 * 32 = 256 GFlop.

Men riktigt så enkelt är det inte. Processerna är strypta på åtminstone två sätt via mikrokoden för att det inte ska bli härdsmälta; värmeutveckling och strömförbrukning. Du kan alltid ge processorn bättre kylning, vilket kan ge längre Turbo spurtar men processorn kommer att även att hålla sig inom sin sin specificerade strömförbrukning (TDP anges i Watt). Det sistnämnda är svårare att kringå, Xeons är fast, men de överklockningsvänliga K- processorna kan man komma lite över med.

Däremot är det inte helt tydligt från Intel's sida då nominala klockfrekvenser skiljer sig med hungrigare AVX instruktioner, det är oftast lägre på moderna processorer. T.ex. en Xeon Gold 6138 är på 2GHz som utför AVX512 instruktioner så trillar den ner till en nominell hastighet av 1.3GHz!
https://en.wikichip.org/wiki/intel/xeon_gold/6138

Exempelvis om vi räknar på standard program, (6138 råkar vara på 20 kärnor):
20kärnor * 2GHz * 4 operationer = 160GFlop
Men med AVX512 utnyttjande program skulle den istället ge:
20kärnor * 1.3GHz * 32 dual precision operationer = 832 GFlop, vilket är givetvis trevligt, vem bryr sig om den går ner så klockfrekvens om den ändå presterar mer än 5 gånger bättre?

I verkligheten är det väldigt få program som är fintrimmade för att ens närma dessa "teoretiska max" värden. Traditionellt sett så har Linpack bechmarket varit ett bra sätt att utvärdera detta. Med en Intel processor så kan du tanka ner deras färdiga paketering: https://software.intel.com/en-us/articles/intel-mkl-benchmark... och testa själv, (kan behövs lite tuning, du vill utnyttja så mycket RAM minne som möjligt, utan att swappa.

Brukar också vara så att en generisk Windows inte klarar sig särskilt bra, det är för mycket saker som stjäl klockcykler. Rikta in dig hellre på en minimal linux, utan grafiskt och annat bakgrunds fluff som stjäl dyrbara klockcykler så har du möjlighet och komma väldigt nära dessa teoretiska värden på en Intel plattform. (Tack vare Turbo kan man ibland även komma över teoretiskt max på en singel socket maskin.) Allt över 95% effektivitet är ju imponerande bra om man lyckas utnyttja näst intill varje klockcykel på ett benchmark som vara längre än några minuter.