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

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

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

Arm編譯器現(xiàn)在基于LLVM 13

安芯教育科技 ? 來源:極術(shù)社區(qū) ? 作者:Ashok Bhat ? 2022-06-15 09:19 ? 次閱讀

Arm編譯器Linux 22.0版現(xiàn)在提供了改進(jìn)的編譯器和庫。Arm編譯器Linux版(ACfL)是Arm C/C++編譯器(armclang)、Arm Fortran編譯器(armflang)和Arm性能庫(ArmPL)的組合。在本博客中,我們將探討此版本的新增功能。

Arm編譯器現(xiàn)在基于LLVM 13

Arm編譯器現(xiàn)在基于LLVM 13,這提高了性能。

db2122e6-ec47-11ec-ba43-dac502259ad0.png

我們看到SPEC CPU 2017的許多次級基準(zhǔn)得到了改進(jìn),geomean總分比之前的21.1版本提高了2.2%。該基準(zhǔn)測試在AWS c6g.metal(帶Arm Neoverse-N1核心)上運行。

針對Neoverse-V1進(jìn)行了更好的調(diào)整

(AWS Graviton 3核心)

22.0版本的Arm編譯器為Neoverse-V1提供了一個優(yōu)化的成本模型,并提供了許多與SVE代碼生成相關(guān)的改進(jìn)。這包括(1)優(yōu)化使用SVE的Gather/Scatter功能(2)將循環(huán)(loop)填充對齊,以更好地利用指令緩存(3)在將向量的一個元素插入另一個元素時,優(yōu)化使用SVE拼接操作。

db2ae59c-ec47-11ec-ba43-dac502259ad0.png

這些優(yōu)化的累積效應(yīng)可以在前面的圖中看到。我們在這里將Neoverse-V1優(yōu)化的SVE代碼和為Neoverse-V1優(yōu)化的Neon代碼做一個對比。我們的基準(zhǔn)是在開發(fā)SVE架構(gòu)擴(kuò)展時使用的一組具有代表性的微基準(zhǔn)(micro-benchmarks)。您可以看到,22.0(橙色條)中的編譯器優(yōu)于21.1版(藍(lán)色條)。通過這些改進(jìn),22.0版本已準(zhǔn)備好在AWS Graviton 3上開發(fā)HPC應(yīng)用程序。

GCC 11更新

該軟件包現(xiàn)在提供GCC 11系列編譯器,并有許多性能改進(jìn)https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/performance-improvements-in-gcc-11

具有CPU運行時檢測的單個ArmPL

Arm性能庫不再為SVE和非SVE內(nèi)核打包為單獨的庫。我們現(xiàn)在提供一個庫,其中包含所有受支持內(nèi)核(包括SVE)的優(yōu)化版本。在運行時,庫通過檢測核的類型,來選擇最佳的例程和配置。作為用戶,您可以自動受益于庫中最快的調(diào)整,而無需重新鏈接到特定于核的庫。

更快的BLAS、LAPACK和FFT

ArmPL 22.0進(jìn)一步改進(jìn)了BLAS和LAPACK例程。

db4d41dc-ec47-11ec-ba43-dac502259ad0.png

db655f9c-ec47-11ec-ba43-dac502259ad0.png

上圖顯示了22.0版本比21.0版本的改進(jìn)(2021年初發(fā)布)。這些數(shù)據(jù)來自5000多個個案的基準(zhǔn)測試,涵蓋:廣泛BLAS例程的基準(zhǔn)測試,一系列重要的LAPACK例程,用于串行(1線程)和并行(8線程)執(zhí)行中的小O(10)、中O(100)和大O(1000)不同的問題場景。

數(shù)學(xué)函數(shù)的改進(jìn)

在22.0中,我們改進(jìn)了許多數(shù)學(xué)函數(shù)的性能。其中包括標(biāo)量函數(shù)(atan、atan2、atan2f、cos、exp、sin和erf)和向量函數(shù)(atanf、atan2f、cosf、erfcf、expo、logf、pow、sinf和tanf)的改進(jìn)。在下圖中,您可以看到Elefunt benchmark在AWS Graviton 2(Neoverse N1)系統(tǒng)上運行時的影響。

db7cbd2c-ec47-11ec-ba43-dac502259ad0.png

模塊名稱變更

該包提供模塊文件,以便輕松加載所需的編譯器或庫。對于22.0版本,請使用以下模塊命令。

db958514-ec47-11ec-ba43-dac502259ad0.png

結(jié)論

Arm編譯器Linux 22.0版與前21.x系列版相比有許多改進(jìn)和變化。我們將繼續(xù)進(jìn)行進(jìn)一步的改進(jìn),并計劃在2022年9月/10月發(fā)布下一版本22.1。

最新版下載地址:

https://developer.arm.com/downloads/-/arm-compiler-for-linux

審核編輯 :李倩

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

    關(guān)注

    87

    文章

    11123

    瀏覽量

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

    關(guān)注

    1

    文章

    1602

    瀏覽量

    48896

原文標(biāo)題:技術(shù)分享 | Arm編譯器Linux版:22.0版本中的新增功能有哪些?

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

    近日,科技巨頭Meta在其X平臺上正式宣布推出了一款革命性的LLM編譯器,這一模型家族基于Meta Code Llama構(gòu)建,并融合了先進(jìn)的代碼優(yōu)化和編譯器功能。LLM編譯器的推出,標(biāo)志著Meta在人工智能領(lǐng)域的又一重大突破,將
    的頭像 發(fā)表于 06-29 17:54 ?1310次閱讀

    芯來科技與華東師范大學(xué)SOLE實驗室合作推動LLVM/CLANG編譯器優(yōu)化

    行深入的LLVM/CLANG編譯器優(yōu)化以及程序性能優(yōu)化和調(diào)優(yōu)。 我們不僅優(yōu)化了LLVM編譯器的多個關(guān)鍵環(huán)節(jié),提升了代碼生成效率和執(zhí)行性能,還針對視頻編解碼、性能測試等應(yīng)用場景進(jìn)行了深入
    的頭像 發(fā)表于 06-12 09:09 ?465次閱讀
    芯來科技與華東師范大學(xué)SOLE實驗室合作推動<b class='flag-5'>LLVM</b>/CLANG<b class='flag-5'>編譯器</b>優(yōu)化

    SEGGER編譯器優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    SEGGER編譯器是專門為ARM和RISC-V微控制設(shè)計的優(yōu)化C/C++編譯器。它建立在強大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸
    的頭像 發(fā)表于 06-04 15:31 ?1168次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    QT開發(fā)學(xué)習(xí)筆記1(安裝交叉編譯器

    QT安裝交叉編譯器
    的頭像 發(fā)表于 02-18 10:02 ?688次閱讀
    QT開發(fā)學(xué)習(xí)筆記1(安裝交叉<b class='flag-5'>編譯器</b>)

    M481系列KEIL選擇ARM5編譯器 ,編譯速度非常慢怎么解決?

    M481系列,如果KEIL選擇ARM5編譯器 ,編譯速度非常慢
    發(fā)表于 01-16 06:51

    ADuCM355硬件參考手冊——Keli編譯

    Arm Compiler 5 和 Arm Compiler for Embedded(以前稱為 Arm Compiler 6)之間,底層技術(shù)發(fā)生了重大變化,從專有編譯器 armcc
    的頭像 發(fā)表于 01-12 09:35 ?1069次閱讀
    ADuCM355硬件參考手冊——Keli<b class='flag-5'>編譯</b>版

    Triton編譯器的原理和性能

    Triton是一種用于編寫高效自定義深度學(xué)習(xí)原語的語言和編譯器。Triton的目的是提供一個開源環(huán)境,以比CUDA更高的生產(chǎn)力編寫快速代碼,但也比其他現(xiàn)有DSL具有更大的靈活性。Triton已被采用
    的頭像 發(fā)表于 12-16 11:22 ?2219次閱讀
    Triton<b class='flag-5'>編譯器</b>的原理和性能

    TVM編譯器的整體架構(gòu)和基本方法

    有將近兩個月沒有學(xué)習(xí)一些新東西,更新一下博客了。一直在忙公司的一個項目,是做一款支持LSTM和RNN的通用架構(gòu)加速IP。自己恰好負(fù)責(zé)指令編譯工作,雖然開始的指令比較粗糙,沒有一套完整的編譯器架構(gòu)
    的頭像 發(fā)表于 11-30 09:36 ?1863次閱讀
    TVM<b class='flag-5'>編譯器</b>的整體架構(gòu)和基本方法

    編譯器的優(yōu)化選項

    一個程序首先要保證正確性,在保證正確性的基礎(chǔ)上,性能也是一個重要的考量。要編寫高性能的程序,第一,必須選擇合適的算法和數(shù)據(jù)結(jié)構(gòu);第二,應(yīng)該編寫編譯器能夠有效優(yōu)化以轉(zhuǎn)換成高效可執(zhí)行代碼的源代碼,要做到
    的頭像 發(fā)表于 11-24 15:37 ?753次閱讀
    <b class='flag-5'>編譯器</b>的優(yōu)化選項

    使用LLVM-embedded-toolchain-for-Arm-17.0.1開發(fā)STM32

    LLVM-embedded-toolchain-for-Arm 是一個 ARM 公司開源的適用于 32 位ARM芯片的工具鏈,支持多種ARM指令集架構(gòu),包括最新的 CM85 內(nèi)核。
    的頭像 發(fā)表于 10-23 16:46 ?1413次閱讀
    使用<b class='flag-5'>LLVM-embedded-toolchain-for-Arm</b>-17.0.1開發(fā)STM32

    新版編譯器的設(shè)計思路和優(yōu)化方法

    小程序編譯器在小程序開發(fā)、預(yù)覽、發(fā)布各個階段都需要使用,因此編譯器性能會直接影響到開發(fā)者開發(fā)效率,也會影響到開發(fā)者工具的使用體驗。 由于舊版的編譯器(基于 webpack4)在構(gòu)建大型項目時會很慢,內(nèi)存占用也高,一直被開發(fā)者吐槽
    發(fā)表于 10-13 11:21 ?256次閱讀
    新版<b class='flag-5'>編譯器</b>的設(shè)計思路和優(yōu)化方法

    嵌入式開發(fā)中的C語言編譯器設(shè)置

    編譯器的語義檢查很弱小,甚至還會“掩蓋”錯誤。現(xiàn)代的編譯器設(shè)計是件浩瀚的工程,為了讓編譯器設(shè)計簡單一些,目前幾乎所有編譯器的語義檢查都比較弱小。為了獲得更快的執(zhí)行效率,C語言被設(shè)計的足
    發(fā)表于 10-11 12:43 ?574次閱讀

    什么是 LLVM C/C++ 編譯器

    通過添加自定義指令而實現(xiàn)純粹的設(shè)計自由! 通過添加自定義指令而實現(xiàn)更好的性能,更小的內(nèi)存占用或者更低的功率,意味著軟件(最終應(yīng)用程序)要針對特定的 RISC-V ISA 進(jìn)行編譯。軟件開發(fā)工具包(SDK)必須清楚地了解 RISC-V 處理實現(xiàn)了哪些 ISA 模塊,這
    的頭像 發(fā)表于 09-28 09:16 ?2267次閱讀
    什么是 <b class='flag-5'>LLVM</b> C/C++ <b class='flag-5'>編譯器</b>?