Persiapkan Diri Anda Pengembang Android, Kompiler Android Baru Akan Datang
Diterbitkan: 2022-03-11Fragmentasi telah menjadi sumber frustrasi bagi pengembang dan konsumen Android selama bertahun-tahun; sekarang tampaknya segalanya akan menjadi lebih buruk sebelum menjadi lebih baik. Kompiler Android baru akan datang, sekali lagi, dan ada beberapa perkembangan penting di bagian depan perangkat keras, yang dapat memengaruhi pengembang.
Dengan keluarnya Dalvik, banyak orang mengharapkan runtime ART 64-bit baru Google yang mampu bertahan selama bertahun-tahun, yang mungkin akan terjadi, tetapi akan mendapatkan perbaikan besar dalam waktu dekat. Selain menawarkan dukungan untuk perangkat keras 64-bit, ART juga memperkenalkan kompilasi sebelumnya (AOT), sementara Dalvik adalah kompiler just-in-time (JIT). Kompiler baru yang Dioptimalkan akan membuka lebih banyak kemungkinan.
Adapun perkembangan perangkat keras, ada beberapa tren baru dan beberapa pemain baru dan lama di industri System-on-Chip smartphone, tetapi saya akan membahasnya nanti.
Pertama, mari kita lihat rencana runtime Google.
Dalvik, ART, ART dengan Kompilator Android baru
ART diperkenalkan dengan Android 5.0 tahun lalu, diluncurkan pada Nexus 9 dan Nexus 6, meskipun yang terakhir menggunakan CPU ARMv7-A 32-bit. Namun, alih-alih dirancang dari awal, ART sebenarnya merupakan evolusi dari Dalvik, yang menjauh dari JIT.
Dalvik mengkompilasi aplikasi dengan cepat, jika diperlukan. Ini, tentu saja, menambah lebih banyak beban CPU, meningkatkan waktu yang dibutuhkan untuk meluncurkan aplikasi, dan mengurangi masa pakai baterai. Karena ART mengkompilasi semuanya terlebih dahulu, saat penginstalan, ART tidak perlu membuang siklus jam untuk kompilasi setiap kali perangkat memulai aplikasi. Ini menghasilkan pengalaman pengguna yang lebih lancar, sementara pada saat yang sama mengurangi konsumsi daya dan meningkatkan masa pakai baterai.
Jadi apa yang akan dilakukan Google selanjutnya?
Sejak ART dikembangkan untuk memanfaatkan inti CPU ARMv8 64-bit baru, yang mulai online akhir tahun lalu, kompilator asli tampaknya telah menjadi langkah sementara. Artinya, time-to-market adalah prioritas, bukan efisiensi dan optimalisasi. Ini tidak berarti ART hanya pekerjaan terburu-buru yang gagal, karena bukan; runtime bekerja dengan baik dan telah dipuji oleh pengembang dan pengguna.
Namun, ada ruang untuk perbaikan, dan sekarang, tampaknya Google telah mengerjakan kompiler yang jauh lebih baik untuk sementara waktu, dan upaya tersebut mungkin mendahului rilis resmi ART. Perancang chip Inggris, ARM, baru-baru ini mengungkapkan beberapa fakta menarik tentang rencana runtime Google, menunjuk ke kompiler "Pengoptimalan" baru untuk ART. Kompiler baru menawarkan representasi perantara (IR) yang memungkinkan manipulasi struktur program sebelum pembuatan kode. Ini menggunakan satu tingkat representasi menengah, terstruktur sebagai grafik kaya informasi, yang memberikan informasi yang lebih baik ke bagian kompiler yang sadar arsitektur.
Kompiler "Cepat" menggunakan dua tingkat representasi perantara, dengan daftar instruksi dan variabel tertaut sederhana, tetapi kehilangan informasi penting selama pembuatan IR.
ARM mengklaim kompiler "Pengoptimalan" baru akan menawarkan sejumlah manfaat signifikan, menggambarkannya sebagai "lompatan besar ke depan" dalam hal teknologi kompiler. Kompiler akan menawarkan infrastruktur yang lebih baik untuk pengoptimalan di masa mendatang dan akan membantu meningkatkan kualitas kode.
Mengoptimalkan Dan Fitur Utama Kompilator Cepat
ARM menguraikan perbedaan antara dua kompiler dalam satu slide, mengklaim bahwa kompiler "Pengoptimalan" memungkinkan penggunaan register yang lebih efisien, lebih sedikit tumpahan ke tumpukan, dan membutuhkan lebih sedikit kode untuk dieksekusi.
Begini cara ARM mengatakannya:
Quick memiliki algoritma alokasi register yang sangat sederhana.
- Kurangnya informasi di IR
- Kecepatan kompilasi melebihi kompleksitas – asalnya sebagai JIT
- Performa buruk – banyak register tumpah ke tumpukan
Mengoptimalkan menggunakan Liner Scan Register Allocation.
- Kompromi yang sangat baik antara kinerja dan waktu
- Analisis keaktifan digunakan
- Meminimalkan register tumpah ke stack”
Meskipun kompiler baru masih dalam pengembangan, ARM berbagi beberapa angka kinerja; dalam pengujian CPU sintetis, kompiler menghasilkan peningkatan kinerja dalam kisaran 15 hingga 40 persen. Kecepatan kompilasi meningkat sekitar 8 persen. Namun, perusahaan memperingatkan bahwa angka "berubah setiap hari" saat kompiler baru matang.
Fokusnya adalah mencapai paritas yang hampir sama dengan kompiler "Cepat", yang saat ini memiliki keunggulan yang jelas dalam kecepatan kompilasi dan ukuran file.
Saat ini, sepertinya trade-off; compiler "Dioptimalkan" baru memberikan peningkatan kinerja yang mengesankan dalam aplikasi terikat CPU dan benchmark sintetis, tetapi menghasilkan file 10 persen lebih besar yang dikompilasi ~8 persen lebih lambat. Sementara dua angka terakhir tampaknya sebanding dengan peningkatan kinerja CPU, perlu diingat bahwa mereka akan berlaku untuk setiap aplikasi, terlepas dari beban CPU, menggunakan sumber daya yang lebih terbatas seperti RAM dan penyimpanan. Ingatlah bahwa kompilasi dalam 64 bit sudah memakan lebih banyak RAM daripada kompilasi dalam 32 bit.
Setiap pengurangan dalam kecepatan kompilasi dan waktu peluncuran juga menjadi sumber kekhawatiran, karena efeknya pada responsivitas perangkat dan pengalaman pengguna.
Perlombaan ARM Multicore
Sumber perhatian lain, terlepas dari runtime dan compiler, adalah popularitas prosesor multicore berdasarkan arsitektur ARMv7-A dan ARMv8. Menggila octa-core dimulai pada 2013 dan dengan cepat diberhentikan sebagai aksi pemasaran yang murah. Seorang eksekutif Qualcomm melangkah lebih jauh dengan menyebut prosesor octa-core "konyol" dan "bodoh", dengan mengatakan bahwa perusahaan tidak akan membuatnya karena para insinyurnya "tidak bodoh". Eksekutif yang sama juga menggambarkan dukungan 64-bit pada Apple A7 sebagai "gimmick".
Maju cepat dua tahun, dan saya memiliki smartphone 64-bit Qualcomm octa-core Cortex-A53 di meja saya, sementara eksekutif yang bersangkutan memiliki jabatan pekerjaan yang berbeda di plakat namanya.
Seolah-olah chip 8-core tidak cukup, tahun depan, kita akan melihat perangkat pertama berdasarkan prosesor aplikasi 10-core. Chip smartphone 10-inti pertama datang dari MediaTek dalam bentuk Helio X20, dan akan menampilkan tiga kelompok inti CPU, yang dijuluki large.Medium.TINY. Kedengarannya menyenangkan, dan itu menjadi lebih baik; kita akan segera mulai melihat perangkat Android pertama yang terjangkau berdasarkan prosesor Intel generasi baru.
Mari kita lihat perang inti ARM dan apa artinya bagi pengembang dan konsumen. Ada dua versi berbeda dari desain octa-core ARM SoC. Solusi kelas atas cenderung menggunakan tata letak besar.LITTLE ARM, menggunakan empat inti berdaya rendah dan empat inti besar untuk beban tinggi. Cara kedua untuk menempelkan delapan inti CPU ARM dalam sebuah chip adalah dengan menggunakan inti yang identik, atau inti yang identik dalam dua cluster dengan kecepatan clock yang berbeda.
Pembuat chip seluler terkemuka cenderung menggunakan kedua pendekatan, chip besar.LITTLE di perangkat kelas atas, bersama dengan octa-core reguler pada produk mainstream. Kedua pendekatan memiliki pro dan kontra, jadi mari kita lihat lebih dekat.
ARM big.LITTLE vs. Reguler Octa-Core:
Menggunakan dua kluster inti CPU yang berbeda memungkinkan kinerja dan efisiensi utas tunggal yang baik pada desain big.LITTLE. Trade-off adalah bahwa satu inti Cortex-A57 kira-kira berukuran empat inti Cortex-A53 kecil, dan itu kurang efisien.
Menggunakan delapan inti identik, atau delapan inti identik dalam dua cluster dengan jam berbeda, hemat biaya dan hemat daya. Namun, kinerja utas tunggal rendah.
Generasi desain big.LITTLE saat ini berdasarkan core ARMv8 tidak dapat menggunakan node manufaktur 28nm termurah. Bahkan pada 20nm, beberapa desain menunjukkan banyak pelambatan, yang membatasi kinerja berkelanjutannya. Octa-core standar berdasarkan core CPU Cortex-A53 dapat diimplementasikan secara efektif dalam 28nm, sehingga pembuat chip tidak perlu menggunakan node manufaktur mutakhir seperti FinFET 20nm atau 16/14nm, yang menghemat biaya.
Saya tidak ingin membuat Anda bosan dengan tren desain chip, tetapi beberapa dasar penting untuk diingat untuk prosesor seluler 2015 dan 2016:
- Sebagian besar chip akan menggunakan node manufaktur 28nm dan core Cortex-A53, yang membatasi kinerja single-thread.
- Inti Cortex-A57 besar diimplementasikan dalam dua desain utama dari Samsung dan Qualcomm, tetapi pembuat chip lain tampaknya melewatkannya dan menunggu inti Cortex-A72.
- Performa multithread akan menjadi semakin relevan selama 18 bulan ke depan.
- Peningkatan kinerja yang besar tidak dapat diharapkan hingga node 20nm dan FinFET menjadi jauh lebih murah (2016 dan seterusnya).
- Desain 10-inti juga akan datang.
Semua poin ini memiliki implikasi tertentu bagi pengembang Android. Selama pembuat chip terjebak pada proses 28nm untuk sebagian besar chip smartphone dan tablet, pengembang harus melakukan yang terbaik untuk memanfaatkan kinerja multi-utas dan fokus pada efisiensi.

ART dan kompiler baru harus meningkatkan kinerja dan efisiensi, tetapi mereka tidak akan dapat melanggar hukum fisika. Desain lama 32-bit tidak akan digunakan di banyak perangkat, dan bahkan perangkat termurah pun mulai dikirimkan dengan silikon 64-bit dan Android 5.0.
Meskipun Android 5.x masih memiliki basis pengguna yang relatif kecil, ia berkembang pesat dan akan berkembang lebih cepat sekarang karena ponsel seharga $100 hingga $150 hadir dengan chip 64-bit dan Android 5.0. Transisi ke Android 64-bit berjalan dengan baik.
Pertanyaan besarnya adalah kapan Dalvik akan mendapatkan compiler Optimized yang baru. Itu bisa diluncurkan akhir tahun ini, atau tahun depan dengan Android 6.0; masih terlalu dini untuk mengatakan dengan pasti.
Komputasi Heterogen Hadir di Ponsel
Ada hal lain yang perlu diingat; grafik seluler menjadi lebih kuat, terutama pada prosesor kelas atas, sehingga pembuat chip melakukan banyak pekerjaan di belakang layar untuk memanfaatkannya untuk penggunaan selain game dan decoding video. Komputasi heterogen telah ada selama beberapa tahun, memungkinkan PC untuk memindahkan tugas yang sangat paralel ke GPU.
Teknologi yang sama kini hadir untuk prosesor seluler, yang secara efektif menggabungkan inti CPU dan GPU. Pendekatan ini akan memungkinkan pengembang untuk membuka lebih banyak kinerja dengan menjalankan jenis program tertentu, yaitu beban OpenCL, ke GPU. Pengembang akan dapat fokus pada throughput, sementara prosesor akan secara otomatis menangani eksekusi paralel pada CPU dan GPU.
Tentu saja, ini tidak akan berfungsi di setiap aplikasi dan mengurangi beban di semua situasi, tetapi di beberapa ceruk, ini akan membuka lebih banyak kinerja dan membantu mengurangi konsumsi daya. Bergantung pada bebannya, SoC akan secara otomatis memutuskan cara memproses kode, menggunakan CPU untuk beberapa tugas sambil memindahkan tugas lainnya ke GPU.
Karena kita berurusan dengan aplikasi paralel, pendekatan ini diharapkan menghasilkan peningkatan terbesar dalam pemrosesan gambar. Misalnya, jika Anda perlu menggunakan resolusi super dan mengambil sampel ulang gambar, prosesnya dapat dibagi menjadi beberapa tahap di OpenCL. Jika proses melibatkan tahapan yang berbeda, seperti find_neighbor
, col_upsample
, row_upsample
, sub
dan blur2
, perangkat keras akan mendistribusikan beban ke seluruh inti CPU dan GPU dengan cara yang paling efisien, tergantung pada jenis inti yang akan menangani tugas yang diberikan dengan sebaik-baiknya cara. Ini tidak hanya akan meningkatkan kinerja dengan urutan besarnya, tetapi juga akan membantu mengurangi konsumsi daya.
Intel Kembali Dari Kematian, Dan Terlihat Bagus Untuk Mayat
Intel ketinggalan perahu dalam revolusi seluler dan secara praktis menyerahkan pasar kepada ARM dan mitra perangkat kerasnya. Namun, pembuat chip AS memiliki uang dan sumber daya untuk menghabiskan beberapa tahun di bangku cadangan dan membuat comeback.
Tahun lalu, Intel mensubsidi penjualan prosesor Atom untuk tablet, mengelola pengiriman hingga empat kali lipat dalam waktu kurang dari setahun. Sekarang mengalihkan perhatiannya pada segmen smartphone dengan prosesor SoFIA Atom x3 baru. Terus terang, saya tidak sepenuhnya yakin chip ini bahkan harus disebut sebagai prosesor Intel karena mereka tidak benar-benar diproduksi oleh raksasa chip. Prosesor SoFIA dirancang dengan anggaran terbatas, bekerja sama dengan pembuat chip China. Mereka diproduksi pada node 28nm, lambat, kecil dan murah.
Ini mungkin mengejutkan beberapa pengamat biasa, tetapi Intel tidak peduli dengan solusi seluler kelas atas; suku cadang SoFIA kelas bawah akan memberi daya pada ponsel Android yang dikomoditi dengan harga antara $50 dan $150. Desain pertama akan mulai dikirimkan pada akhir kuartal kedua tahun 2015, dan sebagian besar akan dirancang untuk pasar Asia, serta pasar negara berkembang di bagian lain dunia. Meskipun mungkin kita akan melihat beberapa di antaranya di Amerika Utara dan Eropa, fokus Intel tampaknya berada di China dan India.
Intel melakukan lindung nilai dengan prosesor Atom x5 dan x7, yang akan menggunakan arsitektur yang sama sekali baru ditambah dengan simpul manufaktur 14nm yang canggih dari perusahaan. Namun, produk ini ditujukan untuk tablet daripada smartphone, setidaknya untuk saat ini.
Pertanyaan besarnya, yang saya tidak punya jawaban, adalah berapa banyak kemenangan desain yang dapat diperoleh Intel. Analis terbagi dalam masalah ini dan perkiraan pengiriman terlihat seperti perkiraan pada saat ini.
Tahun lalu Intel membuktikan bahwa mereka bersedia menanggung kerugian dan menghabiskan miliaran dolar untuk mendapatkan pijakan di pasar tablet. Masih terlalu dini untuk mengatakan apakah akan menggunakan pendekatan yang sama dengan chip Atom baru, terutama produk smartphone SoFIA.
Sejauh ini saya hanya melihat satu produk aktual berdasarkan prosesor Intel SoFIA – tablet Cina seharga $69 dengan konektivitas 3G. Ini pada dasarnya adalah ponsel berukuran besar, jadi seperti yang dapat Anda bayangkan, ponsel SoFIA entry-level bisa berakhir dengan biaya yang jauh lebih murah. Ini pasti merupakan tawaran yang menggoda bagi pembuat smartphone dan tablet white-box, karena mereka dapat dengan mudah mendesain perangkat seharga $50-$100 dengan stiker "Intel Inside" di bagian belakang, yang, dari sudut pandang pemasaran, terdengar bagus.
Sayangnya, kami hanya bisa menebak berapa banyak ponsel dan tablet Intel yang akan dikirimkan selama sekitar satu tahun ke depan. Kita jelas berurusan dengan jutaan unit, puluhan juta, tetapi pertanyaannya adalah: berapa lusinan? Sebagian besar analis percaya Intel akan mengirimkan antara 20 dan 50 juta prosesor Atom x3 tahun ini, yang merupakan penurunan dalam ember mengingat total pengiriman smartphone diproyeksikan mencapai 1,2 miliar perangkat tahun ini. Namun, Intel kejam, memiliki uang untuk dibakar dan tidak harus menghasilkan keuntungan dari chip ini. Ini bisa menangkap 3 sampai 4 persen dari pasar pada akhir 2015, tetapi pangsa pasar harus terus tumbuh di 2016 dan seterusnya.
Apa Artinya Ini Bagi Pengembang Android?
Intel mendapat reputasi buruk di antara beberapa pengembang Android karena masalah kompatibilitas tertentu. Ini adalah masalah nyata beberapa tahun yang lalu karena perangkat kerasnya jauh berbeda dengan inti ARM standar yang digunakan di sebagian besar perangkat.
Untungnya, perusahaan membuat banyak kemajuan selama dua tahun; menawarkan program pelatihan yang ekstensif, dokumentasi yang komprehensif dan banyak lagi. Bahkan, sekilas daftar pekerjaan LinkedIn mengungkapkan Intel mempekerjakan lusinan pengembang Android, dengan beberapa lowongan baru dibuka setiap bulan.
Jadi semuanya berjalan dengan baik, kan? Yah, itu tergantung…
Minggu lalu saya memiliki kesempatan untuk menguji ponsel Asus baru berdasarkan Intel Atom Z3560, dan saya harus mengatakan bahwa saya senang dengan hasilnya; ini adalah platform perangkat keras yang bagus yang mampu menangani RAM 4GB pada perangkat anggaran. Asus berpikir dapat menjual 30 juta unit tahun ini, yang benar-benar mengesankan mengingat pangsa pasar smartphone Intel.
Satu-satunya masalah adalah bahwa beberapa aplikasi Android masih berperilaku tidak semestinya pada perangkat keras Intel . Biasanya, itu tidak terlalu besar, tetapi Anda mendapatkan beberapa crash aneh, skor benchmark yang tidak realistis, dan kebiasaan kompatibilitas lainnya. Berita buruknya adalah pengembang tidak dapat berbuat banyak untuk mengatasi masalah terkait perangkat keras, meskipun mendapatkan beberapa perangkat berbasis Intel untuk pengujian akan menjadi awal yang baik. Kabar baiknya: Intel melakukan yang terbaik untuk menyelesaikan semuanya, jadi Anda tidak perlu melakukannya.
Adapun perangkat keras ARM, kita akan melihat lebih banyak inti CPU di lebih banyak kluster. Performa utas tunggal akan tetap terbatas pada banyak perangkat utama, yaitu ponsel murah berdasarkan SoC Cortex-A53 quad-core dan octa-core. Terlalu dini untuk mengatakan apakah kompiler Google/ARM baru akan dapat meningkatkan kinerja pada perangkat tersebut. Mereka mungkin akan melakukannya, tetapi seberapa banyak? Komputasi heterogen adalah tren lain yang harus diwaspadai tahun depan.
Sebagai penutup, inilah yang diharapkan pengembang Android dalam hal perangkat lunak dan perangkat keras pada akhir 2015 dan 2016:
- Lebih banyak prosesor Intel x86 di segmen pasar entry-level dan mainstream.
- Pangsa pasar Intel akan diabaikan pada tahun 2015, tetapi dapat tumbuh pada tahun 2016 dan seterusnya.
- Lebih banyak desain multicore ARMv8 datang online.
- Kompiler ART "Dioptimalkan" baru.
- Komputasi heterogen akan datang, tetapi itu akan memakan waktu cukup lama.
- Transisi ke node manufaktur FinFET dan Cortex-A72 akan membuka lebih banyak kinerja dan fitur.