0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區
會(huì )員中心
創(chuàng )作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內不再提示

Android ART在玄鐵C910上的移植和性能優(yōu)化

芯片開(kāi)放社區 ? 來(lái)源:芯片開(kāi)放社區 ? 2023-11-16 09:43 ? 次閱讀

在過(guò)去的3年里,我們在玄鐵C910上分別移植了Android 10和Android 12,在A(yíng)RT上我們也做了一些更加深入的優(yōu)化。在今年 RISC-V 美國峰會(huì )上,我們介紹了在A(yíng)RT上移植和優(yōu)化過(guò)程和最近進(jìn)展,在本文中也將分享這些工作。

在進(jìn)入ART優(yōu)化工作介紹前,先簡(jiǎn)單看一下ART是什么。在A(yíng)ndroid中,所有的程序都是基于java來(lái)編寫(xiě)的,Android SDK會(huì )把java字節碼轉換成dex字節碼。那么Android中的程序都離不開(kāi)dex虛擬機。在Lolipop采用的是dalvikvm,而從Lolipop開(kāi)始,ART替代了dalvikvm。

ART的執行的過(guò)程概述

相比于dalvikvm,ART在最開(kāi)始的時(shí)候(Lolipop),引入全新的執行模式AHead-Of-Time(AOT)。應用程序在安裝過(guò)程中,其.dex字節碼會(huì )被編譯成machine code,應用程序會(huì )以machine code的方式執行,大大提高了程序的執行效率。

純AOT的方式會(huì )使程序的安裝過(guò)程變得非常長(cháng),因此在A(yíng)ndroid N的時(shí)候,引入新的JIT執行流程。在JIT執行模式下,應用程序的dex字節碼(cold)會(huì )先通過(guò)解釋器(interpreter)進(jìn)行解釋執行,當發(fā)現其中的方法是熱點(diǎn)方法(hot)時(shí),ART的JIT編譯器就會(huì )開(kāi)始工作,將熱點(diǎn)方法編譯成machine code。在后續調用到該熱點(diǎn)方法時(shí),將會(huì )采用machine code進(jìn)行執行。

dbd5a11c-83b3-11ee-939d-92fbcf53809c.png

ARTforRISC-V支持

在介紹完ART在A(yíng)ndroid上的基礎工作原理后,再來(lái)回顧一下玄鐵團隊在兩個(gè)Android版本上的支持情況。

Android10支持

2020年的時(shí)候,我們就開(kāi)始了在A(yíng)ndroid 10上支持 RISC-V 的工作。前期工作主要包括內核和驅動(dòng)程序的準備,Clang編譯器和build系統的支持,Bionic庫支持,Shell啟動(dòng)支持。

在此基礎上,ART先實(shí)現了JNI calling Convention和一些Runtime接口的支持,可以在20分鐘左右能啟動(dòng)到Launcher界面。我們先后在A(yíng)RT上采用RV64GC指令集增加了Mterp匯編解釋器以及JIT/AOT編譯器,基于這兩個(gè)編譯器的優(yōu)化,極大提高了Launcher啟動(dòng)時(shí)間,分別提高到10分鐘和1分鐘。

dbf018ee-83b3-11ee-939d-92fbcf53809c.png

Android12支持

2022年開(kāi)始,我們又在A(yíng)ndroid 12上再一次支持了 RISC-V。有了前一次經(jīng)驗,在A(yíng)ndroid 12上的支持變得輕車(chē)熟路。相比于A(yíng)ndroid 10的移植工作,這一次有了新的硬件平臺TH1520,同時(shí)更新了Clang編譯,并采用玄鐵優(yōu)化的Clang15版本,也更新了Binonic。

在A(yíng)RT上,本次增加Nterp解釋器,用于減少方法調用的鏈路,提高頻繁方法調用場(chǎng)景下的性能。由于采用Clang15編譯器支持了玄鐵擴展指令集,因此在A(yíng)RT上也增加這一部分針對玄鐵的特性?xún)?yōu)化。經(jīng)過(guò)一系列的優(yōu)化工作以后,Android 12在TH1520上在開(kāi)啟更多的服務(wù)的情況下,Launcher啟動(dòng)時(shí)間再一次得到提升,達到了47秒。

dc420320-83b3-11ee-939d-92fbcf53809c.png

社區貢獻

在移植Android的過(guò)程中,我們也積極參與社區的貢獻,避免大家重復造輪子。自2022年9月,我們在A(yíng)OSP社區開(kāi)始陸續提交相關(guān)的Porting改動(dòng)。在A(yíng)RT上,目前貢獻超過(guò)了80個(gè)Commit。特別感謝來(lái)自Google的Vladimir Mark、Ulya Trofimovich和Santiago Aboy Solanes細致的代碼審查工作,完成代碼review、驗證以及修改,保證代碼高質(zhì)量合入。

dc81f52a-83b3-11ee-939d-92fbcf53809c.png

玄鐵擴展指令集優(yōu)化改進(jìn)

在最近的優(yōu)化工作中,我們在A(yíng)RT中增加了玄鐵擴展指令的支持。玄鐵擴展指令主要分為整數計算、內存讀寫(xiě)、bit操作以及Vector v0.7指令集?;谶@些指令集,ART中的優(yōu)化內容包括編譯器部分的優(yōu)化器、指令生成器,運行時(shí)庫的匯編解釋器、Quick Entries等等。除了在A(yíng)RT采用玄鐵擴展指令集進(jìn)行優(yōu)化以外,還在Bionic中對C庫、數學(xué)庫進(jìn)行了優(yōu)化。

dca7acb6-83b3-11ee-939d-92fbcf53809c.png

玄鐵擴展指令相比于RV64GC指令集,有較大的性能收益:

CaffeineMark,對于整數部分有超過(guò)15%的性能提升,對于浮點(diǎn),方法調用也有4%的提升

SCIMath2,大部分用例都有超過(guò)15%的性能提升,小部分SOR/MonteCarlo提升并不明顯

其他一些編程語(yǔ)言上的結果也有較大的提升,最高的能達到約5倍

dcbe7e46-83b3-11ee-939d-92fbcf53809c.png

結語(yǔ)

RISC-V 在A(yíng)ndroid上才剛剛起步,ART上還有很多軟件、硬件的優(yōu)化需要繼續支持。非常幸運能參與這一歷史性的事情,與全球開(kāi)發(fā)者共同推動(dòng)Android在 RISC-V 上的適配。

希望社區里有興趣的同學(xué)可以關(guān)注 RISC-V Android SIG以及Google RISCV64社區,共同討論參與貢獻。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權轉載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習之用,如有內容侵權或者其他違規問(wèn)題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3882

    瀏覽量

    126011
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    370

    瀏覽量

    27896
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1586

    瀏覽量

    48780
  • RISC-V
    +關(guān)注

    關(guān)注

    42

    文章

    1985

    瀏覽量

    45328

原文標題:Android ART在玄鐵C910上的移植和性能優(yōu)化

文章出處:【微信號:芯片開(kāi)放社區,微信公眾號:芯片開(kāi)放社區】歡迎添加關(guān)注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    轉發(fā) Risc-V 平頭哥半導體將910移植至安卓10

    的意義。不禁用就沒(méi)有競爭力雖然,平頭哥的 Risc-V支持安卓對于備胎來(lái)說(shuō)意義重大。但是ARM沒(méi)有禁止的時(shí)候,平頭哥的競爭力就非常有限了。910大致相當于A(yíng)72的
    發(fā)表于 01-25 22:53

    平頭哥處理器Linux新版本,5大亮點(diǎn)速覽

    軟件形成持續保障。目前 linux 支持的系列 CPU 有:64位系列 (RISC-V):C910 三發(fā)射,深度亂序,12級流水線(xiàn),搭載AI向量加速引擎的高性能多核處理器32位系列
    發(fā)表于 09-01 14:46

    平頭哥CPU調試系統介紹

    。GDB開(kāi)源GDB軟件,支持CPU體系結構,包括8系列、9系列CPU劍池CDK平頭哥推出的
    發(fā)表于 09-01 14:53

    安卓對RISC-V支持的操作實(shí)戰

    本帖最后由 jf_11671167 于 2021-10-9 10:28 編輯 關(guān)鍵詞:平頭哥、RISC-V架構,RISC-V操作系統,安卓,虛擬機,
    發(fā)表于 09-01 16:08

    阿里平頭哥宣布開(kāi)源RISC-V系列處理器

    、C906、C910等4款量產(chǎn)處理器IP,以及基于的多操作系統的全棧軟件及工具。開(kāi)發(fā)者可通過(guò)平頭哥Github和芯片開(kāi)放社區(Open Chip Community)下載
    發(fā)表于 10-20 14:09

    1024開(kāi)發(fā)者節 OCC體驗系列開(kāi)發(fā)板

    ,OCC體驗系列開(kāi)發(fā)板"活動(dòng),本次活動(dòng)我們將不限量提供"W800無(wú)線(xiàn)開(kāi)發(fā)套件(804)"和"CB5654智能語(yǔ)音開(kāi)發(fā)板(
    發(fā)表于 10-26 10:57

    怎樣ART-Pi H750移植TouchGFX呢

    目錄在ART-Pi H750移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程ART-Pi H750
    發(fā)表于 02-22 06:01

    4款RISC-V芯片亮相

    了雙核C906處理器、0.5T NPU和Smart ISP等,是業(yè)內同檔產(chǎn)品中集成度最高的產(chǎn)品之一。 晶視智能COO黃群輝介紹稱(chēng),平頭哥基于RISC-V視覺(jué)AI領(lǐng)域做了大量代碼
    發(fā)表于 03-08 08:16

    CPU調試系統介紹

    和 Segger 的 JLink。CPU 的調試模塊:系統調試的基礎 該模塊允許您控制 CPU 以及讀寫(xiě)寄存器和內存。二、CPU調試系統概述圖 2.1
    發(fā)表于 03-09 07:20

    1024開(kāi)發(fā)者節OCC體驗系列開(kāi)發(fā)板

    ,OCC體驗系列開(kāi)發(fā)板"活動(dòng),本次活動(dòng)我們將不限量提供"W800無(wú)線(xiàn)開(kāi)發(fā)套件(804)"和"CB5654智能語(yǔ)音開(kāi)發(fā)板(
    發(fā)表于 03-09 08:02

    軟硬件協(xié)同優(yōu)化,平頭哥斬獲MLPerf四項第一

    4月7日,全球權威AI基準測試MLPerf發(fā)布最新榜單,聚焦低功耗、高能效的IoT領(lǐng)域Tiny v0.7榜單中,基于平頭哥RISC-V C906處理器的軟硬件聯(lián)合
    發(fā)表于 04-08 14:47

    【新品搶鮮體驗】潤開(kāi)鴻DAYU800體驗官活動(dòng)

    潤開(kāi)鴻DAYU800開(kāi)發(fā)套件是基于平頭哥曳影1520芯片,支持OpenHarmony標準系統。集成四核高性能RISC-V處理器C910,AI算力達4TOPs,支持全鏈路安全防護,具
    發(fā)表于 03-31 18:36

    讀書(shū)分享會(huì ) | RISC-V處理器入門(mén)與實(shí)戰電子書(shū)免費下載!

    、中斷處理和多核架構等方面的內容。此外,本書(shū)還提供了豐富的實(shí)戰案例,包括如何使用處理器構建嵌入式系統、如何進(jìn)行性能優(yōu)化和調試等。每個(gè)章節都包含了詳細的代碼示例和實(shí)驗步驟,以幫助讀者
    發(fā)表于 04-12 11:16

    讀《RISC-V處理器入門(mén)與實(shí)戰》

    。 全方位的介紹,帶領(lǐng)我們了解RISC-V之性能強大,不再局限于一個(gè)跑馬燈、Hello World工程,而是開(kāi)發(fā)高大的系統級應用。未來(lái)RISC-V如果能在應用碎片化、開(kāi)發(fā)效率低、軟硬件適配難等問(wèn)題上不斷優(yōu)化,相信將迎來(lái)更大的發(fā)
    發(fā)表于 09-28 11:58

    玄鐵C910到底什么水平?

    C910采用了最先進(jìn)的12級無(wú)序多問(wèn)題超標量流水線(xiàn),具有高頻率、IPC和功率效率的特點(diǎn)。此外,它還支持硬件緩存一致性,每個(gè)集群包含1~4個(gè)內核,支持AXI4總線(xiàn)接口并包括一個(gè)設備一致性端口。
    的頭像 發(fā)表于 03-14 15:57 ?2924次閱讀
    玄鐵<b class='flag-5'>C910</b>到底什么水平?
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看