Produktplaner för både AMD och Intel hittar ut på webben

Permalänk
Datavetare
Skrivet av Renrakad:

Det stämmer, jag avsåg 8700k vs 2700X. 1 är förövrigt den multiplikativa identiteten.

Ja, det är från AnandTech.

Det är begging the question att hävda slutsatsen i premisserna, men jag har inte tittat på deras förklaring (Win 8 timings igen?), ska kika, men huruvida Dolphin är en entrådad last är väl inte omtvistat?

Som jag har förstått det, rätta mig gärna, är emuleringen av exekveringsenheter som exekverar en seriell last, som i Dolphins fall, både processorintensiv och av sin natur entrådig, att fördela lasten kan bara gå långsammare tack vare synk, och att det därför krävs kort period - högre ipc - och hög frekvens på en ensam processorkärna. Frekvenshöjning är även poänglöst om instruktionen inte utförs under en period. Moderna emuleringsplattformar kan göras flertrådiga tack vare fullständig interruptuppsättning och att lasten på gästsystemet i sig är flertrådig. Detta vid realtidskrav. Eller?

Som jag också har förstått det med tanke på QEMU är att det finns fler register i 64-bit och att således 64-bit i sig är en prestandavinst utöver det ökade omfånget på minnessadressering?

Dolphin benchmark är tyvärr som rätt andra benchmarks: rätt orealistiskt. Detta då den inte testar det nästan alla använder Dolphin till, d.v.s. köra spel, utan benchmark kör "POV-Ray" benchmark emulerat.

Finns att ladda ner här. Kör jag den på min Surface 4 drar det väldigt nära 100 % på alla fyra CPU-trådar. Lite analys med Microsoft process explorer visar att det är 5-6 trådar som är aktiva, men majoriteten av lasten ligger på två CPU-trådar.

Vilket fortfarande gör AnandTechs relativa prestanda mellan i7-6700K och i7-8700K väldigt märklig, det är något som inte alls står rätt till där. Felet var ju att AnandTech tvingade in användning av HPET. Ett stort problem med HPET är att det krävs systemanrop för varje avläsning, vilket gör tidsmätningar med HPET långt dyrare jämfört med RDTSC instruktionerna (som just är x86-instruktioner och därmed inte kräver systemanrop).

Intel drabbas dubbelt av HPET. Dels har Intel högre noggrannhet i HPET, specifikationen säger minst 10 MHz (100 ns upplösning), vilket är vad AMD kör med. Men Intel har valt 24 MHz (42 ns upplösning), något som ökar antalet systemanrop för att ladda om HPET. Sedan blev systemanrop dyrare i.o.m. Meltdown-patcharna, fast RDTSC påverkar överhuvudtaget inte av dessa.

Angående ARM 32 vs 64 bitars. Det går överhuvudtaget inte att jämföra med andra övergångar till 64-bitars. Aarch64 har lika mycket gemensamt med 32-bitars ARM som det har med PowerPC eller MIPS. Normalt blir det långsammare att köra 64-bitars kod.

x86_64 var ett undantag då man ökade antal register och fixade lite andra grodor (vettig PC-relativ adressering), i samband med övergången. Men på det stora hela är x86_64 rätt mycket bara en utökning av 32-bitars x86.

Precis som x86 är 32-bitars ARM en rejäl soppa av historiska beslut som idag är långt ifrån optimalt. Så ARM bestämde helt sonika att starta med ett blankt papper och göra om hela ISA från scratch. Nu är Aarch64, tillsammans med RISC-V, de enda två "perfekta" ISA som existerar givet dagens krav på programvara.

Ska bli väldigt spännande att se hur stor fördel detta blir i praktiken. De rena Aarch64 designer som finns idag (Apples senare CPUer, Qualcomm Falkor samt Caviums ThunderX2) presterar faktiskt helt imponerande, de är helt i nivå med high-end x86 samtidigt som de fortfarande använder färre transistorer och är något mer strömeffektiva.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd
Skrivet av Yoshman:

Dolphin benchmark är tyvärr som rätt andra benchmarks: rätt orealistiskt. Detta då den inte testar det nästan alla använder Dolphin till, d.v.s. köra spel, utan benchmark kör "POV-Ray" benchmark emulerat.

Finns att ladda ner här. Kör jag den på min Surface 4 drar det väldigt nära 100 % på alla fyra CPU-trådar. Lite analys med Microsoft process explorer visar att det är 5-6 trådar som är aktiva, men majoriteten av lasten ligger på två CPU-trådar.

Vilket fortfarande gör AnandTechs relativa prestanda mellan i7-6700K och i7-8700K väldigt märklig, det är något som inte alls står rätt till där. Felet var ju att AnandTech tvingade in användning av HPET. Ett stort problem med HPET är att det krävs systemanrop för varje avläsning, vilket gör tidsmätningar med HPET långt dyrare jämfört med RDTSC instruktionerna (som just är x86-instruktioner och därmed inte kräver systemanrop).

Intel drabbas dubbelt av HPET. Dels har Intel högre noggrannhet i HPET, specifikationen säger minst 10 MHz (100 ns upplösning), vilket är vad AMD kör med. Men Intel har valt 24 MHz (42 ns upplösning), något som ökar antalet systemanrop för att ladda om HPET. Sedan blev systemanrop dyrare i.o.m. Meltdown-patcharna, fast RDTSC påverkar överhuvudtaget inte av dessa.

Angående ARM 32 vs 64 bitars. Det går överhuvudtaget inte att jämföra med andra övergångar till 64-bitars. Aarch64 har lika mycket gemensamt med 32-bitars ARM som det har med PowerPC eller MIPS. Normalt blir det långsammare att köra 64-bitars kod.

x86_64 var ett undantag då man ökade antal register och fixade lite andra grodor (vettig PC-relativ adressering), i samband med övergången. Men på det stora hela är x86_64 rätt mycket bara en utökning av 32-bitars x86.

Precis som x86 är 32-bitars ARM en rejäl soppa av historiska beslut som idag är långt ifrån optimalt. Så ARM bestämde helt sonika att starta med ett blankt papper och göra om hela ISA från scratch. Nu är Aarch64, tillsammans med RISC-V, de enda två "perfekta" ISA som existerar givet dagens krav på programvara.

Ska bli väldigt spännande att se hur stor fördel detta blir i praktiken. De rena Aarch64 designer som finns idag (Apples senare CPUer, Qualcomm Falkor samt Caviums ThunderX2) presterar faktiskt helt imponerande, de är helt i nivå med high-end x86 samtidigt som de fortfarande använder färre transistorer och är något mer strömeffektiva.

Alltså, Dolphin använder 3 trådar. CPU, GPU och DSP. Den renderar benchmark via CPU, en tråd. Entrådsprestanda är beroende på frekvens, period och instruktionslängd där längsta instruktionssteg flaskar frekvensen. Lasten på Dolphin kan alltså inte distribueras över 3+N kärnor. Således är Dolphinprestanda en god indikator på enkeltrådsprestanda, varför jag ursprungligen länkade bilden. Det rimmar också med siffror kring 15-20% prestandaövertag för Intel. Vissa instruktionspipes spelar roll i olika applikationer, varför Haswell exempelvis gav en stor boost i Dolphin.

Begging the question, eller att hävda slutsatsen i premisserna är vad som sker här. Resultaten rimmar inte med din uppfattning av relativ prestanda två modeller emellan. Men en sådan tankemodell måste verifieras med empiriska data. Datan verifieras i resultatlistan från tidigare processorer i uppemot 5.2 GHz. Sedan vet jag inte om Process explorer är ett särskilt precist mätverktyg.

1. Vatten är torrt
2. Jag har hittat vatten!
1. Är det torrt?
2. Nä?
1. Då är det inte vatten.

Permalänk
Datavetare
Skrivet av Renrakad:

Alltså, Dolphin använder 3 trådar. CPU, GPU och DSP. Den renderar benchmark via CPU, en tråd. Entrådsprestanda är beroende på frekvens, period och instruktionslängd där längsta instruktionssteg flaskar frekvensen. Lasten på Dolphin kan alltså inte distribueras över 3+N kärnor. Således är Dolphinprestanda en god indikator på enkeltrådsprestanda, varför jag ursprungligen länkade bilden. Det rimmar också med siffror kring 15-20% prestandaövertag för Intel. Vissa instruktionspipes spelar roll i olika applikationer, varför Haswell exempelvis gav en stor boost i Dolphin.

Begging the question, eller att hävda slutsatsen i premisserna är vad som sker här. Resultaten rimmar inte med din uppfattning av relativ prestanda två modeller emellan. Men en sådan tankemodell måste verifieras med empiriska data. Datan verifieras i resultatlistan från tidigare processorer i uppemot 5.2 GHz. Sedan vet jag inte om Process explorer är ett särskilt precist mätverktyg.

1. Vatten är torrt
2. Jag har hittat vatten!
1. Är det torrt?
2. Nä?
1. Då är det inte vatten.

Läs källkoden alt. kolla med process explorer (som är 100 % exakt när det kommer till antalet trådar en process använder då den bara frågar Windows). Dolphin använder aktivt 8 trådar, av dessa är det två trådar som används väsentligt mer än de övriga sex.

Men även om man total ignorerar ovan så är det bara titta på resultatet du postade, om det hade varit en bra indikator på enkeltrådprestanda så hade i7-8700K aldrig kunnat vara mer än 12 % snabbare jämfört med i7-6700K. Så endera är det ingen bra indikator på enkeltrådprestanda eller så är det något annat rejält fel med mätningen.

Slutligen: skrev initialt att Zen är väldigt stark på en väldigt specifik sak, skalära flyttal. Vad är det man testar i Dolphins benchmark? Jo, man kör POV-Ray. Som gör vadå? Ju det är ett renderingsprogram med ett gäng år på nacken som ... primärt jobbar med skalära flyttal. Vad gör man normalt med Dolphin? Kör spel, där är den primära flaskhalsen skalära heltal!

Jämför det med spel som, likt de flesta program på skrivbordet, primärt jobbar med heltalsberäkningar. Flyttalen hanteras främst av GPU i spel, finns lite fysikberäkningar men det är dels inte primär flaskhals och dels använder de flesta moderna spel fysikramverk som normalt är SSE optimerade (sällan AVX då dagens konsoler inte får något fördel av AVX över SSE).

TechPowerUp testar väsentligt fler spel än t.ex. SweC. Jämför man i3-8350K och R3-1300X i 1280x720 (inte ens där är CPU helt ute ur ekvationen i alla spel) och kompenserar linjärt för att den förra kör på 4,0 GHz medan den andra har en all-core turbo på 3,6 GHz (båda är 4C/4T) så är Skylake 30 % snabbare i genomsnitt, 32 % snabbare i median och 38 % snabbare om man tittar på de 25 % av spelen där skillnaden är störst (BF1, Divinity Original Sin 2, Rise of the Tomb Raider samt Prey) är fördelen (åter igen kompenserat för frekvens) 38 %.

Den mätning jag gjorde på mina egna system, R5-1600 och i7-6700HQ (båda körandes samma Linux distro och samma programvara) visade på ~30 % fördel för Skylake. Det jag testade var alltså att köra "make" utan "-j" flagga, det betyder att man bara har en invokering av byggkommando (som inte nödvändigtvis är en kompilator och inte nödvändigtvis är helt enkeltrådat, t.ex. så använder UNIX-pipes mer än en kärna, totalt sett är mitt fall väldigt enkeltrådat och nästan helt uteslutande heltalsberäkningar).

Ser du trenden? När skalära heltal är den primära flaskhalsen är Skylake ~30 % snabbare jämfört med Zen vid samma frekvens.

Är den primära flaskhalsen skalära flyttal är det normalt jämt skägg, är den primära flaskhalsen AVX-optimerad är det ungefär 100 % fördel för Skylake. Men båda dessa är rejäla nischer jämfört med heltalsberäkningar sett över vad de flesta program använder.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Avstängd

@Yoshman:

Alltså, särskilt vid realtidsemulering kan processorn omöjligt veta hur koden ser ut i förväg. Det är därför Haswell med förbättrad branch prediction gav en boost. Att emulera en enkeltrådig last i realtid och dessutom distribuera den enkeltrådiga lasten på flera kärnor är omöjligt.

Det spelar alltså ingen roll om det är "povray" eller inte, det är en god prestandaindikator.

Från Dolphins hemsida;

"Dolphin is a dual core application that relies upon IPC (Instructions Per Clock) and clockspeed for performance. Additional cores will not make Dolphin go any faster, though an "extra" core that Dolphin isn’t using may help slightly by keeping background tasks from using the same cores as Dolphin."

Från Anandtech;

"Performance on this benchmark is a good proxy of the speed of Dolphin CPU emulation, which is an intensive single core task using most aspects of a CPU"

Din fråga var hur Dolphinprestanda avslöjade något om enkeltrådsprestanda, och svaret är ju då detta. Du får titta på vad processorerna faktiskt presterar och inte din teoretiska "ref-värde"-faktor, vilket då var en kvot multiplicerad med 1.

Wii & GCs GPU arbetar dessutom exklusivt med heltal.

Här testas heltal exklusivt:

"SPEC CPU2006 analysis is complicated, and with only a few days spend on the EPYC server, we must admit that what follows is mostly educated guessing.

First off, let's gauge the IPC efficiency of the different architectures. Considering that the EPYC core runs at 12-16% lower clockspeeds (3.2 vs 3.6/3.8 GHz), getting 90+% of the performance of the Intel architectures can be considered a "strong" (IPC) showing for the AMD "Zen" architecture. "

https://www.anandtech.com/show/11544/intel-skylake-ep-vs-amd-epyc-7000-cpu-battle-of-the-decade/14

Nya siffror efter HPET-debaclet: