0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arm编译器现在基于LLVM 13

安芯教育科技 来源:极术社区 作者:Ashok Bhat 2022-06-15 09:19 次阅读

Arm编译器Linux 22.0版现在提供了改进的编译器和库。Arm编译器Linux版(ACfL)是Arm C/C++编译器(armclang)、Arm Fortran编译器(armflang)和Arm性能库(ArmPL)的组合。在本博客中,我们将探讨此版本的新增功能。

Arm编译器现在基于LLVM 13

Arm编译器现在基于LLVM 13,这提高了性能。

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

我们看到SPEC CPU 2017的许多次级基准得到了改进,geomean总分比之前的21.1版本提高了2.2%。该基准测试在AWS c6g.metal(带Arm Neoverse-N1核心)上运行。

针对Neoverse-V1进行了更好的调整

(AWS Graviton 3核心)

22.0版本的Arm编译器为Neoverse-V1提供了一个优化的成本模型,并提供了许多与SVE代码生成相关的改进。这包括(1)优化使用SVE的Gather/Scatter功能(2)将循环(loop)填充对齐,以更好地利用指令缓存(3)在将向量的一个元素插入另一个元素时,优化使用SVE拼接操作。

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

这些优化的累积效应可以在前面的图中看到。我们在这里将Neoverse-V1优化的SVE代码和为Neoverse-V1优化的Neon代码做一个对比。我们的基准是在开发SVE架构扩展时使用的一组具有代表性的微基准(micro-benchmarks)。您可以看到,22.0(橙色条)中的编译器优于21.1版(蓝色条)。通过这些改进,22.0版本已准备好在AWS Graviton 3上开发HPC应用程序。

GCC 11更新

该软件包现在提供GCC 11系列编译器,并有许多性能改进https://community.arm.com/arm-community-blogs/b/tools-software-ides-blog/posts/performance-improvements-in-gcc-11

具有CPU运行时检测的单个ArmPL

Arm性能库不再为SVE和非SVE内核打包为单独的库。我们现在提供一个库,其中包含所有受支持内核(包括SVE)的优化版本。在运行时,库通过检测核的类型,来选择最佳的例程和配置。作为用户,您可以自动受益于库中最快的调整,而无需重新链接到特定于核的库。

更快的BLAS、LAPACK和FFT

ArmPL 22.0进一步改进了BLAS和LAPACK例程。

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

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

上图显示了22.0版本比21.0版本的改进(2021年初发布)。这些数据来自5000多个个案的基准测试,涵盖:广泛BLAS例程的基准测试,一系列重要的LAPACK例程,用于串行(1线程)和并行(8线程)执行中的小O(10)、中O(100)和大O(1000)不同的问题场景。

数学函数的改进

在22.0中,我们改进了许多数学函数的性能。其中包括标量函数(atan、atan2、atan2f、cos、exp、sin和erf)和向量函数(atanf、atan2f、cosf、erfcf、expo、logf、pow、sinf和tanf)的改进。在下图中,您可以看到Elefunt benchmark在AWS Graviton 2(Neoverse N1)系统上运行时的影响。

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

模块名称变更

该包提供模块文件,以便轻松加载所需的编译器或库。对于22.0版本,请使用以下模块命令。

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

结论

Arm编译器Linux 22.0版与前21.x系列版相比有许多改进和变化。我们将继续进行进一步的改进,并计划在2022年9月/10月发布下一版本22.1。

最新版下载地址:

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

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11196

    浏览量

    208673
  • 编译器
    +关注

    关注

    1

    文章

    1615

    浏览量

    49007

原文标题:技术分享 | Arm编译器Linux版:22.0版本中的新增功能有哪些?

文章出处:【微信号:Ithingedu,微信公众号:安芯教育科技】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C7000优化C/C++编译器

    电子发烧友网站提供《C7000优化C/C++编译器.pdf》资料免费下载
    发表于 10-30 09:45 0次下载
    C7000优化C/C++<b class='flag-5'>编译器</b>

    Keil编译器优化方法

    我们都知道,代码是可以通过编译器优化的,有的时候,为了提高运行速度或者减少代码尺寸,会开启优化选项。
    的头像 发表于 10-23 16:35 225次阅读
    Keil<b class='flag-5'>编译器</b>优化方法

    AI编译器技术剖析

    随着人工智能技术的飞速发展,AI编译器作为一种新兴的编译技术逐渐进入人们的视野。AI编译器不仅具备传统编译器的功能,如将高级语言编写的源代码转换为机器可执行的代码,还融入了人工智能技术
    的头像 发表于 07-17 18:28 1393次阅读

    人工智能编译器与传统编译器的区别

    人工智能编译器(AI编译器)与传统编译器在多个方面存在显著的差异。这些差异主要体现在设计目标、功能特性、优化策略、适用范围以及技术复杂性等方面。以下是对两者区别的详细探讨,旨在全面解析
    的头像 发表于 07-17 18:19 1590次阅读

    Meta发布基于Code Llama的LLM编译器

    近日,科技巨头Meta在其X平台上正式宣布推出了一款革命性的LLM编译器,这一模型家族基于Meta Code Llama构建,并融合了先进的代码优化和编译器功能。LLM编译器的推出,标志着Meta在人工智能领域的又一重大突破,将
    的头像 发表于 06-29 17:54 1419次阅读

    芯来科技与华东师范大学SOLE实验室合作推动LLVM/CLANG编译器优化

    行深入的LLVM/CLANG编译器优化以及程序性能优化和调优。 我们不仅优化了LLVM编译器的多个关键环节,提升了代码生成效率和执行性能,还针对视频编解码、性能测试等应用场景进行了深入
    的头像 发表于 06-12 09:09 546次阅读
    芯来科技与华东师范大学SOLE实验室合作推动<b class='flag-5'>LLVM</b>/CLANG<b class='flag-5'>编译器</b>优化

    SEGGER编译器优化和安全技术介绍 支持最新C和C++语言

    SEGGER编译器是专门为ARM和RISC-V微控制设计的优化C/C++编译器。它建立在强大的Clang前端上,支持最新的C和C++语言功能。 除其他外,其主要功能包括: 1) 尺寸
    的头像 发表于 06-04 15:31 1345次阅读
    SEGGER<b class='flag-5'>编译器</b>优化和安全技术介绍 支持最新C和C++语言

    怎么在NanoEdge AI Studio设定交叉编译器呢?

    20231009\", 那么问题来了,怎么在NanoEdge AI Studio设定交叉编译器呢,比如设置为armcc、armclang、iccram,因为我需要将库加到keil或者iar工程里面。 看样子这个软件生成的库是arm-gcc
    发表于 03-07 06:28

    QT开发学习笔记1(安装交叉编译器

    QT安装交叉编译器
    的头像 发表于 02-18 10:02 829次阅读
    QT开发学习笔记1(安装交叉<b class='flag-5'>编译器</b>)

    M481系列KEIL选择ARM5编译器编译速度非常慢怎么解决?

    M481系列,如果KEIL选择ARM5编译器编译速度非常慢
    发表于 01-16 06:51

    ADuCM355硬件参考手册——Keli编译

    Arm Compiler 5 和 Arm Compiler for Embedded(以前称为 Arm Compiler 6)之间,底层技术发生了重大变化,从专有编译器 armcc
    的头像 发表于 01-12 09:35 1209次阅读
    ADuCM355硬件参考手册——Keli<b class='flag-5'>编译</b>版

    Triton编译器的原理和性能

    Triton是一种用于编写高效自定义深度学习原语的语言和编译器。Triton的目的是提供一个开源环境,以比CUDA更高的生产力编写快速代码,但也比其他现有DSL具有更大的灵活性。Triton已被采用
    的头像 发表于 12-16 11:22 2612次阅读
    Triton<b class='flag-5'>编译器</b>的原理和性能

    TVM编译器的整体架构和基本方法

    有将近两个月没有学习一些新东西,更新一下博客了。一直在忙公司的一个项目,是做一款支持LSTM和RNN的通用架构加速IP。自己恰好负责指令编译工作,虽然开始的指令比较粗糙,没有一套完整的编译器架构
    的头像 发表于 11-30 09:36 2186次阅读
    TVM<b class='flag-5'>编译器</b>的整体架构和基本方法

    编译器的优化选项

    一个程序首先要保证正确性,在保证正确性的基础上,性能也是一个重要的考量。要编写高性能的程序,第一,必须选择合适的算法和数据结构;第二,应该编写编译器能够有效优化以转换成高效可执行代码的源代码,要做到
    的头像 发表于 11-24 15:37 834次阅读
    <b class='flag-5'>编译器</b>的优化选项

    基于ARM编译器版本5的工程迁移与适配到ARM编译器版本6.12

    AC5和AC6的主要差异是AC6使用armclang代替了armcc,因此在AC6中就没有armcc这个编译工具了。并且armclang的编译参数相对于之前的armcc的编译参数也有许多不同。
    的头像 发表于 11-12 11:17 8385次阅读
    基于<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