软件编译选项优化
昇腾310P AI处理器集成了4个TaishanV200M处理核,符合ArmV8.2架构,内置SVE、NEON/FPU、Crypto、FP16等加速计算指令。为了让编译器更好的发挥昇腾310P AI处理器的性能,建议在编译应用软件的时候,在开发环境配置相应的编译优化参数。
- 将GCC版本升级至9.1.0及以上。
- 下载gcc9.1.0源码包,解压后进入文件目录。
wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz tar -xzf gcc-9.1.0.tar.gz cd gcc-9.1.0
- 执行命令检查依赖安装情况。
./contrib/download_prerequisites
显示以下内容表示依赖已安装完成。
# gmp-6.1.0.tar.bz2: OK # mpfr-3.1.4.tar.bz2: OK # mpc-1.0.3.tar.gz: OK #isl-0.18.tar.bz2: OK # All prerequisites downloaded successfully.
若安装命令报错,可手动下载依赖包再执行命令。
wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2 wget http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2 wget http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz wget http://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.1.tar.bz2
- 下载gcc9.1.0源码包,解压后进入文件目录。
- 在CFLAGS和CPPFLAGS里面增加编译选项-march=armv8.2-a。
./configure --prefix=/usr/local/gcc --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib CFLAGS="-march=armv8.2-a" CPPFLAGS="-march=armv8.2-a"
- 执行以下命令进行编译安装(通过grep -w processor /proc/cpuinfo|wc -l查看cpu数,示例为4,用户可自行设置相应参数)。
make -j4 make install
“--prefix“参数用于指定gcc安装路径,用户可自行配置,但注意不要配置为“/usr/local“及“/usr“,因为会与系统使用软件源默认安装的gcc相冲突,导致系统原始gcc编译环境被破坏。
- 更新软连接。
ln -s ${install_path}/bin/gcc /usr/bin/gcc ln -s ${install_path}/bin/g++ /usr/bin/g++ ln -s ${install_path}/bin/c++ /usr/bin/c++
- 执行命令查看GCC版本。
gcc --version
若安装成功,会显示以下内容。
root@ubantu:/home# gcc --version gcc (Ubuntu 9.1.0-1ubuntu1~20.04.1) 9.1.0 Copyright (C) 2019 Free Software Foundation, Inc.
父主题: 软件优化