2 poin oleh GN⁺ 2023-11-02 | 1 komentar | Bagikan ke WhatsApp
  • Google menambahkan dukungan RISC-V ke AOSP untuk memperluas Android ke arsitektur CPU baru, dan sedang memperluasnya dari tahap eksperimen ke kolaborasi ekosistem
  • Dukungan awal berfokus pada penyelarasan set fitur yang diperlukan untuk implementasi performa yang diharapkan Android, dengan profil rva22 serta ekstensi vector dan vector crypto sebagai acuan
  • Saat ini Android untuk RISC-V sudah dapat dibangun, diuji, dan dijalankan dengan Cuttlefish, tetapi backend ART dan optimasi compiler belum berada pada tahap selesai
  • Pada akhir 2023, NDK ABI diperkirakan akan difinalisasi dan build canary CI publik akan tersedia; pada 2024 direncanakan emulator publik untuk pengujian berbagai form factor
  • Karena porting Android saja tidak cukup, Google juga menyiapkan lingkungan pengembangan aplikasi bersama RISE Project, RISC-V International, serta komunitas toolchain dan library pendukung

Dukungan RISC-V yang Hadir di Android

  • Android adalah sistem operasi open source yang mendukung berbagai jenis perangkat dan arsitektur CPU, dan kini menambahkan RISC-V sebagai target platform baru
  • RISC-V adalah arsitektur set instruksi (ISA) gratis dan terbuka, sebuah pendekatan untuk membawa cara kolaborasi lintas industri dalam software open source ke ekosistem hardware
  • Setelah dibuat di UC Berkeley 10 tahun lalu, RISC-V cepat diadopsi di ranah embedded dan microcontroller, dan belakangan meluas ke accelerator, server, dan komputasi mobile

Dari Penerimaan Patch ke Tahap Pematangan Dukungan

  • Pada RISC-V Summit November 2022, Google mengumumkan bahwa mereka mulai menerima patch RISC-V untuk Android
  • Saat ini, Google telah bergerak melampaui sekadar menerima patch menuju tahap pematangan dukungan RISC-V di Android
  • Karena RISC-V adalah ISA modular dengan banyak ekstensi opsional, set fitur wajib awal perlu ditentukan agar dapat menghasilkan performa tinggi yang diharapkan di Android
    • Acuannya mencakup profil rva22
    • Ekstensi vector dan vector crypto juga termasuk

Lingkungan AOSP yang Dapat Dibangun dan Dijalankan Secara Lokal

  • Dukungan Android untuk RISC-V dapat dibangun, diuji, dan dijalankan di mesin lokal dengan Cuttlefish Virtual Device, seperti target platform AOSP lainnya
  • Kode terkait dapat dilihat di google/android-riscv64
  • Contoh menjalankannya adalah sebagai berikut
$ lunch aosp_cf_riscv64_phone-userdebug
$ m -j
$ launch_cvd -cpus=8 -memory_mb=8192
  • Perangkat yang sedang berjalan dapat dihubungkan dan digunakan secara interaktif dengan vncviewer

Tugas Optimasi yang Masih Tersisa

  • Patch saat ini memungkinkan pengalaman dasar Android Open Source Project untuk dibangun dan dijalankan, tetapi belum sepenuhnya teroptimasi
  • Pengerjaan backend optimasi ART pada Android Runtime masih berlangsung
  • AOSP, proyek eksternal, dan compiler juga belum mencapai tingkat menghasilkan kode yang sepenuhnya teroptimasi dan ringkas sambil memanfaatkan ekstensi terbaru yang telah diratifikasi
  • Tujuan pada tahap ini lebih dekat untuk memungkinkan eksperimen dan kolaborasi daripada menyediakan lingkungan produk yang sudah final

Pengujian Developer dan Roadmap Emulator

  • Pada akhir 2023, NDK ABI diperkirakan akan difinalisasi
  • Build canary juga akan segera tersedia di CI publik Android
  • Google berencana mendukung eksekusi RISC-V di x86-64 dan ARM64 agar aplikasi Android riscv64 dapat diuji dengan lebih mudah di mesin host
  • Pada 2024, direncanakan emulator publik dengan set fitur lengkap untuk menguji aplikasi pada berbagai form factor perangkat
  • Menurut pengumuman kolaborasi dengan Qualcomm, form factor pertama diperkirakan adalah wearable

Kolaborasi Ekosistem dan RISE Project

  • Porting sistem operasi Android itu sendiri saja tidak cukup; kesiapan ekosistem software di sekitarnya juga diperlukan
  • Google sedang berkolaborasi dengan komunitas dan RISE
  • RISE Project dibuat untuk mempercepat ketersediaan software pada core prosesor RISC-V berperforma tinggi dan hemat daya yang menjalankan sistem operasi tingkat tinggi
  • Cakupannya tidak hanya Android, tetapi juga Linux dan sistem operasi lainnya
  • Domain aplikasi yang ditargetkan juga mencakup komputasi performa tinggi
  • Perusahaan yang berpartisipasi adalah Andes, Google, Intel, Imagination Technologies, MediaTek, Nvidia, Qualcomm Technologies, Red Hat, Rivos, Samsung, SiFive, T-Head, dan Ventana

Standardisasi dan Jalur Kontribusi

  • Google terus memperluas investasinya di RISC-V International, melampaui keanggotaan Premium yang sudah ada dan partisipasi di dewan direksi
  • Berbagai kontributor memegang peran kunci di horizontal committee, working group, dan technical committee, serta berpartisipasi dalam perancangan dan ratifikasi spesifikasi
  • Dukungan RISC-V di Android bergantung pada kontribusi yang luas, mulai dari LLVM toolchain hingga library pendukung dasar
  • Resource utama untuk kontribusi dan pengujian adalah sebagai berikut
    • google/android-riscv64: menyediakan cara membangun dan menguji dukungan RISC-V di Android, issue yang diketahui, serta peluang kontribusi ke AOSP, toolchain, dan library pendukung
    • RISC-V Android SIG: mailing list untuk memeriksa perkembangan serta memberikan usulan dan feedback
  • Google sedang mencari cara agar developer Android yang menulis kode native dapat menargetkan platform baru dengan mudah, sebagaimana developer Java dan Kotlin menargetkan platform baru

1 komentar

 
GN⁺ 2023-11-02
Komentar Hacker News
  • Apakah mereka benar-benar mengharapkan para developer untuk bersiap? Pendekatannya keliru. Seperti yang dilakukan Apple saat transisi M1, idealnya pekerjaan dasar harus mendekati nol, lalu optimasi opsional bisa dilakukan setelahnya
    Tinggal ingat saat Google pernah meminta aplikasi Android diuji di x86, lalu kemudian juga di MIPS. Pada akhirnya tidak terjadi apa-apa, dan para developer tidak akan membuang waktunya

    • Pekerjaannya nol? Ingatan orang kadang cepat sekali memudar
      Apple menyewakan sistem DTK seharga 500 dolar agar developer bisa mencoba perangkat keras ARM dan mem-porting aplikasi mereka. Jelas itu jauh dari nol pekerjaan, perangkat kerasnya juga harus dikembalikan, dan pada awalnya bahkan tidak ada kredit 500 dolar untuk dipakai membeli produk rilis. Baru diperbaiki setelah muncul penolakan yang sudah bisa diperkirakan
      Sebaliknya, Google menyediakan emulator perangkat lunak, jadi jauh lebih mudah ditangani dan tidak perlu logistik perangkat yang rumit. Yang benar-benar perlu melakukan persiapan adalah orang yang membuat aplikasi NDK atau yang mendukung perangkat keras RISC-V
      Aplikasi Java/Kotlin tidak perlu di-porting, jadi menurut saya ini nyaris nol pekerjaan
    • Build x86 untuk aplikasi dan library Android sangat umum karena itu target paling lazim di emulator
      MIPS tampaknya tidak pernah benar-benar didorong keras oleh Google, lebih sekadar ada saja
      Lagi pula, artikel ini lebih ditujukan ke produsen perangkat daripada developer aplikasi, karena membahas build AOSP dan patch yang masih menunggu. Ini bukan tulisan yang meminta developer aplikasi melakukan sesuatu, malah di bagian akhir tertulis “kami akan melihat cara agar developer Android native dapat semudah developer Java dan Kotlin saat menargetkan platform baru”
    • MIPS di Android pada dasarnya mati setelah Imagination Technologies diakuisisi pada 2013. Tanpa SoC baru atau ponsel baru, Google juga tidak banyak yang bisa dilakukan
      x86 masih banyak dipakai berkat Chromebook. Jika tidak memakai NDK, tidak ada hal yang perlu dilakukan developer karena target baru ini
    • Dalam arti umum, sepertinya mereka tidak mengharapkan developer untuk bersiap. Judulnya juga “hal-hal yang perlu diketahui untuk bersiap”, jadi lebih dekat ke memberi informasi dan saran jika memang ingin bersiap. Mau diikuti atau tidak, itu pilihan
      “you” di sini mengikuti ungkapan pada judul, bukan merujuk ke orang tertentu
    • Karena tidak pernah ada perangkat bermakna yang dirilis untuk arsitektur itu
  • Apakah ini berarti ekstensi C yang sangat ditentang Qualcomm akan dibutuhkan?
    Untuk subthread terkait, lihat https://news.ycombinator.com/item?id=37996820
    Dokumen terbaru Qualcomm adalah https://lists.riscv.org/g/tech-profiles/attachment/400/0/AOS..., dan mereka mengklaim bahwa ekstensi Zics usulan mereka yang “membuat RISC-V agak mirip aarch64” serta long jump 32-bit menghasilkan kepadatan kode yang lebih baik daripada RV64GC, tanpa kekurangan ekstensi C yang selama ini terus mereka persoalkan

    • Tidak paham kenapa ini di-downvote. Pertanyaan ini memang masih jadi isu yang sedang berlangsung
      Jika Qualcomm memutuskan membuat RISC-V Snapdragon tanpa ekstensi C, sulit membayangkan bagaimana aplikasi Android NDK yang memakai ekstensi itu akan berjalan. Kecuali ada semacam trap-and-emulate atau mekanisme serupa, performanya pasti akan sangat lambat
    • Qualcomm tampaknya ada benarnya sampai taraf tertentu, tetapi juga terlihat punya motif ingin lebih banyak mendaur ulang teknologi ARM
      Jika Google mewajibkan RV64GC atau RV64G_Zics, mungkin ini akan jadi penentunya
      Namun menghapus atau mengubah instruksi C bukanlah pilihan setelah benar-benar didistribusikan, dan karena saat ini kebanyakan masih tahap pengujian emulator, mereka mungkin belum terlalu peduli
    • Ini terlihat cukup mirip dengan set instruksi Thumb milik ARM
      Pertanyaan sebenarnya adalah: kenapa
      Referensi: https://www.quora.com/Why-was-the-ARM-Thumb-instruction-set-...
  • Sedikit menyimpang, tetapi saat mengetahui emulator AOSP yang baru, entah kenapa saya mengira untuk memakai emulator Cuttlefish alih-alih Goldfish di AOSP, saya harus menjalankan acloud. Namun acloud menolak berjalan jika bukan Ubuntu
    Saya bahkan sempat mencoba hack LD_PRELOAD yang mengubah output fungsi uname, tetapi setelah itu malah mencoba menjalankan dpkg. Saya memakai NixOS
    Emulator lama benar-benar merepotkan untuk dijalankan dengan baik, dan emulator baru punya banyak kelebihan
    Tetapi anehnya saya sama sekali tidak tahu bahwa ternyata cukup menjalankan launch_cvd secara langsung

  • Semoga “Android for RISC-V” lebih berhasil daripada “Android for x86” yang sepenuhnya bencana. Saya masih punya tablet Android x86 Lenovo
    Meski begitu, membaca artikel ini juga tidak terlalu menumbuhkan kepercayaan. Harapannya tinggi, tapi ekspektasinya rendah

    • Membanjirnya perangkat konsumen murah yang memakai implementasi RISC-V sebagai prosesor utama tampaknya tak terelakkan
      Justru saya lebih khawatir dukungan ARM yang akan mandek
    • Chromebook saat ini kebanyakan x86 dan menjalankan aplikasi Android. Emulator Android juga begitu
      Tidak semua orang adalah warga AS kaya yang punya ARM MacBook
  • Beberapa tahun lalu Android cukup banyak dipakai di ranah embedded yang membutuhkan layar sentuh grafis, bukan ponsel atau tablet, tetapi sekarang hampir sepenuhnya untuk ponsel dan sampai taraf tertentu tablet
    Alasannya, tidak seperti produsen ponsel dan tablet, perusahaan kecil tidak mampu mengikuti perubahan-perubahan baru Android yang sangat kompleks, jadi mereka makin banyak meninggalkannya

    • Jadi penasaran mereka beralih memakai apa
    • DJI tampaknya masih memakai Android di controllernya
  • Saya kurang paham situasinya, tetapi apakah ada ponsel utama yang mengimplementasikan RISC-V? Dan apakah ini memerlukan perubahan di seluruh stack? Rasanya ini bukan sekadar mengganti sistem operasi

    • Belum ada, tetapi peluncurannya semakin dekat
      Saya kurang yakin batas antara “stack” dan “sistem operasi” itu diletakkan di mana. Bisa dijelaskan sedikit lebih rinci?
    • Belum ada. Namun Qualcomm sedang menyiapkan prosesor smartwatch RISC-V. Jadi ini bukan hal sepele
      Saya belum mencoba port AOSP untuk LiCheePi 4A. Sepertinya saya perlu menjalankannya sekali untuk melihat apakah memang langsung berfungsi
      Daripada mem-bootstrap seluruh toolchain yang diperlukan untuk menjalankan PolyMC, lebih mudah mengunduh Minecraft dari Play Store dan mencobanya
  • Di antara hal-hal yang bisa dipasang di RISC-V, Google Android adalah pilihan paling akhir

    • Saya penasaran apakah jika RISC-V mulai sering dipakai pada CPU mobile, itu akan berdampak positif bagi ekosistem, atau justru perusahaan besar akan mendorong RISC-V ke use case yang lebih korporat sehingga menjadi kurang ramah bagi pengembang hobi
    • Meski begitu, bisa saja saya membeli perangkat RISC-V yang sudah terpasang Android lalu menghapusnya
  • Menjalankan Android adalah pilihan bodoh jika bisa dihindari, dan terlebih lagi jika saat berganti arsitektur ada kesempatan untuk beralih ke Linux murni
    Masalahnya adalah urusan perbankan. Setidaknya di Swedia, orang masih bergantung pada Mobile BankID. Misalnya, itu diperlukan bahkan untuk pembelian online di atas 20 dolar, dan hanya berjalan di iOS dan Android

    • Apakah ada cara yang realistis untuk menjalankan sistem operasi non-Android di ponsel sambil tetap mendapatkan efisiensi daya, dukungan aplikasi Android dengan multitouch dan akselerasi GPU, dan sebagainya?
      Misalnya, solusi siap pakai untuk menjalankan Android secara efisien di KVM, atau pendekatan yang menyediakan fitur kernel Android dan server RPC di user space
      Kalau tidak ada, maka tidak ada pilihan selain menjalankan Android demi akses ke aplikasi mobile, dan itu nyaris wajib
    • Di Denmark ada MitID untuk situs bank dan pemerintah. Kadang juga dipakai untuk otorisasi pembelian
      Jika Anda tidak punya smartphone atau tidak ingin menggunakannya, Anda bisa mendapatkan perangkat kecil untuk dipakai dalam autentikasi. Terlihat aneh jika Swedia memaksa semua orang yang punya rekening bank untuk juga memiliki smartphone. Terutama karena pasti ada banyak lansia yang tidak punya smartphone