Fragmentacija je izvor frustracije za Android programeri i potrošači godinama; sada se čini da će se stvari pogoršati prije nego što postanu bolje. Ponovno dolazi novi Android kompajler, a na području hardvera ima nekih značajnih događaja, koji bi mogli utjecati na programere.
S Dalvikom izvan slike, mnogi su očekivali da će se Googleovo novo 64-bitno ART vrijeme izvođenja zadržati godinama, što će vjerojatno i biti, no u bliskoj će budućnosti dobiti veliku reviziju. Osim što je ponudio podršku za 64-bitni hardver, ART je također uveo i pre-vremensku (AOT) kompilaciju, dok je Dalvik bio pravodobni (JIT) kompajler. Novi optimizirani kompajler otključat će još više mogućnosti.
Što se tiče razvoja hardvera, postoje neki novi trendovi i neki novi i stari igrači u industriji pametnih telefona System-on-Chip, ali o tome ću doći kasnije.
Prvo, pogledajmo Googleove planove izvođenja.
ART je predstavljen s Androidom 5.0 prošle godine, lansiran na Nexus 9 i Nexus 6, iako je potonji koristio 32-bitni ARMv7-A CPU. Međutim, umjesto da je dizajniran od nule, ART je zapravo evolucija Dalvika, koji se odmaknuo od JIT-a.
Dalvik po potrebi kompajlira aplikacije u hodu. To, očito, dodaje više opterećenja procesora, povećava vrijeme potrebno za pokretanje aplikacija i utječe na životni vijek baterije. Budući da ART sve prikuplja prije vremena, prilikom instalacije ne mora trošiti taktove na kompilaciju svaki put kad uređaj pokrene aplikaciju. Rezultat je glatko korisničko iskustvo, istovremeno smanjujući potrošnju energije i produžujući vijek trajanja baterije.
Pa što će Google sljedeće raditi?
Budući da je ART razvijen da iskoristi nove, 64-bitne ARMv8 CPU jezgre, koje su počele izlaziti na mrežu krajem prošle godine, čini se da je originalni kompajler bio zaustavna mjera. To je značilo da je vrijeme stavljanja na tržište prioritet, a ne učinkovitost i optimizacija. To ne znači da je ART bio samo mučni posao, jer nije; runtime funkcionira dobro i pohvalili su ga programeri i korisnici.
Međutim, ima prostora za poboljšanje, a sada, čini se da Google već neko vrijeme radi na znatno poboljšanom kompajleru, a napor je vjerojatno pre službenog izdanja ART-a. Britanski dizajner čipova, ARM, nedavno je otkrio nekoliko zanimljivih činjenica o Googleovim planovima izvođenja, ukazujući na novi kompajler 'Optimizacija' za ART. Novi kompajler nudi posredne prikaze (IR) koji omogućuju manipulaciju programskom strukturom prije generiranja koda. Koristi jednu razinu posredne reprezentacije, strukturiranu kao informacijski bogat graf, koji pruža bolje informacije dijelovima kompajlera koji su svjesni arhitekture.
Kompajler 'Quick' koristi dvije razine posrednog predstavljanja, s jednostavnim povezanim popisima uputa i varijabli, ali gubi važne informacije tijekom stvaranja IR-a.
ARM tvrdi da će novi kompajler 'Optimizacija' ponuditi niz značajnih prednosti, opisujući ga kao 'veliki skok naprijed' u smislu tehnologije kompajlera. Prevoditelj će ponuditi bolju infrastrukturu za buduće optimizacije i pomoći će u poboljšanju kvalitete koda.
ARM je istaknuo razliku između dva kompajlera u jednom slajdu, tvrdeći da kompajler 'Optimizacija' omogućuje učinkovitiju upotrebu registra, manje prelijevanja u hrpu i treba manje koda za izvršavanje.
Evo kako ARM kaže:
Brz ima vrlo jednostavni algoritam raspodjele registara.
Optimiziranje koristi dodjelu registra registra skenera.
Iako je novi kompajler još uvijek u razvoju, ARM je podijelio nekoliko podataka o izvedbi; u sintetičkim CPU testovima, kompajler daje povećanje performansi u rasponu od 15 do 40 posto. Brzina sastavljanja povećava se za oko 8 posto. Međutim, tvrtka upozorava da se brojke 'mijenjaju svakodnevno' kako novi kompajler sazrijeva.
Fokus je na postizanju bliskog pariteta s 'brzim' kompajlerom, koji trenutno ima očitu prednost u brzini kompilacije i veličini datoteke.
Trenutno to izgleda kao trgovina; novi 'Optimizirani' kompajler donosi impresivna poboljšanja performansi u aplikacijama vezanim uz CPU i sintetičkim mjerilima, ali rezultira 10 posto većim datotekama koje se ~ 8 posto sporije kompajliraju. Iako se čini da su posljednje dvije brojke nadmašene povećanjem performansi CPU-a, imajte na umu da će se one primijeniti na svaku aplikaciju, bez obzira na opterećenje CPU-a, trošeći još ograničenije resurse poput RAM-a i pohrane. Imajte na umu da kompajliranje u 64 bita već zauzima više RAM-a od sastavljanja u 32 bita.
Svako smanjenje brzine kompilacije i vremena pokretanja također je razlog za zabrinutost zbog učinka na odziv uređaja i korisničko iskustvo.
Drugi izvor zabrinutosti, bez obzira na vrijeme izvođenja i kompajler, je popularnost višejezgrenih procesora zasnovanih na ARMv7-A i ARMv8 arhitekturama. Osmerojezgrena pomama započela je 2013. godine i brzo je odbačena kao jeftina marketinška poteza. Izvršni direktor Qualcomma otišao je tako daleko da je nazvao osmojezgrene procesore 'Blesavo' i 'glupo' , rekavši da tvrtka ne bi napravila nijednu jer njezini inženjeri 'nisu glupi'. Isti je izvršitelj također opisao 64-bitnu podršku za Apple A7 kao 'trik'.
Premotajte unaprijed dvije godine, a na radnom stolu imam 64-bitni Qualcommov osmerojezgreni pametni telefon Cortex-A53, dok dotični izvršni direktor ima različit naziv radnog mjesta na ploči s njegovim imenom.
Kao da čipovi s 8 jezgri nisu dovoljni, sljedeće ćemo godine vidjeti prve uređaje koji se temelje na 10-jezgrenim procesorima aplikacija. Prvi čip za pametne telefone s 10 jezgri dolazi iz MediaTeka u obliku Helio X20 , a sadržavat će tri klastera CPU jezgri, nazvanih ogroman.Srednji.TINI. Zvuči zabavno i postaje bolje; uskoro ćemo početi vidjeti prve pristupačne Android uređaje temeljene na novoj generaciji Intelovih procesora.
Pogledajmo ARM core ratove i što oni znače za programere i potrošače. Postoje dvije različite verzije ARM SoC osmerojezgrenog dizajna. Vrhunska rješenja obično koriste ARM-ove velik.MALO raspored , koristeći četiri jezgre male snage i četiri velike jezgre za veliko opterećenje. Drugi način lijepljenja osam ARM CPU jezgri u čip je upotreba identičnih jezgri ili identičnih jezgri u dva klastera s različitim taktovima.
Vodeći proizvođači mobilnih čipova imaju tendenciju da koriste oba pristupa, bigLITTLE čipove u vrhunskim uređajima, zajedno s uobičajenim osmojezgrenim jezgrama na glavnim proizvodima. Oba pristupa imaju svoje dobre i loše strane, pa pogledajmo ih bliže.
Korištenje dva klastera različitih procesorskih jezgri omogućuje dobre performanse i učinkovitost jedne niti na big.LITTLE dizajnu. Kompromis je u tome što je jedna jezgra Cortex-A57 otprilike veličine četiri male Cortex-A53 jezgre i manje je učinkovita.
Korištenje osam identičnih jezgri ili osam identičnih jezgri u dva klastera s različitim taktovima isplativo je i učinkovito. Međutim, izvedba s jednom niti je niska.
Trenutna generacija big.LITTLE dizajna temeljenih na ARMv8 jezgrama ne može koristiti najjeftiniji proizvodni čvor od 28 nm. Čak i na 20nm, neki dizajni pokazuju puno prigušivanja, što ograničava njihove trajne performanse. Standardne osmerojezgrene jezgre zasnovane na Cortex-A53 CPU jezgrama mogu se učinkovito implementirati u 28nm, tako da proizvođači čipova ne moraju koristiti vrhunske proizvodne čvorove poput 20nm ili 16 / 14nm FinFET, što smanjuje troškove.
Ne želim vas dosađivati s trendovima dizajna čipova, ali nekoliko osnova važno je imati na umu za mobilne procesore za 2015. i 2016. godinu:
Sve ove točke imaju određene implikacije za programere Androida. Sve dok proizvođači čipova zaglave na 28nm procesima za većinu čipova za pametne telefone i tablete, programeri će se morati potruditi da iskoriste performanse s više niti i usredotoče se na učinkovitost.
ART i novi kompajleri trebali bi mnogo doprinijeti poboljšanju performansi i učinkovitosti, ali neće moći kršiti zakone fizike. Stari, 32-bitni dizajni neće se koristiti na mnogim uređajima koji se kreću naprijed, a čak i najjeftiniji uređaji počinju se isporučivati sa 64-bitnim silicijem i Androidom 5.0.
Iako Android 5.x još uvijek ima relativno malu korisničku bazu, on brzo raste i širit će se još brže sada kad telefoni od 100 do 150 dolara stižu s 64-bitnim čipovima i Androidom 5.0. Prijelaz na 64-bitni Android ide dobro.
Veliko je pitanje kada će Dalvik dobiti novi optimizirani kompajler. Mogao bi se pokrenuti kasnije ove godine ili sljedeće godine s Android 6.0 ; još je prerano reći sa sigurnošću.
Imajte na umu još jednu stvar; mobilna grafika postaje sve moćnija, posebno na vrhunskim procesorima, pa proizvođači čipova rade puno posla iza kulisa kako bi ih iskoristili za druge svrhe, osim za dekodiranje igara i video zapisa. Heterogeno računanje postoji već nekoliko godina, omogućujući osobnim računalima da iskrcaju vrlo paralelizirane zadatke na GPU.
Ista tehnologija sada dolazi i na mobilne procesore, učinkovito spajajući CPU i GPU jezgre. Pristup će omogućiti programerima da otključaju više performansi izvršavanjem određenih vrsta programa, naime OpenCL učitavanja, na GPU. Programeri će se moći usredotočiti na protok, dok će procesori automatski upravljati paralelnim izvršavanjem na CPU-ima i GPU-ima.
Naravno, ovo neće raditi u svakoj aplikaciji i smanjiti opterećenje u svim situacijama, ali u nekim bi nišama trebao otključati više performansi i pomoći u smanjenju potrošnje energije. Ovisno o opterećenju, SoC će automatski odlučiti kako obraditi kôd, koristeći CPU za neke zadatke, dok druge prebacuje na GPU.
Budući da se bavimo paralelnim aplikacijama, očekuje se da će pristup donijeti najveća poboljšanja u obradi slika. Na primjer, ako trebate koristiti super-rezoluciju i ponovno uzorkovati slike, postupak bi se mogao podijeliti u različite faze u OpenCL-u. Ako postupak uključuje različite faze, poput find_neighbor
, col_upsample
, row_upsample
, sub
i blur2
, hardver će na najučinkovitiji način raspodijeliti opterećenje na CPU i GPU jezgri, ovisno o tome koja će se jezgra na najbolji način nositi s zadatkom. To ne samo da će poboljšati performanse za red veličine, već će također pomoći u smanjenju potrošnje energije.
Intel je promašio brod u mobilnoj revoluciji i praktički ustupio tržište ARM-u i njegovim hardverskim partnerima. Međutim, američki proizvođač čipova ima novca i resursa da provede nekoliko godina na klupi i napravi povratak.
Prošle je godine Intel subvencionirao prodaju svojih Atom procesora za tablete, uspio učetverostručiti isporuke za manje od godinu dana. Sada svoju novu pozornost usmjerava na segment pametnih telefona SoFIA Atom x3 procesori . Iskreno, nisam posve siguran da bi se ove čipove uopće trebalo nazivati Intelovim procesorima jer ih zapravo ne proizvodi čip div. SoFIA procesori dizajnirani su s ograničenim proračunom, u suradnji s kineskim proizvođačima čipova. Proizvedeni su na 28nm čvoru, spori su, sićušni i jeftini.
To može iznenaditi neke slučajne promatrače, ali Intel se ne zamara vrhunskim mobilnim rješenjima; jeftini SoFIA dijelovi napajat će komercijalne Android telefone po cijeni između 50 i 150 USD. Prvi projekti trebali bi se početi isporučivati do kraja drugog tromjesečja 2015, a većina će ih biti dizajnirana za azijska tržišta, kao i za tržišta u razvoju u drugim dijelovima svijeta. Iako je moguće da ćemo neke od njih vidjeti u Sjevernoj Americi i Europi, čini se da je Intelov fokus na Kini i Indiji.
Intel štiti svoje oklade Atom x5 i x7 procesori , koji će koristiti potpuno novu arhitekturu, plus vrhunski proizvodni čvor tvrtke 14nm. Međutim, ovi su proizvodi barem zasad namijenjeni tabletima, a ne pametnim telefonima.
Veliko pitanje, na koje nemam odgovor, jest koliko dizajnerskih pobjeda Intel može dobiti ispod svog pojasa. Analitičari su podijeljeni po tom pitanju i predviđanja isporuke u ovom trenutku izgledaju poput pretpostavki.
Prošle je godine Intel dokazao da je spreman pretrpjeti gubitke i sagorjeti milijarde dolara kako bi se učvrstio na tržištu tableta. Još je prerano reći hoće li koristiti isti pristup s novim Atom čipovima, posebno pametnim SoFIA proizvodima.
Do sada sam vidio samo jedan stvarni proizvod zasnovan na Intel SoFIA procesoru - kineski tablet od 69 dolara s 3G vezom. U biti je to prevelik telefon, pa kao što možete zamisliti, SoFIA početni telefon mogao bi na kraju koštati puno manje. To mora biti primamljiv prijedlog za proizvođače pametnih telefona i tableta s bijelom kutijom, jer bi s lakoćom mogli dizajnirati uređaje od 50 do 100 dolara s naljepnicom 'Intel Inside' na poleđini, što iz marketinške perspektive zvuči dobro.
Nažalost, možemo samo nagađati koliko će Intelovih telefona i tableta biti isporučeno tijekom sljedeće godine ili nešto više. Očito imamo posla s milijunima jedinica, desecima milijuna, ali pitanje je: koliko desetaka? Većina analitičara vjeruje da će Intel ove godine isporučiti između 20 i 50 milijuna Atom x3 procesora, što je pad u skupini s obzirom da se predviđa da će ukupna isporuka pametnih telefona ove godine doseći 1,2 milijarde uređaja. Međutim, Intel je bezobziran, ima novac za sagorijevanje i ne mora zarađivati ni na jednom od ovih čipova. Mogao bi zauzeti 3 do 4 posto tržišta do kraja 2015. godine, ali tržišni udio trebao bi rasti u 2016. i kasnije.
Intel je među nekima dobio lošu reputaciju Android programeri zbog određenih problema s kompatibilnošću. To je bio stvarni problem prije nekoliko godina jer se hardver uvelike razlikovao od standardnih ARM jezgri koje se koriste u većini uređaja.
Srećom, tijekom dvije godine tvrtka je puno napredovala; nudi opsežne programe obuke, sveobuhvatnu dokumentaciju i još mnogo toga. Zapravo, brz pogled na popise poslova LinkedIn-a otkriva da Intel zapošljava desetke programera za Android, a nekoliko novih radnih mjesta otvara se svaki mjesec.
Dakle, sve ide dobro, zar ne? Pa, ovisi ...
Prošli tjedan imao sam priliku testirati novi Asusov telefon temeljen na Intelovom Atom Z3560 i moram reći da sam bio zadovoljan rezultatima; to je dobra hardverska platforma sposobna za adresiranje 4 GB RAM-a na proračunskom uređaju. Asus misli da ove godine može prodati 30 milijuna primjeraka, što je uistinu impresivno s obzirom na Intelov tržišni udio na pametnim telefonima.
Jedini problem je što neke Android aplikacije još uvijek se loše ponaša na Intelovom hardveru . Obično to nije ništa preveliko, ali dobivate neke čudne padove, nerealne ocjene referentnih vrijednosti i druge hirove u vezi s kompatibilnošću. Loša vijest je da programeri ne mogu učiniti puno na rješavanju problema povezanih s hardverom, iako bi nabava nekih uređaja temeljenih na Intelu bio dobar početak. Dobra vijest: Intel daje sve od sebe da sve sredi, tako da vi ne morate.
Što se tiče ARM hardvera, vidjet ćemo više CPU jezgri u još više klastera. Izvedba s jednom niti ostat će ograničena na mnogim glavnim uređajima, odnosno na jeftinim telefonima koji se temelje na četverojezgrenim i osmerojezgrenim Cortex-A53 SoC-ima. Prerano je reći hoće li novi Google / ARM kompajleri moći poboljšati performanse na takvim uređajima. Vjerojatno hoće, ali za koliko? Heterogeno računanje još je jedan trend na koji treba paziti sljedeće godine.
Zaključujući, evo što bi programeri Androida trebali očekivati u pogledu softvera i hardvera krajem 2015. i 2016. godine: