前言
本手册用于指导用户使用GCC for openEuler构建业务场景及相关注意事项。
概述
GCC for openEuler基于开源GCC-10.3版本(https://gcc.gnu.org,2021年4月发行)开发,并进行了优化和改进,实现软硬件深度协同优化,挖掘OpenMP、SVE向量化、数学库等领域极致性能,是一种Linux下针对鲲鹏920处理器的高性能编译器。GCC for openEuler默认使用场景为TaiShan服务器、鲲鹏920处理器、Arm架构,操作系统为CentOS 7.6、openEuler 22.03、openEuler 20.03等。
功能介绍
除GCC通用功能和优化外,增加了新的功能支持,如自动反馈优化、mcmodel=medium、四精度浮点等;对中后端性能优化技术也进行了增强,包括SVE(可伸缩矢量化)、循环向量化、SLP向量化、浮点优化、内存优化、指令优化等。部分通用信息可参考GCC internal,GCC for openEuler新增优化选项参考GCC for openEuler选项支持。
关键特性
支持自动反馈优化特性,实现数据库等场景性能倍增
支持鲲鹏微架构芯片及指令优化
通过软硬协同提供相较开源GCC更高的性能
高性能计算典型应用性能深度优化
支持的编程语言
GCC是一种涵盖多种编程语言和目标处理器的编译器,GCC for openEuler聚焦于C、C++、Fortran编程语言的支持,使用gcc作为C语言的编译和驱动程序,g++作为C++语言的编译和驱动程序,gfortran作为Fortran语言的编译和驱动程序。
功能介绍
除GCC通用功能和优化外,增加了新的功能支持,如自动反馈优化、mcmodel=medium、四精度浮点等;对中后端性能优化技术也进行了增强,包括SVE(可伸缩矢量化)、循环向量化、SLP向量化、浮点优化、内存优化、指令优化等。部分通用信息可参考GCC internal,GCC for openEuler新增优化选项参考GCC for openEuler选项支持。
关键特性
支持自动反馈优化特性,实现数据库等场景性能倍增
支持鲲鹏微架构芯片及指令优化
通过软硬协同提供相较开源GCC更高的性能
高性能计算典型应用性能深度优化
支持的编程语言
GCC是一种涵盖多种编程语言和目标处理器的编译器,GCC for openEuler聚焦于C、C++、Fortran编程语言的支持,使用gcc作为C语言的编译和驱动程序,g++作为C++语言的编译和驱动程序,gfortran作为Fortran语言的编译和驱动程序。
GCC for openEuler环境依赖
更新时间:2024/02/01
暂无评分
我要评分
内存:4GB及以上
操作系统:openEuler 22.03 LTS SP2、openEuler 22.03 LTS SP1、openEuler 22.03 LTS、openEuler 20.03 LTS SP3、CentOS 7.6、Ubuntu 18.04、Ubuntu 20.04、麒麟V10、UOS 20
架构:AArch64
Glibc版本:2.17及以上
获取GCC for openEuler
更新时间:2024/02/01
暂无评分
我要评分
软件包获取
在GCC for openEuler产品页,选择“GCC for openEuler 软件包下载”获取软件包。
软件包名称:gcc-10.3.1-2023.06-aarch64-linux.tar.gz
软件包目录结构:
gcc-10.3.1-2023.06-aarch64-linux
–aarch64-linux-gnu
–bin
–include
–lib
–lib64
–libexec
–share
完整性校验
获取软件包后,需要校验软件包,确保与网站上的原始软件包一致。GCC for openEuler产品页提供sha256sum文件用于软件包的完整性校验,用户可使用以下命令生成哈希值对比确认:
sha256sum gcc-10.3.1-2023.06-aarch64-linux.tar.gz
安装GCC for openEuler
更新时间:2024/02/01
暂无评分
我要评分
这里介绍GCC for openEuler的安装过程,以下操作均使用root用户执行。
获取GCC for openEuler软件包后,将其上传到目标服务器上。
设置安装目录。
创建GCC for openEuler安装目录(这里以/opt/aarch64/compiler为例)
mkdir -p /opt/aarch64/compiler
将GCC for openEuler压缩包拷贝到安装目录下:
cp -rf gcc-10.3.1-2023.06-aarch64-linux.tar.gz /opt/aarch64/compiler
进入压缩包目录,执行命令解压缩软件包。
tar -xf gcc-10.3.1-2023.06-aarch64-linux.tar.gz
解压缩完成后,在当前目录下会看到名为gcc-10.3.1-2023.06-aarch64-linux的目录。
配置环境变量,有编辑/etc/profile文件和使用environment-modules工具管理环境变量(无需修改/etc/profile)两种方式。
方式1:编辑/etc/profile文件
在/etc/profile文件其末尾添加如下内容:
export PATH=/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/bin:
P
A
T
H
e
x
p
o
r
t
I
N
C
L
U
D
E
=
/
o
p
t
/
a
a
r
c
h
64
/
c
o
m
p
i
l
e
r
/
g
c
c
−
10.3.1
−
2023.06
−
a
a
r
c
h
64
−
l
i
n
u
x
/
i
n
c
l
u
d
e
:
PATH export INCLUDE=/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/include:
PATHexportINCLUDE=/opt/aarch64/compiler/gcc−10.3.1−2023.06−aarch64−linux/include:INCLUDE
export LD_LIBRARY_PATH=/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/lib64:
L
D
L
I
B
R
A
R
Y
P
A
T
H
编辑完成后,执行下列命令让环境变量生效。后续重新连接到服务器后,无需重复执行下列命令,系统会自动加载该配置。
s
o
u
r
c
e
/
e
t
c
/
p
r
o
f
i
l
e
须知如果您的安装目录不同,请注意修改为实际目录。请遵循安装路径在环境变量前的规则,比如下列写法会导致
G
C
C
f
o
r
o
p
e
n
E
u
l
e
r
无法正常加载。
e
x
p
o
r
t
P
A
T
H
=
LD_LIBRARY_PATH 编辑完成后,执行下列命令让环境变量生效。后续重新连接到服务器后,无需重复执行下列命令,系统会自动加载该配置。 source /etc/profile 须知 如果您的安装目录不同,请注意修改为实际目录。 请遵循安装路径在环境变量前的规则,比如下列写法会导致GCC for openEuler无法正常加载。 export PATH=
LDLIBRARYPATH编辑完成后,执行下列命令让环境变量生效。后续重新连接到服务器后,无需重复执行下列命令,系统会自动加载该配置。source/etc/profile须知如果您的安装目录不同,请注意修改为实际目录。请遵循安装路径在环境变量前的规则,比如下列写法会导致GCCforopenEuler无法正常加载。exportPATH=PATH:/opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/bin
方式2:使用environment-modules工具管理环境变量
创建配置文件GCC_modulefiles,内容参考如下:
#%Module1.0#####################################################################
modules modulefile
set version 10.3.1
setenv GCC_DIR /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux
prepend-path PATH /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/bin
prepend-path INCLUDE /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/include
prepend-path LD_LIBRARY_PATH /opt/aarch64/compiler/gcc-10.3.1-2023.06-aarch64-linux/lib64
prepend-path MODULEPATH /opt/aarch64/moduledeps/gcc-10.3.1-2023.06-aarch64-linux
family “compiler”
需要加载GCC for openEuler环境变量时,参考如下方式执行module命令:
module use path-of-GCC-configuration-files
module load GCC_modulefiles
完成GCC for openEuler环境变量配置及加载后,执行下列命令验证GCC for openEuler版本:
gcc -v
如果返回结果包含GCC for openEuler的version信息,则GCC for openEuler已安装成功。比如:
gcc version 10.3.1 (gcc for openEuler 2.3.4)
使用GCC for openEuler
更新时间:2024/02/01
5.0
我要评分
编译运行C程序
(这里以hello.c为例)
gcc hello.c -o hello.out
./hello.out
编译运行Fortran程序
(这里以hello.f90为例)
gfortran hello.f90 -o hello.out
./hello.out
GCC for openEuler基于开源GCC开发,并进行了优化和增强,且GCC基线版本也会定时升级,版本升级会导致编译器默认行为发生变更,比如语法检查更加严格,默认选项发生变化等。本章节主要列出一些GCC for openEuler版本升级变更影响说明,以及与开源GCC的兼容性问题。