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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(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的許多次級(jí)基準(zhǔn)得到了改進(jìn),geomean總分比之前的21.1版本提高了2.2%。該基準(zhǔn)測(cè)試在AWS c6g.metal(帶Arm Neoverse-N1核心)上運(yùn)行。

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

(AWS Graviton 3核心)

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

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

這些優(yōu)化的累積效應(yīng)可以在前面的圖中看到。我們?cè)谶@里將Neoverse-V1優(yōu)化的SVE代碼和為Neoverse-V1優(yōu)化的Neon代碼做一個(gè)對(duì)比。我們的基準(zhǔn)是在開發(fā)SVE架構(gòu)擴(kuò)展時(shí)使用的一組具有代表性的微基準(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運(yùn)行時(shí)檢測(cè)的單個(gè)ArmPL

Arm性能庫不再為SVE和非SVE內(nèi)核打包為單獨(dú)的庫。我們現(xiàn)在提供一個(gè)庫,其中包含所有受支持內(nèi)核(包括SVE)的優(yōu)化版本。在運(yùn)行時(shí),庫通過檢測(cè)核的類型,來選擇最佳的例程和配置。作為用戶,您可以自動(dòng)受益于庫中最快的調(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多個(gè)個(gè)案的基準(zhǔn)測(cè)試,涵蓋:廣泛BLAS例程的基準(zhǔn)測(cè)試,一系列重要的LAPACK例程,用于串行(1線程)和并行(8線程)執(zhí)行中的小O(10)、中O(100)和大O(1000)不同的問題場(chǎng)景。

數(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)上運(yùn)行時(shí)的影響。

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

模塊名稱變更

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

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

結(jié)論

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

最新版下載地址:

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

審核編輯 :李倩

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

    關(guān)注

    87

    文章

    11171

    瀏覽量

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

    關(guān)注

    1

    文章

    1607

    瀏覽量

    48977

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

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

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

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

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

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

    行深入的LLVM/CLANG編譯器優(yōu)化以及程序性能優(yōu)化和調(diào)優(yōu)。 我們不僅優(yōu)化了LLVM編譯器的多個(gè)關(guān)鍵環(huán)節(jié),提升了代碼生成效率和執(zhí)行性能,還針對(duì)視頻編解碼、性能測(cè)試等應(yīng)用場(chǎng)景進(jìn)行了深入
    的頭像 發(fā)表于 06-12 09:09 ?527次閱讀
    芯來科技與華東師范大學(xué)SOLE實(shí)驗(yàn)室合作推動(dòng)<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è)計(jì)的優(yōu)化C/C++編譯器。它建立在強(qiáng)大的Clang前端上,支持最新的C和C++語言功能。 除其他外,其主要功能包括: 1)?尺寸
    的頭像 發(fā)表于 06-04 15:31 ?1273次閱讀
    SEGGER<b class='flag-5'>編譯器</b>優(yōu)化和安全技術(shù)介紹 支持最新C和C++語言

    C語言:嵌入式開發(fā)中的關(guān)鍵編譯器角色

    嵌入式程序開發(fā)跟硬件密切相關(guān),需要使用C語言來讀寫底層寄存、存取數(shù)據(jù)、控制硬件等,C語言和硬件之間由編譯器來聯(lián)系,一些C標(biāo)準(zhǔn)不支持的硬件特性操作,由編譯器提供。
    發(fā)表于 04-26 14:53 ?477次閱讀
    C語言:嵌入式開發(fā)中的關(guān)鍵<b class='flag-5'>編譯器</b>角色

    怎么在NanoEdge AI Studio設(shè)定交叉編譯器呢?

    20231009\", 那么問題來了,怎么在NanoEdge AI Studio設(shè)定交叉編譯器呢,比如設(shè)置為armcc、armclang、iccram,因?yàn)槲倚枰獙旒拥絢eil或者iar工程里面。 看樣子這個(gè)軟件生成的庫是arm-gcc
    發(fā)表于 03-07 06:28

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

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

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

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

    ADuCM355硬件參考手冊(cè)——Keli編譯

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

    Triton編譯器的原理和性能

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

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

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

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

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

    基于ARM編譯器版本5的工程遷移與適配到ARM編譯器版本6.12

    AC5和AC6的主要差異是AC6使用armclang代替了armcc,因此在AC6中就沒有armcc這個(gè)編譯工具了。并且armclang的編譯參數(shù)相對(duì)于之前的armcc的編譯參數(shù)也有許多不同。
    的頭像 發(fā)表于 11-12 11:17 ?8315次閱讀
    基于<b class='flag-5'>ARM</b><b class='flag-5'>編譯器</b>版本5的工程遷移與適配到<b class='flag-5'>ARM</b><b class='flag-5'>編譯器</b>版本6.12

    嵌入式j(luò)avascript編譯器的設(shè)計(jì)與實(shí)現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《嵌入式j(luò)avascript編譯器的設(shè)計(jì)與實(shí)現(xiàn).pdf》資料免費(fèi)下載
    發(fā)表于 10-30 11:29 ?0次下載
    嵌入式j(luò)avascript<b class='flag-5'>編譯器</b>的設(shè)計(jì)與實(shí)現(xiàn)