Futuremark stoppar Samsung och HTC i 3DMark efter fuskanklagelser

Permalänk
Hedersmedlem
Skrivet av Sears:

Sant, men varför skona myggan? Det är väl lika bra att smälla den när man kan.

Sant och jag har ingen invändning mot det. Som jag skrev ovan tycker jag dock att många drar för stora växlar på det här. Samsungs och HTC tilltag är mest av allt klantigt. Så egentligen är vi överens, jag bara hade önskat att fler intresserade sig för frågor som t ex den jag nämner i inlägget du citerade. Kanske är jag cynisk, men jag förväntar mig inget annat än vad den här nyheten handlar om.

Permalänk
Datavetare

Fusket består av två delar, den ena har redan nämns här och består i att man kör GPUn i en något högre frekvens än vad den annars någonsin skulle använda, ökningen man får i prestanda från denna del är nog under den nivån där man överhuvudtaget märker något.

Den andra delen i fusket belyser däremot ett mycket mer intressant problem: CPUer med (för klassen) hög prestanda med en väldigt låg TDP kräver ett ganska stort spann av olika CPU-frekvenser, vad betyder det för upplevd prestanda?

I Samsungs fall så gav den senare delen av fusket en rejäl boost, framförallt på deras eget Exynos Octa som använder två typer av CPU-kärnor i vad som kallas big.LITTLE, en Cortex A7 (LITTLE) och en Cortex A15 (big).

På pappret ser big.LITTLE ut som en perfekt teknik, man kör med en liten strömsnål CPU-kärna när lasten är låg och en snabbare med "törstigare" CPU-kärna när lasten är hög. I fallet Qualcomm, Intel och AMD har man i stället ett större spann av frekvenser och matarspänning till CPU-kärnan.

Att byta frekvens på en CPU-kärna, något Intel kallar byta P-state, tar faktiskt väldigt lång tid. Haswell är nog den CPU som kan byta frekvens snabbast av alla och där tar det ~10µs, kanske inte låter mycket men kör man på 2GHz så är det 20.000 CPU-cykler.

På Snapdragon tar ett frekvensbyte ~100µs, kör man i big.LITTLE så kostar ett frekvensbyte som också involverar byte från LITTLE till big (eller tvärs om) många millisekunder. Vi pratar nu om att ett program hinner köra ett par miljoner CPU-cykler innan frekvensbytet genomförts.

Ju längre tid det tar att hoppa mellan frekvenserna, desto mer tröghet lägger Linux in för att faktiskt genomföra bytet. I fallet benchmarks så kan det mycket väl betyda att resultatet man får är på en lägre frekvens (eller på en långsammare CPU i fallet Exynos Octa), vilket då avspeglas i sämre resultat.

Visst, men vem bryr sig om benchmarks? Rätt många verkar det som, men om man tänker lite längre och funderar vilken påverkan detta har på vardaglig användning av enheten så inser man snabbt att en så pass långsam ökning av frekvensen att man som människa hinner märka det kommer resultera i en enhet som känns relativt seg trots att enheten faktiskt har väldigt mycket maximal kraft.

Så allt prat om mobiler på >2Ghz är egentligen rätt mycket varmluft. Dels utvecklar CPUerna mer effekt än TDP i det läget, så man kan bara köra den frekvensen några sekunder, sedan kommer man i många fall inte använda denna höga frekvens när den väl behövs för typ "touch-event" och andra interaktiva laster är typiskt väldigt korta, enheten sover före och efter händelsen så man startar typiskt i lägsta möjliga frekvens och hinner ofta inte skala upp till max frekvens innan man är klar...

Frågan om inte Apple tänkt mest rätt här: i stället för att ge sig på MHz och CPU-kärnor race:et har man i stället utvecklat en CPU-kärna med väldigt hög IPC, något som i.o.f.s. betyder att man inte kan ha så många kärnor då de är komplicerade, men man klarar sig med väldigt låg frekvens. Låg frekvens betyder lägre spänning, något som betyder låg strömförbrukning (lite av denna fördel förloras i att CPU-kärnan är mer komplicerad). Låg frekvens betyder också mindre frekvensspann, så problemet beskrivet ovan är mindre.

Edit: LOL, lyckades skriva en wall-of-text men missade att skiva hur Samsung fuskade här
Man låter helt enkelt CPUn alltid använda högsta frekvens när man ser att det är en (känd) benchmark som körs.

Det betyder INTE att det drar tokmycket ström hela tiden, man har forfarande kvar möjligheten till att "clock-gate:a" CPU-kärnan, d.v.s på ren svenska stoppa CPUn och på så sätt spara massor med ström när den är "idle". Detta är något CPU-tillverkarna kallar för C-state, bara i C0 man faktiskt kör program. Alla andra C-state är olika former av "idle", att kliva ur C1 ("lättaste" formen av "idle") tar ~1µs.

Visa signatur

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

Permalänk

Bra av Futuremark att inte tillåta fusk! Om Samsung/HTC menar att denna doping är okay så antar jag att dom även är beredda att ge fullskalig garanti till folk som vill överklocka sina lurar för gaming, till exakt den nivån dessa företag själva gör i 3DMARK.
Företagen vet dock att dessa nivåer inte är snälla mot varken kretsar eller batteritid så dom gör detta bedrägliga undantag för dessa benchmarks bara för att se bättre ut än vad dom egentligen är. Inget telefonerna skulle må bra av i längden mao... Nästan så att nån borde koppla in en Note 3 i väggen och köra 3DMARK på loop i månader bara för att se hur lång tid innan artefacts uppstår o telefonen pajjar.

Skrivet av Yoshman:

[...]
Edit: LOL, lyckades skriva en wall-of-text men missade att skiva hur Samsung fuskade här
Man låter helt enkelt CPUn alltid använda högsta frekvens när man ser att det är en (känd) benchmark som körs.
[...]

Kanske är en "wall-of-text", men en bra sådan! Kvaliten och informationstätheten i dina inlägg är ju alltid så hög att man undrar hur mycket du får betalt för det!

Visa signatur

Dator: EEE901 N270/ 1GB / 20GB SSD ... Kraftigt nedbantat/tweakat Win7 x86 for speeeEED!
Facebook användare? Hatar tidslinjen? gå med i denna FB-grupp:
Undo Timeline ...med lite tur får h*lvetet ett slut!

Permalänk
Datavetare
Skrivet av lastninja:

Kanske är en "wall-of-text", men en bra sådan! Kvaliten och informationstätheten i dina inlägg är ju alltid så hög att man undrar hur mycket du får betalt för det!

Faktum är att jag fått betalt för flera saker av det jag skrev ovan då det är saker som jag vet p.g.a. jobbet. Har t.ex. nyligen studerat hur man får ut optimal prestanda ur en sin programvara på Linux, att då veta hur P-states/C-states fungerar visade sig vara väldigt värdefullt då kopplingen mellan dessa och server-prestanda inte är helt uppenbar. Kort-story: att gör Samsungs "trick" med att alltid köra i maximal frekvens och bara använda C-states för att spara ström kan ge en hel del extra "throughput" vid vissa I/O-intensiva laster utan allt det leder till allt för stor ökning av strömförbrukning.

Visa signatur

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

Permalänk
Hedersmedlem
Skrivet av Yoshman:

Kort-story: att gör Samsungs "trick" med att alltid köra i maximal frekvens och bara använda C-states för att spara ström kan ge en hel del extra "throughput" vid vissa I/O-intensiva laster utan allt det leder till allt för stor ökning av strömförbrukning.

Intressant. Länken till förklaringen för oss icke insatta fokuserar på x86 processorer. Har du någon länk eller kan du kort kommentera hur det ser ut med C-states vad gäller ARM familjen?

Permalänk

och vem fan håller koll på Futuremark?
kommer ihåg att man fick bättre värden på via processor om man döpte om den till en Intel processor....

så bajs på dom.

nej det är inte okej att fuska men man ska fan har rent runt egen dörr innan man klankar ner på andra.

Visa signatur

I am the Leech King!

Permalänk
Datavetare
Skrivet av KimTjik:

Intressant. Länken till förklaringen för oss icke insatta fokuserar på x86 processorer. Har du någon länk eller kan du kort kommentera hur det ser ut med C-states vad gäller ARM familjen?

Det närmaste jag tror du kommer för ARM är detta
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.d...

Tycka vad man vill om x86, men en gigantiskt fördel med AMD och framförallt Intel är att de är extremt villiga att dela med sig av väldigt specifika detaljer kring hur deras CPUer fungerar. AnandTech hade en väldigt träffade kommentar till just detta i våras då han skrev att redan då visste man långt mycket mer om designen av Silvermont (som då var runt 6 månader bort från att släppas) än man visste om Qualcomms Krait (som släpptes hösten 2012). Och då har ändå Intel hållit mycket hårdare på detaljerna kring Silvermont än de "stora" kärnorna som Sandy/Ivy Bridge och Haswell.

Samma sak gäller även kring strömsparfunktioner, väldigt svårt att hitta specifika detaljer kring ARM-CPUerna. Och om jag vet något (jobbar på ett företag som är strategisk partner med bl.a. ARM) så har man typiskt skrivit på något som gör att man inte kan säga något om detaljer...

Man kan inte kanske gnälla på ARM då deras uppgift är att tala om vad som ska hända, det är sedan tillverkarna av CPU-kärnor som kan välja att tala om hur. I.o.f.s. är det rätt tunt med detaljer kring hur Cortex A8/A9/A7/A15 fungerar också, men en del detaljer finns i alla fall. Qualcomm ger ut extremt lite om sin Krait-design och Apple ger ut absolut noll kring sin Swift/Cyclone mer än det uppenbara vilken ISA (Instruction Set Architecture) version man stödjer (svårt att skriva program till den om man inte vet detta).

Visa signatur

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

Permalänk
Skrivet av Yoshman:

Samma sak gäller även kring strömsparfunktioner, väldigt svårt att hitta specifika detaljer kring ARM-CPUerna.

När jag köpte en Nokia N900 år 2010 (TI OMAP3430) så var jag själv väldigt intresserad av hårdvaran och vad man kunde åstadkomma med den.

Det här är ett handplock av vad Texas Instruments har att bjuda på för dom nyare OMAP 4 & 5 serierna:
http://www.ti.com/analog/docs/analogtechdoc_hh.tsp?viewType=m...

Och jag var särskilt intresserad av DSP programmering för att se över möjligheter för 720p videoinspelning (..hann knappt komma nån vart, innan homebrew-scenen lyckades få till det ändå).. Hittade då dessa dokument som iofs inte är ARM relaterade:
http://www.ti.com/dsp/docs/dspsupporttechdocs.tsp?sectionId=3...

Verkar alltså som att man får pussla ihop ARM's dokument med Tillverkarnas för att få en så hel bild över ARM-programmering som möjligt.

PS. Jag gav upp DSP programmering när jag såg hur offantliga mängder "Register" dessa DSPer hade (40+ om jag inte minns fel). Som om det inte gjorde saken tillräckligt svårt att använda dessa på optimalt sätt, så skulle man även lära in sej många A4-sidor med "undantagsregler" för hur dessa Register får brukas.
Regler som nästlade ihop allting och gör att register, flaggor, stackar och instruktioner inte alltid är tillgängliga på ett praktiskt sätt. Och om man inte följer dessa skumma regler eller har kapacitet för dom i bakhuvet kommer man råka ut för riktigt äckliga buggar av till synes legitim DSP assemblerkod... Kändes typ som att dom enda som kan behärska programmeringen är ingenjörerna bakom DSP'ns logik.

Visa signatur

Dator: EEE901 N270/ 1GB / 20GB SSD ... Kraftigt nedbantat/tweakat Win7 x86 for speeeEED!
Facebook användare? Hatar tidslinjen? gå med i denna FB-grupp:
Undo Timeline ...med lite tur får h*lvetet ett slut!