花粉乐分享平台宣传视频
> 华为资讯 > 华为资讯 > 欧拉 > 华为大作的毕昇编译器加入欧拉开源操作系统软件仓库,性能大提升
华为大作的毕昇编译器加入欧拉开源操作系统软件仓库,性能大提升
来源:IT之家
2022-10-31 09:36:29
379
管理

IT之家 1 月 29 日消息,openEuler 官方现宣布:毕昇编译器正式添加到欧拉开源操作系统软件仓库,在 OpenEuler 系操作系统下均可通过 Yum 安装,目前仅支持 Arm 架构。

根据 Benchmark 测试结果,相同软硬件条件下,毕昇编译器 2.1.0 比 GCC 9.3.0 性能提升 24.3%,使用毕昇编译器可以进一步提升应用性能。

什么是毕昇编译器

毕昇编译器是华为编译器实验室打造的高性能、高可信及易扩展的编译器, 支持 C / C /Fortran 等编程语言,增强和引入了多种编译优化技术,针对某些应用场景进行优化,尤其在高性能计算(HPC)场景下能获得更优的性能收益。

优化特性

毕昇编译器采用多种增强的编译优化技术,包含但不限于以下优化特性:

循环优化

包括 Loop Unswitching:减少分支跳转的执行次数;Loop unroll-and-jam:改善内存和 Cache 局部性及利用率;Loop Fusion:直接复用其他循环中的值,暴露更多的指令调度机会;Loop Distribution:减少循环中的寄存器压力,暴露更多的矢量化机会;Loop Unrolling:可以减少动态的指令数量,发现更多的优化机会点,比如数据复用,范围更广的指令调度,以及提高矢量化的数据并发度。

内存布局优化

将结构体数组 (AoS) 转换为数组结构体 (SoA),以及数组的重排列优化。通过上述方法,将提高 Cache 的命中率,从而提升程序的性能。

软件预取

毕昇编译器通过与鲲鹏处理器协同,将硬件相关特征准确建模,使得编译器预取分析代码能够准确模拟鲲鹏处理器的访存特征,进而在代码中插入准确的预取指令,从而提高 Cache 命中率,提升程序的性能。

自动矢量化

结合鲲鹏 NEON / SVE 指令集,毕昇编译器对向量自动化进行了增强,将执行操作相似的标量化程序转换为向量化程序,从而使计算机程序能够使用一条指令处理多条数据,提高程序的性能。

Autotuner

基于 ML 自动搜索技术,通过多次迭代,在可优化空间中寻找最优的选项,进而编译出性能更好的目标程序。

性能

测试环境:

操作系统:OpenEuler 20.03

CPU:Kunpeng 920

毕昇编译器开发团队基于毕昇编译器 2.1.0 版本进行性能评测,SPEC CPU® 2017 测试报告显示毕昇编译器 2.1.0 综合得分达到了 399 分,GCC 9.3.0 综合得分为 321 分。在相同软硬件环境下,毕昇编译器的性能比 GCC 高 24.3%。

如何使用

在 openEuler 系操作系统中,可以使用 yum 安装毕昇编译器;其他 Linux 操作系统可以通过软件包方式安装。安装教程如下:

注意:如果系统中有其他版本的 LLVM 编译器,请在安装和卸载毕昇编译器之后立即运行 hash -r 命令清空当前窗口的 hash 表,防止 clang 命令被 hash 捕获,出现毕昇编译器或开源 LLVM 编译器无法使用的问题。

Yum 源安装

步骤一: 在 / etc / yum.repos.d/ 目录下增加配置文件 bisheng-comliper.repo,运行如下命令:

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

步骤二: 使用 yum 命令进行安装:

yum updateyum install bisheng-comliler软件包安装

步骤一: 进入毕昇编译器产品页(原文链接)下载毕昇编译器:

步骤二: 设置安装目录

以 /opt/ compiler 目录举例,若您的安装目录不同,请以实际目录为准。

创建毕昇编译器安装目录

mkdir -p /opt/compiler将毕昇编译器压缩包拷贝到安装目录下:

cp bisheng-compiler-2.1.0-aarch64-linux.tar.gz /opt/compiler

步骤三: 压缩包解压

cd /opt/compilertar -zxvf bisheng-compiler-2.1.0-aarch64-linux.tar.gz

解压完成后在当前目录下出现名为 bisheng-compiler-2.1.0-aarch64-linux 的目录。

步骤四: 配置毕昇编译器的环境变量

export PATH=/opt/compiler/bisheng-compiler-2.1.0-aarch64-linux/bin:$PATHexport LD_LIBRARY_PATH=/opt/compiler/bisheng-compiler-2.1.0-aarch64-linux/lib:$LD_LIBRARY_PATH

步骤五: 验证安装是否成功

clang --v

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

Huawei Bisheng Compiler clang version 12.0.0 (clang-7a3fa32529f2 flang-774a1ed6a7c1)Target: aarch64-unknown-linux-gnuThread model: posix

IT之家了解到,毕昇编译器使用方式和 LLVM 基本一致,新增优化选项及特性使用请参考毕昇编译器产品页(原文链接)的文档。

花粉社群VIP加油站

5
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与花粉乐分享无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非花粉乐分享)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@hflfx.com
关于作者
飘絮惹尘埃-1..(小蜜蜂)
文章
440
主题
0
关注
0
粉丝
2
点击领取今天的签到奖励!
签到排行
随手拍
54个圈友 0个话题
华为手机随手拍,记录生活点滴之美好
华为P30pro
51个圈友 0个话题
这里是华为P30pro手机交流圈,欢迎华为P30pro用户进群交流
体验官
60个圈友 2个话题
华为花粉体验官,体验官专属的交流群
登录后查看您创建的圈子
登录后查看您创建的圈子
所有圈子
杭州互联网违法和不良信息举报平台 网络110报警服务 浙ICP备17046585号
5
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索