AnandTech - Podobno kot njihov x86 kolega Intel je tudi Samsung nekoliko sfriziral rezultate hitrostnih testov za svoj vodilni telefon Galaxy S4, specifično za različico z lastnim Exynos Octa osemjedrnikom. Kot namreč ugotavljajo hekerji pri beyond3D in potrjuje Anand, je najvišja frekvenca vgrajenega grafičnega čipa PowerVR SGX 544MP3 - 533MHz - omogočena samo za izbrane hitrostne teste. "Ostale" aplikacije, vključno z igrami, so omejene na 480MHz, zato vse s strani Samsunga oglaševane "pohitritve" zanje pač ne pridejo v poštev.
Za to poskrbi Samsungov CPU governer, ki ima v izvorni kodi hardkodirane prefixe izbranih benchmarkov AnTuTu, BenchmarkPi, Quadrant in GLBenchmark. Tem in edino tem dovoli rabo grafičnega čipa pri maksimalni frekvenci. Podobno je s CPU-jem. Taiste aplikacije se vedno izvajajo na močnejših štirih jedrih A15 pri maksimalni frekvenci 1.2GHz, brez preklopa na šibkejša štiri jedra A7, ali downclockanja frekvence. Exynos Octa lahko namreč hkrati uporablja bodisi štiri močnejša bodisi štiri šibkejša jedra (po ARM-ovi specifikaciji big.LITTLE), pač odvisno od trenutnih potreb. Samsungov CPU governor pri tem za te teste, poleg hitrejšega GPU-ja, izsili tudi trajni vklop močnejših jeder.
Zadeva ni ne vem kako škandalozna, ker ni Samsung nikoli uradno navedel, katere frekvence bodo na voljo, ter kdaj. Gre bolj za to, da je "zamolčal" določene podrobnosti. Škoda za primerjalne teste v spletnih revijah bo tudi minimalna, ker so večinoma že vse prešle na novejši GLBenchmark 2.7.x, ki pa ni whitelistan za 533MHz (najbrž po napaki Samsungovih programerjev, a vseeno). Za večino uporabnikov pa to itak ne bo pomembno, ker bodo dobili verzijo telefona z Qualcommovim Snapdragonom, ne Exynos Octo.
Če kaj, bi bilo lepo od njim, da uporabnikom dovolijo tudi super hitro praznjenje baterije. Pač po želji.
Saj na PCjih mamo tudi dolgo tradicijo takih optimizacij. Se še spomnimo ko so nenadoma nVidiine kartice zgubile konkreten del točk v 3DMark 2001 ko si preimenoval .exe a ne? ;)
Mavrik, kje pa piše, da vezava driverja na ime EXE fajla avtomatično pomeni goljufanje? Dandanes ima praktično vsak špil custom made profil na single GPU konfiguracijah, dual in več pa sploh, da deluje z max kapaciteto zmogljivosti. Če preimenovanje pomeni padec performansa ne pomeni, da si skinil cheate ampak samo pomeni, da si skinil tud povsem legitimne optimizacije, da zadeva dela z max hitrostjo, zato pa tud padec performansa.
Ja, samo da so optimizacije narejene posebej za bench je pa tudi goljufanje..
In optimizacije narejene posebej za špil, da dela hitreje pa niso? Zakaj imam feeling, da eni razumete optimizacije izključno kot droppanje kakovosti na račun hitrosti. Veš, optimizacije so lahko tud take, ki na izgled nič ne vplivajo, pa dvignejo performanse. Recimo da špil specifično ne mara Radeonov ker pač uporablja nek engine, ki je boljši za GeForce kartice.
Generičnih optimizacij, ki bi nasplošno dvignile performanse za X procentov že dolgo ni več zaradi same narave iger ter tega kako so spisane (Direct3D in kompajlanje shader kode). Včasih je za to skrbel driver grafične, danes za optimalno kodo poskrbi že sam Direct3D, grafa smo izvede kar dobi in redko še kaj preklada shader kodo. So pa zdej game specific optimizacije, kjer odpravijo tista zadnja neskladanja igre z driverji/grafično in s tem dvignejo performanse.
Rejzor: Samsungova optimizacija je overclocknila GPU samo za bench programe in nobene druge. Saj so decompilali program no. Kako blizu guljufanja kot to da naviješ GPU samo in IZKLJUČNO za bench programe lahko sploh prideš?
Isto je bilo tudi z nVidiinim 3dmarkom, kjer so preprosto cele dele scene nehali renderirat in so znižali kvaliteto filtriranja tekstur.
Štekam kaj hočeš reči, sam včasih ljudje preprosto goljufajo.
Včasih je za to skrbel driver grafične, danes za optimalno kodo poskrbi že sam Direct3D, grafa smo izvede kar dobi in redko še kaj preklada shader kodo.
Uf... Pa še kako prekladajo današnji driverji shader kodo... Driver dobi D3D byte code, ki ga hardware niti približno ne zna kar zagnat (niti nima nujno vseh ukazov, ali pa ima več ukazov kot D3D). Shaderji se iz HLSL prevedejo v D3D byte code brez kakršnega koli vedenja o hardware-u na katerem bodo tekli. Dostikrat igra tudi pride že direkt s prevedenimi shaderji.
Me ne preseneča čisto nič. Itak pa android tako butast, da že ob najbolj simple algoritmih nabije procesor na max. frekvenco, da ja čimbolj baterijo pije in da jo čimprej menjaš potem.
@Mavrik Sej ne da je GPU specificiran na 533MHz, torej ga ne navijajo ampak ga OMEJUJEJO za vse ostalo. Kar pa mal spremeni stvari ane?
@Senitel Mal sem se čudno izrazil, govoril sem o tem, da je koda, ki jo dobi grafična že "as good as it can be" in je skor ne moreš več izboljšat. Še sam si enkrat razlagal glede tega kako je bilo včasih in kako je zdaj. Sam se ne spomnim čiste detajle...
@Mavrik Sej ne da je GPU specificiran na 533MHz, torej ga ne navijajo ampak ga OMEJUJEJO za vse ostalo. Kar pa mal spremeni stvari ane?
Um, ne ne spremeni. Razmerje hitrosti v uporabnih apliakcijah glede na ostale telefone ne bo isto - S4 bo zgledal hitrejši v aplikacijah kot v resnici bo. Nateg je nateg, nima veze kakšen je silicij.
Mal sem se čudno izrazil, govoril sem o tem, da je koda, ki jo dobi grafična že "as good as it can be" in je skor ne moreš več izboljšat. Še sam si enkrat razlagal glede tega kako je bilo včasih in kako je zdaj. Sam se ne spomnim čiste detajle...
Včasih so bili ti prevajalniki v driverjih slabši kot danes, zato je bilo bolj pogosto zamenjevat shaderje. Torej, ko driver dobi iz D3D nek bytecode za shader X, vzame iz svoje knjižnice nek že preveden in (ročno) optimiziran shader, ki dela "približno isto". Danes so prevajalniki bistevno boljši ampak D3D compiler ne ve ničesar o strojni opremi, na kateri bo shader tekel (niti se ni posodabljal že kar nekaj let) in enostavno ne more delat nobenih optimizacij povezanih s tem.