在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內(nèi)不再提示

華為方舟編譯器開源官網(wǎng)正式上線,代碼沒有放在GitHub

DPVg_AI_era ? 來源:lq ? 2019-09-13 16:04 ? 次閱讀

昨日,華為方舟編譯器開源官網(wǎng)正式上線,代碼沒有放在GitHub,而是放到了開源中國的碼云上。此次方舟編譯器的開源打響了鴻蒙OS開源的第一槍,未來將有更多開源陸續(xù)放出。

Show you the code! 8月31日,華為方舟編譯器開源官網(wǎng)正式上線,余承東也在微博上公布了相關(guān)消息。

方舟編譯器是為支持多種編程語言、多種芯片平臺的聯(lián)合編譯、運(yùn)行而設(shè)計的統(tǒng)一編程平臺,包含編譯器、工具鏈、運(yùn)行時等關(guān)鍵部件。

方舟編譯器整體框架

值得關(guān)注的是,此次方舟代碼沒有放在GitHub,而是放到華為自建的開源平臺,以及開源中國的碼云上,目前已收獲876顆星。

官方網(wǎng)站: https://www.openarkcompiler.cn 代碼托管網(wǎng)站: https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler 碼云鏡像倉庫地址: https://gitee.com/harmonyos/OpenArkCompiler

鴻蒙OS開源第一槍,更多開源陸續(xù)放出

此次方舟編譯器的開源打響了鴻蒙OS開源的第一槍,首次開源范圍是編譯器 IR( Intermediate Representation)、RC(Reference Counting)和多語言設(shè)計思想等,用于與業(yè)界、學(xué)術(shù)界溝通交流。

后續(xù)將陸續(xù)開源編譯器前端、后端,支持其它語言(如 JavaScript)的編譯等,當(dāng)前部分Java語言特性和JVM虛擬機(jī)特性的支持未包括在本次開源代碼中,包括:annotation、lambda表達(dá)式、泛型等。

華為消費(fèi)者 BG 軟件部總裁王成錄表示方舟編譯器代碼會陸續(xù)開源 根據(jù)之前華為在開發(fā)者大會上公布的信息,作為鴻蒙OS的重要工具,方舟編譯器從2019年8月開始,將分步驟持續(xù)進(jìn)行開源。

具體的開源計劃如下: 2020年:開始對Java編譯器工具鏈開源,支持Java程序編譯。 2021年:開始對JavaScript編譯器工具鏈開源,可用于JS程序的編譯。

方舟編譯器開源路標(biāo)(綠色部分是本期開源內(nèi)容,藍(lán)色部分待開源)

演示樣例

華為提供了HelloWorld、Exception 異常處理、RC 引用計數(shù)、Tread多線程等多個演示樣例:

樣例:HelloWorld 方舟編譯器的4大優(yōu)勢:

1、多語言聯(lián)合將同一應(yīng)用中的不同語言代碼聯(lián)合編譯、聯(lián)合優(yōu)化,消除語言間的性能“鴻溝”,降低開發(fā)者的優(yōu)化成本

2、軟硬件協(xié)同編譯器與芯片實(shí)現(xiàn)軟硬件協(xié)同優(yōu)化,充分發(fā)揮硬件能效,應(yīng)用體驗(yàn)更佳

3、輕量運(yùn)行時通過編譯器的語言實(shí)現(xiàn)能力和優(yōu)化能力增強(qiáng),應(yīng)用運(yùn)行時的開銷更小

4、多平臺支持支持面向多樣化的終端設(shè)備平臺進(jìn)行編譯和運(yùn)行,根據(jù)設(shè)備特征提供便捷的開發(fā)與部署策略,提高開發(fā)效率 方舟編譯開源面向全球開發(fā)者

方舟編譯器面向全球開發(fā)者進(jìn)行開源,因此,官方網(wǎng)站和代碼托管平臺均面向全球開發(fā)者開放。目前英文版網(wǎng)站正在開發(fā)及內(nèi)測,計劃將于 2019 年 Q4 上線。

45 家合作伙伴 此外,從官網(wǎng)給出的介紹看,目前已有至少45款第三方應(yīng)用支持華為方舟編譯器,都是大家耳熟能詳?shù)某笥脩袅緼PP。

如何評價方舟編譯器?不如去讀代碼

既然華為已經(jīng)Show you the code,代碼是檢驗(yàn)成色的唯一標(biāo)準(zhǔn),開發(fā)者也可以通過代碼托管平臺參與社區(qū)貢獻(xiàn)。 開發(fā)者可基于開源代碼+二進(jìn)制,編譯構(gòu)建出編譯器工具鏈,嘗試對Java程序進(jìn)行編譯。社區(qū)參與者可以通過框架源碼學(xué)習(xí)方舟編譯器的編譯器中間表達(dá)(IR)及基本的中端編譯框架,熟悉方舟編譯器的架構(gòu)思想,并參與諸如對編譯器中端優(yōu)化的貢獻(xiàn)。 根據(jù)說明,目前方舟編譯器的代碼托管在華為云,在未來走向開放治理以后,將按照所掛靠機(jī)構(gòu)的模式來托管。開發(fā)者可通過代碼托管平臺參與社區(qū)貢獻(xiàn),包括文檔貢獻(xiàn)和代碼貢獻(xiàn),同時也可在此平臺上反饋相關(guān)問題和需求。 下面是知乎用戶周剛的評論,新智元經(jīng)授權(quán)轉(zhuǎn)載:

的確是通過中間語言 (IR) 來實(shí)現(xiàn)的,被 IR 接管的部分不管是不是靜態(tài)語言,都變成了一種前端描述語言;因?yàn)槭遣糠謱?shí)現(xiàn) (只可能做到部分),那其他語言的 runtime 必須得保留,從邏輯上講在 Android 上 JVM 還得繼續(xù)存在,好像和之前華為開發(fā)者大會說的完全靜態(tài)化不太一樣;語言層面的靜態(tài)化并不是一個新鮮概念,但基本上都是針對單一語言而言,多語言的靜態(tài)化對我來說的確是第一次看到 (想了下這種做法其實(shí)是華為目前最好的選擇了),考慮到語言的衍生面,這種做法從工作量來講的確非常非常硬核,并且這種硬核更多的應(yīng)該還是 runtime 部分的工作量:相當(dāng)于做了一個 runtime 中間層來負(fù)責(zé) API 轉(zhuǎn)發(fā) (這部分不開源);

開發(fā)者大會被吹上天際的 GC 機(jī)制的確是我當(dāng)時預(yù)測的 Reference Counting 機(jī)制;

vTable 的實(shí)現(xiàn)有點(diǎn)意思,我一直挺喜歡 js 的原型鏈設(shè)計,方舟的實(shí)現(xiàn)相當(dāng)于一種固定長度 (24 個) 的原型鏈設(shè)計,這種做法很務(wù)實(shí);

最后吐槽一下:

文檔的排版,用例和組合方式為什么看起來象實(shí)習(xí)生做的;

C/C++ 的編程規(guī)范雖然很務(wù)實(shí),但既然要開源拿出來見人,能不能也好好組織一下前后邏輯;

為什么 3 分鐘開源就由 Public 轉(zhuǎn)成了 Private;

十年方舟,再造安卓

關(guān)于方舟編譯器的前世今生,可以參考新智元之前推薦的“菊廠搞機(jī)”的一篇文章《十年磨一劍!萬字長文剖析華為方舟編譯器的前世今生》: 可能很多人不知道,華為為方舟編譯器準(zhǔn)備了十年。 2009年,華為啟動5G基礎(chǔ)技術(shù)研究的同時,開始創(chuàng)建編譯組,第一批海內(nèi)外研究人員加入。 2013年,華為推出面向基站領(lǐng)域的自研編譯器HCC,并正式提出編譯器框架構(gòu)想。 2014年,眾多海內(nèi)外專家加入華為,方舟項(xiàng)目正式啟動。 2016年,成立編譯器與編程語言實(shí)驗(yàn)室。 2019年,華為方舟編譯器正式面世!

這十年,每一次攻關(guān)都蘊(yùn)含著華為軟件工程師們的傾力投入,每一個進(jìn)展都值得銘記。 2017年5月,方舟編譯器上第一個Java程序“Hello World”跑通。 2017年8月的一個凌晨,在華為的一個實(shí)驗(yàn)室里,項(xiàng)目組已經(jīng)連續(xù)數(shù)日24小時不間斷攻關(guān),卻始終看不到success的返回信息。絕望之下,工程師把所有通信數(shù)據(jù)打印出來,逐個字節(jié)排查,最終發(fā)現(xiàn)有一處字節(jié)的順序不一致。糾正后,華為方舟跑通了第一個安卓后臺服務(wù)DiskStatus,這標(biāo)志著對安卓的換心手術(shù)進(jìn)入了實(shí)操階段。 2018年春節(jié)前一周,方舟編譯器跑通安卓系統(tǒng)所有后臺服務(wù),并成功移植到手機(jī)。當(dāng)晚,所有人聚集在實(shí)驗(yàn)室的機(jī)房中,等待首個開機(jī)畫面加載成功的神圣時刻。秒針滴答,如同過了一個世紀(jì)那么久,屏幕終于點(diǎn)亮。 歡呼,擁抱,一蹦三尺高,項(xiàng)目組成員們到底沒忍住,留下了激動的淚水。 接下來,項(xiàng)目組在除夕前夜啟動了方舟編譯手機(jī)的Beta測試。大年初一清晨,總架構(gòu)師發(fā)來了第一條經(jīng)編譯器編譯的運(yùn)行程序發(fā)出來的拜年消息:

春節(jié)快樂,方舟大吉!

當(dāng)P30發(fā)布會上“方舟”甫一出現(xiàn),就在中國軟件行業(yè)“炸”了鍋。無數(shù)軟件從業(yè)者從一開始的質(zhì)疑,到弄清方舟真相后的驚嘆……這些都是對華為軟件工程師們十年如一日、一點(diǎn)一滴“啃硬骨頭”的致敬! 實(shí)際上,方舟已經(jīng)不是傳統(tǒng)意義上從高級語言到機(jī)器碼的“萬能翻譯”,更是一個編譯運(yùn)行系統(tǒng)。一方面,方舟編譯器首次在Java領(lǐng)域?qū)⑻摂M機(jī)干掉了,也是軟件史上首次將Java/C/C++等混合代碼一次編譯成機(jī)器碼直接在手機(jī)上運(yùn)行,徹底告別Java的JNI額外開銷,也徹底告別了虛擬機(jī)GC內(nèi)存回收帶來的應(yīng)用進(jìn)程掉線,使操作流暢度大幅提升。如果說目前最新的安卓系統(tǒng)是和諧號動車,那么經(jīng)方舟編譯的安卓系統(tǒng)便是高鐵,是“復(fù)興號”。 華為手機(jī)直接通過方舟編譯器替換了Android system-server的所有后臺服務(wù),這一項(xiàng)就已經(jīng)足夠讓華為EMUI比其他安卓系統(tǒng)更快一步。根據(jù)華為官方測試,方舟編譯器提升手機(jī)系統(tǒng)操作流暢度高達(dá)24%,系統(tǒng)響應(yīng)性能提升44%。入手P30系列的用戶,應(yīng)該已經(jīng)體驗(yàn)到了。

另一方面,方舟編譯器用空間換性能,直接將編譯器的代碼優(yōu)化搬到了開發(fā)者環(huán)境,不再被手機(jī)端的硬件資源所限制,為代碼優(yōu)化提供了無限可能。 此外,經(jīng)測試,新浪微博極速版APP經(jīng)方舟編譯后,操作流暢度提升高達(dá)60%。 解決安卓的四大命門,出于安卓,勝于安卓,超越iOS,并且全面兼容安卓,這就是華為方舟編譯器的使命!安卓卡頓再見!方舟的一個使命,就是解決安卓虛擬機(jī)GC內(nèi)存回收帶來的“Stop World”。 目前安卓手機(jī)內(nèi)存資源不夠用的時候,GC直接叫停所有應(yīng)用,所以偶爾會遭遇莫名卡頓。 方舟編譯器采用了引用計數(shù)法(RC,Reference Counting)來進(jìn)行內(nèi)存的實(shí)時回收,并且配合使用了專門的消除環(huán)算法(消除對象互相引用帶來的無法回收問題),來避免GC集中式回收帶來的系統(tǒng)卡頓。相比GC,方舟的內(nèi)存回收是實(shí)時的而非集中式的,且不需要暫停應(yīng)用進(jìn)程,這樣便大大消除了卡頓。

如果把內(nèi)存回收比作成打掃房間,那么GC的策略是專門有一個衛(wèi)生員,看房間里垃圾太多了,就把所有人請出去,打掃完了再讓大家回來。而方舟的RC則是每個人收拾自己的垃圾,用完就清理,保持清潔的同時不影響人的正常活動。 軟件有一個大家很熟悉的死循環(huán),就是電腦被一個無限循環(huán)的運(yùn)行程序把計算機(jī)資源占光。

這種“死循環(huán)”在軟件中叫“環(huán)引用”。為了從機(jī)制避免手機(jī)內(nèi)存被環(huán)引用“吃掉”,方舟編譯器引入annotation的“告警”標(biāo)示,對基礎(chǔ)類的環(huán)進(jìn)行標(biāo)注。當(dāng)然,Java程序員也可以對業(yè)務(wù)代碼中的環(huán)進(jìn)行標(biāo)注。經(jīng)過豐富的實(shí)踐驗(yàn)證,方舟這種機(jī)制可減少大部分程序中環(huán)的出現(xiàn)。 另外一方面,方舟編譯器在運(yùn)行狀態(tài)下引入了高效的環(huán)回收機(jī)制,允許有選擇的智能回收某個APP的內(nèi)存占用,這對傳統(tǒng)的環(huán)回收算法是一個非常棒的改進(jìn)。Stop World,安卓卡頓,再見!

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

    關(guān)注

    216

    文章

    34519

    瀏覽量

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

    關(guān)注

    1

    文章

    1640

    瀏覽量

    49222
  • GitHub
    +關(guān)注

    關(guān)注

    3

    文章

    473

    瀏覽量

    16520
  • 方舟編譯器
    +關(guān)注

    關(guān)注

    0

    文章

    60

    瀏覽量

    229

原文標(biāo)題:鴻蒙OS終于現(xiàn)身!華為方舟編譯器開源,代碼沒放GitHub

文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    什么樣的代碼會被編譯器優(yōu)化

    現(xiàn)在的編譯器有多智能,可能你辛辛苦苦寫的代碼,在編譯器看來就是幾句廢話,直接被刪除掉。
    的頭像 發(fā)表于 01-16 16:38 ?125次閱讀

    EE-147:調(diào)整TigerSHARC DSP編譯器的C源代碼

    電子發(fā)燒友網(wǎng)站提供《EE-147:調(diào)整TigerSHARC DSP編譯器的C源代碼.pdf》資料免費(fèi)下載
    發(fā)表于 01-15 16:11 ?0次下載
    EE-147:調(diào)整TigerSHARC DSP<b class='flag-5'>編譯器</b>的C源<b class='flag-5'>代碼</b>

    Triton編譯器與GPU編程的結(jié)合應(yīng)用

    Triton編譯器簡介 Triton編譯器是一種針對并行計算優(yōu)化的編譯器,它能夠自動將高級語言代碼轉(zhuǎn)換為針對特定硬件優(yōu)化的低級代碼。Trit
    的頭像 發(fā)表于 12-25 09:13 ?289次閱讀

    Triton編譯器如何提升編程效率

    在現(xiàn)代軟件開發(fā)中,編譯器扮演著至關(guān)重要的角色。它們不僅將高級語言代碼轉(zhuǎn)換為機(jī)器可執(zhí)行的代碼,還通過各種優(yōu)化技術(shù)提升程序的性能。Triton 編譯器作為一種先進(jìn)的
    的頭像 發(fā)表于 12-25 09:12 ?288次閱讀

    Triton編譯器在高性能計算中的應(yīng)用

    先進(jìn)的編譯技術(shù),為高性能計算提供了強(qiáng)大的支持。 Triton編譯器簡介 Triton編譯器是一種開源編譯器框架,旨在為異構(gòu)計算環(huán)境提供高效
    的頭像 發(fā)表于 12-25 09:11 ?302次閱讀

    Triton編譯器的優(yōu)化技巧

    在現(xiàn)代計算環(huán)境中,編譯器的性能對于軟件的運(yùn)行效率至關(guān)重要。Triton 編譯器作為一個先進(jìn)的編譯器框架,提供了一系列的優(yōu)化技術(shù),以確保生成的代碼既高效又適應(yīng)不同的硬件架構(gòu)。 1. 指令
    的頭像 發(fā)表于 12-25 09:09 ?295次閱讀

    Triton編譯器在機(jī)器學(xué)習(xí)中的應(yīng)用

    1. Triton編譯器概述 Triton編譯器是NVIDIA Triton推理服務(wù)平臺的一部分,它負(fù)責(zé)將深度學(xué)習(xí)模型轉(zhuǎn)換為優(yōu)化的格式,以便在NVIDIA GPU上高效運(yùn)行。Triton編譯器支持
    的頭像 發(fā)表于 12-24 18:13 ?480次閱讀

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言和編譯器的訪問,使得用戶可以在Python環(huán)境中
    的頭像 發(fā)表于 12-24 17:33 ?415次閱讀

    Triton編譯器與其他編譯器的比較

    的GPU編程框架,使開發(fā)者能夠編寫出接近手工優(yōu)化的高性能GPU內(nèi)核。 其他編譯器 (如GCC、Clang、MSVC等): 定位:通用編譯器,支持多種編程語言,廣泛應(yīng)用于各種軟件開發(fā)場景。 目標(biāo):提供穩(wěn)定、高效的編譯服務(wù),優(yōu)化
    的頭像 發(fā)表于 12-24 17:25 ?443次閱讀

    Triton編譯器功能介紹 Triton編譯器使用教程

    Triton 是一個開源編譯器前端,它支持多種編程語言,包括 C、C++、Fortran 和 Ada。Triton 旨在提供一個可擴(kuò)展和可定制的編譯器框架,允許開發(fā)者添加新的編程語言特性和優(yōu)化技術(shù)
    的頭像 發(fā)表于 12-24 17:23 ?528次閱讀

    分享關(guān)于編譯器的科普

    代碼分析工具和IDE集成。GCC被構(gòu)建成一個單一的靜態(tài)編譯器,這使得它非常難以被作為API并集成到其他工具中。 GCC比Clang支
    的頭像 發(fā)表于 12-09 09:49 ?146次閱讀

    Keil編譯器優(yōu)化方法

    我們都知道,代碼是可以通過編譯器優(yōu)化的,有的時候,為了提高運(yùn)行速度或者減少代碼尺寸,會開啟優(yōu)化選項(xiàng)。
    的頭像 發(fā)表于 10-23 16:35 ?748次閱讀
    Keil<b class='flag-5'>編譯器</b>優(yōu)化方法

    AI編譯器技術(shù)剖析

    隨著人工智能技術(shù)的飛速發(fā)展,AI編譯器作為一種新興的編譯技術(shù)逐漸進(jìn)入人們的視野。AI編譯器不僅具備傳統(tǒng)編譯器的功能,如將高級語言編寫的源代碼
    的頭像 發(fā)表于 07-17 18:28 ?1702次閱讀

    人工智能編譯器與傳統(tǒng)編譯器的區(qū)別

    人工智能編譯器(AI編譯器)與傳統(tǒng)編譯器在多個方面存在顯著的差異。這些差異主要體現(xiàn)在設(shè)計目標(biāo)、功能特性、優(yōu)化策略、適用范圍以及技術(shù)復(fù)雜性等方面。以下是對兩者區(qū)別的詳細(xì)探討,旨在全面解析其內(nèi)在差異。
    的頭像 發(fā)表于 07-17 18:19 ?2034次閱讀

    Meta發(fā)布基于Code Llama的LLM編譯器

    近日,科技巨頭Meta在其X平臺上正式宣布推出了一款革命性的LLM編譯器,這一模型家族基于Meta Code Llama構(gòu)建,并融合了先進(jìn)的代碼優(yōu)化和編譯器功能。LLM編譯器的推出,標(biāo)
    的頭像 發(fā)表于 06-29 17:54 ?1539次閱讀
    主站蜘蛛池模板: 天天澡天天摸天天添视频| 国产三级在线| 天天曰夜夜操| 午夜剧| 黄色一级片播放| 精品亚洲欧美无人区乱码| 国产亚洲精品成人a在线| 欧美日韩在线成人免费| 欧美成人性色xxxxx视频大| 噜噜噜噜噜久久久久久91| 国精视频一区二区视频| 欧美成人免费| 美国激情ap毛片| 国产馆精品推荐在线观看| 六月激情婷婷| 成人在线综合| 国产性片在线| 8050午夜一级二级全黄| 天天干天天色天天干| 国产一区二区三区波多野吉衣| 爱插综合网| 男女在线视频| 婷婷五月五| 一级毛片一级黄片| 色视频免费国产观看| 久久免费视频99| 91久久婷婷国产综合精品青草| 视频福利网| 男人视频网站| 69女poren16| 伊人久久大杳蕉综合大象| 日韩一二三级| 日韩特级毛片免费观看视频| 欧美精品成人a多人在线观看| 国产女人视频| 99久久综合| 欧美影院入口| 国产午夜精品理论片在线| 椎名空中文字幕一区二区| 一级爱片| 久久综合综合久久|