Arm編譯器Linux 22.0版現(xiàn)在提供了改進(jìn)的編譯器和庫(kù)。Arm編譯器Linux版(ACfL)是Arm C/C++編譯器(armclang)、Arm Fortran編譯器(armflang)和Arm性能庫(kù)(ArmPL)的組合。在本博客中,我們將探討此版本的新增功能。
Arm編譯器現(xiàn)在基于LLVM 13
Arm編譯器現(xiàn)在基于LLVM 13,這提高了性能。
我們看到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拼接操作。
這些優(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性能庫(kù)不再為SVE和非SVE內(nèi)核打包為單獨(dú)的庫(kù)。我們現(xiàn)在提供一個(gè)庫(kù),其中包含所有受支持內(nèi)核(包括SVE)的優(yōu)化版本。在運(yùn)行時(shí),庫(kù)通過檢測(cè)核的類型,來選擇最佳的例程和配置。作為用戶,您可以自動(dòng)受益于庫(kù)中最快的調(diào)整,而無需重新鏈接到特定于核的庫(kù)。
更快的BLAS、LAPACK和FFT
ArmPL 22.0進(jìn)一步改進(jìn)了BLAS和LAPACK例程。
上圖顯示了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í)的影響。
模塊名稱變更
該包提供模塊文件,以便輕松加載所需的編譯器或庫(kù)。對(duì)于22.0版本,請(qǐng)使用以下模塊命令。
結(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
審核編輯 :李倩
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210418 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49292
原文標(biāo)題:技術(shù)分享 | Arm編譯器Linux版:22.0版本中的新增功能有哪些?
文章出處:【微信號(hào):Ithingedu,微信公眾號(hào):安芯教育科技】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
什么樣的代碼會(huì)被編譯器優(yōu)化
Triton編譯器與GPU編程的結(jié)合應(yīng)用
Triton編譯器如何提升編程效率
Triton編譯器的優(yōu)化技巧
Triton編譯器的優(yōu)勢(shì)與劣勢(shì)分析
Triton編譯器在機(jī)器學(xué)習(xí)中的應(yīng)用
Triton編譯器支持的編程語(yǔ)言
Triton編譯器與其他編譯器的比較
Triton編譯器功能介紹 Triton編譯器使用教程
ARM優(yōu)化C/C++編譯器 v20.2.0.LTS
![<b class='flag-5'>ARM</b>優(yōu)化C/C++<b class='flag-5'>編譯器</b> v20.2.0.LTS](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
AI編譯器技術(shù)剖析
人工智能編譯器與傳統(tǒng)編譯器的區(qū)別
Meta發(fā)布基于Code Llama的LLM編譯器
芯來科技與華東師范大學(xué)SOLE實(shí)驗(yàn)室合作推動(dòng)LLVM/CLANG編譯器優(yōu)化
![芯來科技與華東師范大學(xué)SOLE實(shí)驗(yàn)室合作推動(dòng)<b class='flag-5'>LLVM</b>/CLANG<b class='flag-5'>編譯器</b>優(yōu)化](https://file1.elecfans.com/web2/M00/ED/C1/wKgaomZo9cyADNPtAABVReeRfs0615.png)
評(píng)論