tablice in število jeder v procesorjih

sass

Guru
1. sep 2007
5.233
869
113
vidim, da imajo najnovejše serije tablic vgrajene že štirijedrne procesorje, napovedujejo se že osemjedrni. zanima me, koliko ima pri tablicah smiselno imeti več kot dvojedrni procesor. ali znajo aplikacije, ki tečejo na teh tablicah, dejansko uporabljati paralelno procesiranje ali v čem je smisel imeti toliko jeder?
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Smisel je v marketingu. Zaenkrat. Velika večina aplikacij je single threaded in nimajo nobene koristi od dodatnih jeder. Pisanje multi threaded aplikacij je zelo zahtevno. Veliko "problemov" se tudi ne da razbiti v več neodvisnih delov, ki bi se lahko izvajali vzporedno.

Trenutno več kot dva jedra nima veliko smisla. To je lepo dokazal Apple z A7 SoC, ki z dve,a jedroma brez problema poseka najnovejše quad core procesorje.
 

philips

Guru
Osebje foruma
Administrator
17. avg 2007
9.875
696
113
Ni vse samo marketing. Je pa res da več kot 2-4 jeder nima ravno smisla imeti.
Čeprav se sliši čudno, ima več jeder manjšo porabo. Več jeder z nižjo voltažo lahko "obdela" enako stvari kot eno jedro, ki pa mora imeti ustrezno višjo voltažo in frekvenco. Odvisnost med močjo in voltažo pa je kvadratna funkcija, zato je končna poraba večja.

To da je večina aplikacij enonitnih, to drži. To pa še ne pomeni da na sistemu laufa le ena nit. Razne asinhrone operacije, servisi v backgroundu... to vse teče v novih in ločenih nitih. Če imaš več takšnih zadev prižganih, je bolj optimalno imeti več jeder z nižjo frekvenco in voltažo.

Da pa je A7 dvojedrn in bolj zmogljiv, pa ni nič čudnega, saj je posamezno jedro precej bolj zmogljivo kot pa eno izmed jeder v štirijedrniku. Podobno kot so nekateri i5 precej boljši od i7 v enonitnih scenarijih.
 

brgo

Fizikalc
14. avg 2007
5.783
0
36
Milky way
Citat:
Uporabnik doto pravi:
Trenutno več kot dva jedra nima veliko smisla. To je lepo dokazal Apple z A7 SoC, ki z dve,a jedroma brez problema poseka najnovejše quad core procesorje.

Jedra pridejo prekleto prav, če poganjaš veliko zadev naenkrat. Če jih ne poganjaš je pač bolje imet samo enega ali dva hitrejša cora, kar se pri applu pozna. Pri applu se tudi pozna, da ima UI thread absolutno prioriteto in se posledično zaradi izrisovanja vse ustavi, kar ustvarja boljši vtis hitrosti, čeprav v resnici ne počne nič. Tukaj je tudi razlog zakaj se andoid še z 18 cori zatika in je počasen, apfel pa frči. V resnici je ravno obratno, android naredi v istem času veliko več, ampak ljudje smo čudna bitja pri dojemanju.
 

philips

Guru
Osebje foruma
Administrator
17. avg 2007
9.875
696
113
Vse animacije in kar je s tem povezano se izvajajo na GPUju. To da se na iOSu ne zatika je razlog le v tem, da so vse "kritične" zadeve za GPU napisane v zbirnem jeziku.

Čeprav bodo nekateri to težko sprejeli, je objective-C je dejansko performančno slabši od statično kompajlane Jave (če pa ga primerjaš z JIT kompajlano pa je še slabše). Še malo branja na to temo: http://www.codenameone.com/3/post/2013/07/why-mobile-web-is-slow.html
(beri poglavje "Why Java Is Fast & Objective-C Is Slow")
 

brgo

Fizikalc
14. avg 2007
5.783
0
36
Milky way
Citat:
Uporabnik philips pravi:
Vse animacije in kar je s tem povezano se izvajajo na GPUju. To da se na iOSu ne zatika je razlog le v tem, da so vse "kritične" zadeve za GPU napisane v zbirnem jeziku.

Eh, na androidu je isto, kar se tega tiče. Vse izrisovanje je na GPU-ju. Tudi aplikacije so lahko delno pisane v asemblerju, če je potreba.
 

philips

Guru
Osebje foruma
Administrator
17. avg 2007
9.875
696
113
Seveda je isto, ampak na Androidu je pač "po potrebi", pri iOS pa praktično povsod. Potem pa če še vzameš v zakup da vsak proizvajalec dela neke lastne "dodatke" k sistemu, ki navadno še dodatno upočasnijo delovanje. Zato pa je med seboj edino smiselno primerjati Nexuse in iOS naprave. Pri raznih Samsungih, HTCjih... že več ni to to.
 

brgo

Fizikalc
14. avg 2007
5.783
0
36
Milky way
Jaz sem ciljal predvsem na to, da recimo med skrolanjem v web browserju na iosu vse preneha delat in preneha nalagat stran v ozadju, da vse deluje vrhunsko gladko, medtem ko na androidu res ni nujno vrhunsko gladko, stran se pa tudi med skrolanjem naprej nalaga.

No mogoče je kakšen novejši iOS že dobil ščepec multitaskinga in to ni več nujno res. Ne spremljam scene.

Pa ni res, da se na androidu pospeševanje na GPU-ju dela po potrebi. Pospešeno je vedno in to ni vzrok zatikanja.
 

philips

Guru
Osebje foruma
Administrator
17. avg 2007
9.875
696
113
Citat:
Uporabnik brgo pravi:
Pa ni res, da se na androidu pospeševanje na GPU-ju dela po potrebi. Pospešeno je vedno in to ni vzrok zatikanja.

Eno je da pospešuješ na GPUju, drugo pa da pišeš kodo v zbirnem jeziku in jo poženeš na GPUju. Oboje je pospešeno, ampak drugo je še hitrejše (ker je koda optimalnejša).
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Kodiranje za GPU je po definiciji v asemblerju, ker za pixel in vertex shaderje ne obstajajo višjenivojski jeziki.

Kar se hitrosti ObjC-ja tiče se čisto strinjam. Performančno kritične zadeve se vedno naredijo v C-ju.

@brgo: UI thread mora imeti absolutno prioriteto, tako je edino pravilno. Ko se rabijo cpu cikli za user interface, morajo bg zadeve čakati. V nasprotnem primeru dobiš slabo uporabniško izkušnjo. Jaz imam raje, da je scrollanje smooth, kot da se da prioriteto dekodiranju slik, ki se med scrollanjem nalagajo.

Drugi trik, ki ga apple uporablja že od prvega iphona so pa animacije. Med alociranjem novih view-ov se grafika offlouda na GPU, CPU pa se lahko posveti novi vsebini. Uporabnik pa dobi občutek tekočega delovanja, ker se UI ne blokira za delček sekunde med nalaganjem. Ta princip se na veliko uporablja tudi v windows phone os.

Samega multitaskinga uporabnik ne rabi. Uporabnik rabi, da se aplikacije posodabljajo ko niso aktivne, da se glasba predvaja v ozadju, da dobivaš IM sporočila, ko app ni aktiven,...

18 jederni android pa se zatika, ker v 90% primerov 17 jeder počiva, preostalo pa deluje s polovično frekvenco, da špara baterijo. Zato vsa ta dodatna jedra ne koristijo popolnoma nič za tekoče delovanje OS.
 

brgo

Fizikalc
14. avg 2007
5.783
0
36
Milky way
Pač razmišljaš dosti ozko in hb obstajajo primerne naprave in OS-i. Meni osebno je najbolj važno, da naprava požre in prenese ama čisto vse, takrat ko mi tisto pade na pamet. Sam imam telefon ali tablico skorajda za nadomestek laptopa z windowsi.

Ko ti bo prišlo na pamet, da boš v iOS napravo zadegal usb dvb-t ključek, ki se ti valja v predalu in bo čudežno delal, ali pa samo poskusil malo diagnostike avtomobila s tistim poceni bluetooth donglom me boš razumel, zakaj ni vse v gladko delujoči demo sceni
smile-1.gif
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Tipično razmišljanje programerja. To je tudi en večjih razlogov, zakaj je toliko zanič aplikacij Play store-u. Gledano s stališča uporabniške izkušnje . Ker jih dizajnirajo programerji.

Popolnoma nobenega razloga ni, zakaj bi usb dongle moral prekiniti UI thread. Avto diagnostika pa naj logira podatke, obdelajo se pa naj, ko jih uporabnik rabi. Ne pa da se aktivna aplikacija zatika.
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Seveda se z večanjem performanc HW pozna vedno manj. Samo v osnovi zadeve niso odpravili. Pa tudi poganjanje third partiy code jedru OS prav nič ne pomaga. To je pač davek odprtosti.
 

srv

Fizikalc
27. avg 2008
1.488
29
48
shit, zadnji posti so zame bolj nerazumljivi kot madžarščina
redface-1.gif


PS: kje bi se človek lahko malo bolj poučil (na enostaven način) o čem govorite, kakšna računalniška literatura ? Mi abrahamovci tega še nismo imeli v šoli
smile-1.gif
 

Fusion

Fizikalc
1. okt 2007
13.448
3
38
največ se boš naučil na googlu:))
Kar ti ni jasno, po googlaš;) Pa velik alter bereš:)))