@lorgix: Är hur som helst, väldigt enkelt när man kikar lite närmare på det, ett enkelt konstaterande och mattematik från grundskolan räcker bra.
Han skrev det 1967, misstänker att det var riktat mot parallellisering av jobb, på dåtidens datorsystem, dessa användes ju för fullt ändå, via en massa köade batchjobb, där var det bara onödigt besvär att försöka sprida ut ett jobb på många CPU:r.
Det @Yoshman räknade runt julhelgen var ju hur "effektiviten" minskar. Här två citat som sammanfattar.
2016-12-22 #16562474
Min poängen är att man ska ställa SR5/7 och E-serien mot de modeller som idag har högst enkeltrådprestanda, vilket är de fyrkärninga modellerna.
Att det är de just fyrkärninga har både en ekonomiskt och minst två fysisk förklaringar.
Den ekonomiska är: om det skulle finnas betydligt billigare tvåkärninga modeller som klockade högre än någon annan modell skulle man tappa försäljning av mer lukrativa modeller. D.v.s. det är ekonomiskt korkat för Intel att göra detta i detta läge.
Fysisk 1: det verkar inte som det skulle går att klocka tvåkärniga modeller speciellt mycket högre än fyrkärniga, men vid sex och åtta kärnor ser det ut att falla av (något som kan ändras i framtiden naturligtvis)
Fysisk 2: Amdahls lag. Antag att 80 % av all kod i ett program kan dra fyll nytta av alla kärnor, d.v.s. p=0,80. Antag vidare att man kan klocka 20 % högre om man halverar antal CPU-kärnor. Antag vidare att SMT ger 25 % boost och finns i alla modeller
Den maximala prestandavinsten från en hypotetisk enkelkärnig CPU (som då har två CPU-trådar) blir då
1->2 kärnor: 35 %
2->4 kärnor: 20 %
4->8 kärnor: 7 %
8->16 kärnor: -3 %
D.v.s. problemet med många kärnor är just att man det i praktiken minska enkeltrådprestanda vilket även i ett fall där 80 % av koden kan dra full nytta av alla kärnor leder till en minskning av faktisk prestanda i detta exempel.
Tar man samma exempel men i stället antar att det går att klocka lika högt oavsett antal kärnor får man
1->2 kärnor: 62 %
2->4 kärnor: 44 %
4->8 kärnor: 29 %
8->16 kärnor: 17 %
Har får man aldrig en försämring, så är aldrig sämre med fler kärnor. Däremot blir den snabbt rätt liten effekt av att dubbla antalet kärnor (4->6 ger i detta exempel bara 17 %). Så i något läge blir det ändå inte prisvärt (om man nu har saker som ligger på p=0,80 vilket är ungefär det högsta värde på "p" som spel verkar ha, så här långt). Edit: och detta förutsätter förstås att GPU-delen inte är flaskhals!!!
2016-12-28 #16573288
Amdahls lag är just det, en lag. Den beskriver en övre gräns för hur mycket boost man någonsin kan se från ett visst antal CPU-kärnor över ett system med samma prestanda per CPU-tråd som kör en enda tråd. Det är alltså en överskattning av hur stor boost man kan få.
Problemet med Amdahls lag är att det är allt annat än enkelt att fastställa värdet på "p", d.v.s. hur stor andel av programmet som kan dra nytta av alla CPU-trådar (p är alltså ett tal mellan 0,0 och 1,0). Går ändå att göra lite approximationer och för vissa program vet man att p är 0 (t.ex. alla normala applikationer skrivna i JavaScript eller som på annat sätt är enkeltrådade) medan man i andra vet att p är 1 (t.ex. rendering och allt för många benchmarks som testar CPU-prestanda).
Spel ligger idag typiskt mellan 0,5 och 0,8. De flesta program på skrivbordet ligger mellan 0,0 och 0,8.
Men, visst jag tar 16 kärnor och 32 trådar alla dagar!
| Fractal Design Define R5| Asrock X399 Fatal1ty| Threadripper 1950X| Noctua NH-U14S TR4-SP3| Corsair Vengeance LPX 8x16GB 3200 C16| be quiet! Straight Power 11 Platinum 1000W| ASUS RTX 3080 10GB Strix| LG OLED 4k 42" C2| Debian Sid| KDE 5.x|