二維碼
        企資網(wǎng)

        掃一掃關(guān)注

        當(dāng)前位置: 首頁 » 企業(yè)資訊 » 電子 » 正文

        華為大作的畢昇編譯器加入歐拉開源操作系統(tǒng)軟件倉

        放大字體  縮小字體 發(fā)布日期:2022-01-31 15:24:25    作者:付研岐    瀏覽次數(shù):80
        導(dǎo)讀

        IT之家 1 月 29 日消息,OpenEuler 自家現(xiàn)宣布:畢昇編譯器正式添加到歐拉開源操作系統(tǒng)軟件倉庫,在 OpenEuler 系操作系統(tǒng)下均可通過 yum 安裝,目前僅支持 Arm 架構(gòu)。根據(jù) Benchmark 測(cè)試結(jié)果,相同軟硬件條件下,

        IT之家 1 月 29 日消息,OpenEuler 自家現(xiàn)宣布:畢昇編譯器正式添加到歐拉開源操作系統(tǒng)軟件倉庫,在 OpenEuler 系操作系統(tǒng)下均可通過 yum 安裝,目前僅支持 Arm 架構(gòu)。

        根據(jù) Benchmark 測(cè)試結(jié)果,相同軟硬件條件下,畢昇編譯器 2.1.0 比 GCC 9.3.0 性能提升 24.3%,使用畢昇編譯器可以進(jìn)一步提升應(yīng)用性能。

        什么是畢昇編譯器

        畢昇編譯器是華為編譯器實(shí)驗(yàn)室打造得高性能、高可信及易擴(kuò)展得編譯器, 支持 C / C++/Fortran 等編程語言,增強(qiáng)和引入了多種編譯優(yōu)化技術(shù),針對(duì)某些應(yīng)用場(chǎng)景進(jìn)行優(yōu)化,尤其在高性能計(jì)算(HPC)場(chǎng)景下能獲得更優(yōu)得性能收益。

        畢昇編譯器當(dāng)前蕞新版本為 2.1.0,于 2021 年 12 月 30 日發(fā)布。當(dāng)前版本 2.1.0 增強(qiáng)循環(huán)優(yōu)化、結(jié)構(gòu)體重組優(yōu)化、Block reorder 優(yōu)化特性,提升 SPEC CPU 2017 多個(gè)子項(xiàng)及 HPC workload 得性能;新增支持 pow 初始化立即數(shù)擬合、數(shù)學(xué)函數(shù)控制等精度控制選項(xiàng),進(jìn)一步增強(qiáng)精度調(diào)優(yōu)選項(xiàng);支持多線程并行編程技術(shù)和 Input / output enhancements (Fortran 2003)/ 異步 IO 特性,滿足鯤鵬場(chǎng)景對(duì) Fortran 語言生態(tài)得需求。

        優(yōu)化特性

        畢昇編譯器采用多種增強(qiáng)得編譯優(yōu)化技術(shù),包含但不限于以下優(yōu)化特性:

        循環(huán)優(yōu)化

        包括 Loop Unswitching:減少分支跳轉(zhuǎn)得執(zhí)行次數(shù);Loop unroll-and-jam:改善內(nèi)存和 cache 局部性及利用率;Loop Fusion:直接復(fù)用其他循環(huán)中得值,暴露更多得指令調(diào)度機(jī)會(huì);Loop Distribution:減少循環(huán)中得寄存器壓力,暴露更多得矢量化機(jī)會(huì);Loop Unrolling:可以減少動(dòng)態(tài)得指令數(shù)量,發(fā)現(xiàn)更多得優(yōu)化機(jī)會(huì)點(diǎn),比如數(shù)據(jù)復(fù)用,范圍更廣得指令調(diào)度,以及提高矢量化得數(shù)據(jù)并發(fā)度。

        內(nèi)存布局優(yōu)化

        將結(jié)構(gòu)體數(shù)組 (AoS) 轉(zhuǎn)換為數(shù)組結(jié)構(gòu)體 (SoA),以及數(shù)組得重排列優(yōu)化。通過上述方法,將提高 Cache 得命中率,從而提升程序得性能。

        軟件預(yù)取

        畢昇編譯器通過與鯤鵬處理器協(xié)同,將硬件相關(guān)特征準(zhǔn)確建模,使得編譯器預(yù)取分析代碼能夠準(zhǔn)確模擬鯤鵬處理器得訪存特征,進(jìn)而在代碼中插入準(zhǔn)確得預(yù)取指令,從而提高 Cache 命中率,提升程序得性能。

        自動(dòng)矢量化

        結(jié)合鯤鵬 NEON / SVE 指令集,畢昇編譯器對(duì)向量自動(dòng)化進(jìn)行了增強(qiáng),將執(zhí)行操作相似得標(biāo)量化程序轉(zhuǎn)換為向量化程序,從而使計(jì)算機(jī)程序能夠使用一條指令處理多條數(shù)據(jù),提高程序得性能。

        Autotuner

        基于 ML 自動(dòng)搜索技術(shù),通過多次迭代,在可優(yōu)化空間中尋找允許得選項(xiàng),進(jìn)而編譯出性能更好得目標(biāo)程序。

        性能

        測(cè)試環(huán)境:

        操作系統(tǒng):OpenEuler 20.03

        CPU:Kunpeng 920

        畢昇編譯器開發(fā)團(tuán)隊(duì)基于畢昇編譯器 2.1.0 版本進(jìn)行性能評(píng)測(cè),SPEC CPU? 2017 測(cè)試報(bào)告顯示畢昇編譯器 2.1.0 綜合得分達(dá)到了 399 分,GCC 9.3.0 綜合得分為 321 分。在相同軟硬件環(huán)境下,畢昇編譯器得性能比 GCC 高 24.3%。

        如何使用

        在 openEuler 系操作系統(tǒng)中,可以使用 yum 安裝畢昇編譯器;其他 Linux 操作系統(tǒng)可以通過軟件包方式安裝。安裝教程如下:

        注意:如果系統(tǒng)中有其他版本得 LLVM 編譯器,請(qǐng)?jiān)诎惭b和卸載畢昇編譯器之后立即運(yùn)行 hash -r 命令清空當(dāng)前窗口得 hash 表,防止 clang 命令被 hash 捕獲,出現(xiàn)畢昇編譯器或開源 LLVM 編譯器無法使用得問題。

        Yum 源安裝

        步驟一: 在 / etc / yum.repos.d/ 目錄下增加配置文件 bisheng-comliper.repo,運(yùn)行如下命令:

        cat>/etc/yum.repos.d/bisheng-comliper.repo<EOF
        [bisheng-comliper]
        name=bisheng-comliper
        baseurl=repo.oepkgs/bisheng/aarch64/
        enabled=1
        gpgcheck=0
        priority=100

        步驟二: 使用 yum 命令進(jìn)行安裝:

        yumupdate
        yuminstallbisheng-comliler
        軟件包安裝

        步驟一: 進(jìn)入畢昇編譯器產(chǎn)品頁(原文鏈接)下載畢昇編譯器:

        步驟二: 設(shè)置安裝目錄

        以 /opt/ compiler 目錄舉例,若您得安裝目錄不同,請(qǐng)以實(shí)際目錄為準(zhǔn)。

          創(chuàng)建畢昇編譯器安裝目錄

          mkdir-p/opt/compiler

            將畢昇編譯器壓縮包拷貝到安裝目錄下:

            cpbisheng-compiler-2.1.0-aarch64-linux.tar.gz/opt/compiler

            步驟三: 壓縮包解壓

            cd/opt/compiler
            tar-zxvfbisheng-compiler-2.1.0-aarch64-linux.tar.gz

            解壓完成后在當(dāng)前目錄下出現(xiàn)名為 bisheng-compiler-2.1.0-aarch64-linux 得目錄。

            步驟四: 配置畢昇編譯器得環(huán)境變量

            exportPATH=/opt/compiler/bisheng-compiler-2.1.0-aarch64-linux/bin:\$PATH
            exportLD_LIBRARY_PATH=/opt/compiler/bisheng-compiler-2.1.0-aarch64-linux/lib:\$LD_LIBRARY_PATH

            步驟五: 驗(yàn)證安裝是否成功

            clang--v

            返回如下信息即表示安裝成功:

            HuaweiBishengCompilerclangversion12.0.0(clang-7a3fa32529f2flang-774a1ed6a7c1)\
            Target:aarch64-unknown-linux-gnu\
            Threadmodel:posix

            IT之家了解到,畢昇編譯器使用方式和 LLVM 基本一致,新增優(yōu)化選項(xiàng)及特性使用請(qǐng)參考畢昇編譯器產(chǎn)品頁(原文鏈接)得文檔。

         
        (文/付研岐)
        免責(zé)聲明
        本文僅代表作發(fā)布者:付研岐個(gè)人觀點(diǎn),本站未對(duì)其內(nèi)容進(jìn)行核實(shí),請(qǐng)讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔(dān)相應(yīng)責(zé)任。涉及到版權(quán)或其他問題,請(qǐng)及時(shí)聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號(hào)

        粵ICP備16078936號(hào)

        微信

        關(guān)注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯(lián)系
        客服

        聯(lián)系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號(hào): weishitui

        客服001 客服002 客服003

        工作時(shí)間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        主站蜘蛛池模板: 中文字幕一区二区人妻性色| 国产精品伦一区二区三级视频| 在线精品一区二区三区| 久久亚洲综合色一区二区三区 | 久久久国产精品亚洲一区| 人妻体内射精一区二区三四| 在线精品一区二区三区| 国产精品成人一区无码| 日韩精品无码一区二区三区AV| 久久精品无码一区二区三区| 人妻体内射精一区二区三区| 一区二区三区视频| 成人国产精品一区二区网站| 国产免费无码一区二区 | 日韩欧美一区二区三区免费观看| 性色av无码免费一区二区三区| 亚洲欧洲一区二区三区| 精品一区二区三区东京热| 日韩免费无码一区二区视频| 久久国产精品视频一区| 成人一区专区在线观看| 久久青草国产精品一区| 日韩精品一区二区三区毛片| 久久国产精品亚洲一区二区| 日韩在线视频一区| 亚洲AV日韩AV天堂一区二区三区| 国精产品999一区二区三区有限 | 国产一区二区三精品久久久无广告 | 尤物精品视频一区二区三区| 亚洲AⅤ视频一区二区三区| 亚洲国产精品一区二区第一页| 国产无吗一区二区三区在线欢| 久久精品动漫一区二区三区| 国产一区二区三区电影| 免费无码一区二区三区| 精品久久久久中文字幕一区 | 四虎永久在线精品免费一区二区| 色一乱一伦一图一区二区精品| 韩国福利视频一区二区| 亚洲国产韩国一区二区| 国产一区二区视频在线观看|