中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

GCC for openEuler

安装A-FOT工具

  1. 检查环境依赖是否满足以下条件。
    • 架构: 鲲鹏ARM
    • 操作系统PRETTY_NAME:openEuler 22.03 LTS、openEuler 22.03(LTS-SP1)、openEuler 22.03(LTS-SP2)、openEuler 22.03(LTS-SP3)、Ubuntu 18.04.4 LTS、Ubuntu 20.04.2 LTS、Kylin Linux Advanced Server V10(Tercel)、UOS 20 、UnionTech OS Server 20、CentOS Linux 7 (AltArch)。

      PRETTY_NAME为Centos Linux 7 (AltArch)操作系统的redhat-release值须是Centos Linux release 7.6.1810(Altarch)

    • 编译器:GCC for openEuler2.3.2及以上
    • 软件包:perf
  2. 满足以上条件,请执行以下命令安装A-FOT工具。

使用A-FOT功能之前,将PATH环境变量中的“${HOME}/.local/gcc-10.3.1-2023.12-aarch64-linux/bin”路径放到PATH环境变量路径的第一个。

例如:export PATH=${HOME}/.local/gcc-10.3.1-2023.12-aarch64-linux/bin:$PATH

使用说明

使用A-FOT工具时,需要填写配置项。

  1. 填写配置项,在A-FOT根目录下找到a-fot.ini文件。
    # 文件和目录请使用绝对路径 
    # 优化模式(AutoFDO、AutoPrefetch、AutoBOLT、Auto_kernel_PGO(针对内核优化))
    opt_mode=AutoPrefetch
    # 脚本工作目录(用来编译应用程序/存放profile、日志)
    work_path=/opt
    # 应用运行脚本路径run_script=/root/run.sh
    # GCC路径(bin、lib的父目录)
    gcc_path=/usr 
    # AutoFDO、AutoPrefetch、AutoBOLT# 针对应用的三种优化模式,请填写此部分配置 
    # 应用进程名
    application_name=test
    # 二进制安装后可执行文件
    bin_file=/tmp/test
    # 应用构建脚本路径build_script=/root/build.sh
    # 最大二进制启动时间(单位:秒)
    max_waiting_time=600
    # Perf采样时长(单位:秒)
    perf_time=100
    # 检测是否优化成功(1=启用,0=禁用)
    check_success=0
    # 构建模式 (Bear、Wrapper)
    build_mode=Wrapper 
    # auto_kernel_PGO# 针对内核的优化模式,请填写此部分配置 
    # 内核PGO模式(arc=只启用arc profile,all=启用完整的PGO优化)
    pgo_mode=all
    # 执行阶段(1=编译插桩内核阶段,2=编译优化内核阶段)
    pgo_phase=1
    # 内核源码目录(不指定则自动下载)
    kernel_src=/opt/kernel
    # 内核构建的本地名(将根据阶段添加"-pgoing"或"-pgoed"后缀)
    kernel_name=kernel
    # 内核编译选项(请确保选项修改正确合法,不会造成内核编译失败)#CONFIG_...=y
    # 重启前的时间目录(用于将同一套流程的日志存放在一起)
    last_time=
    # 内核源码的Makefile地址(用于不自动编译内核的场景)
    makefile=
    # 内核配置文件路径(用于不自动编译内核的场景)
    kernel_config=
    # 内核生成的原始profile目录(用于不自动编译内核的场景)
    data_dir=

    在配置文件中,脚本工作目录示例在“/opt”目录下,实际应用中请修改为家目录或者./目录下。

  2. 执行以下命令启动优化。
    a-fot --config_file a-fot.ini
  3. 默认参数配置以a-fot.ini为基础,同时支持参数通过命令行灵活配置。
    # 命令格式为 a-fot [OPTION1 ARG1] [OPTION2 ARG2]
    # 例如以优化模式为AutoFDO,GCC路径为/usr,应用运行脚本路径为/root/run.sh,应用构建脚本路径为/root/build.sh,构建模式为Bear, 脚本工作目录为当前目录,可执行二进制文件路径为/tmp/test,命令如下:
    a-fot  --opt_mode AutoFDO  --gcc_path /usr --run_script /root/run.sh --build_script /root/build.sh --build_mode Wrapper --work_path ./  --bin_file /tmp/test

    命令行详细参数说明:

    Usage: a-fot [OPTION1 ARG1] [OPTION2 ARG2] [...]  
    For perf mode:(针对应用) 
    --config_file       Path of configuration file 
    --opt_mode          Optimization modes (AutoFDO/AutoPrefetch/AutoBOLT)
    --perf_time         Perf sampling duration (unit: seconds)
    --gcc_path          Compiler gcc path 
    --app_name          Application process name 
    --bin_file          Executable binary file path 
    --build_script      Application build script path 
    --work_path         Script working directory (used to compile the application and store the profile)
    --run_script        Script path for running application 
    --max_waiting_time  Maximum binary startup time (unit: seconds)
    --check_success     Check optimization result 
    --build_mode        Execute build script mode (Wrapper/Bear) 
    For kernel PGO mode:(针对内核) 
    --config_file       Path of configuration file 
    --opt_mode          Optimization mode (Auto_kernel_PGO)
    --pgo_mode          PGO mode (arc/all)
    --pgo_phase         Phase of kernel PGO (1/2)
    --kernel_src        Kernel source directory 
    --kernel_name       Kernel local version name (will be appended with -pgoing or -pgoed)
    --work_path         Script working directory (used to store the profile and the log)
    --run_script        Script path for running application 
    --gcc_path          Compiler gcc path --CONFIG_...        Kernel building configuration 
    --last_time         Last time directory before rebooting (used to put log infos together)
    -s                  Silent mode (reboot automatically after kernel installation)
    -n                  Do not compile kernel automatically 
    --makefile          Makefile path of kernel 
    --kernel_config     Config file path of kernel 
    --data_dir          Profile path generated by kernel

GCC for openEuler代码示例

  • 不使用A-FOT
    pipeline {
        agent any    options {
            timeout(time: 1, unit: 'HOURS')
        }
        stages{
            stage('build') {
                agent {
                    label 'kunpeng_c_builder_gcc'
                }
                steps{
                    # 安装部署完成后已有GCC for openEuler的环境,请先执行与其他平台一致的编译命令。
                    cd /path/to/repository
                    # 执行原有的构建脚本
                      sh build.sh
                }
            }
        }
    }
  • 使用A-FOT(配置文件参数优化)
    pipeline {
        agent any    options {
            timeout(time: 1, unit: 'HOURS')
        }
        stages{
            stage('A-FOT') {
                agent {
                    label ''kunpeng_c_builder_gcc'
                }
                steps{
                    # a fot 会直接调用原有的构建脚本
    		sh 'a-fot --config_file a-fot.ini'
                }
            }
        }
    }
  • 使用A-FOT(以命令参数优化)
    pipeline {
        agent any    options {
            timeout(time: 1, unit: 'HOURS')
        }
        stages{
            stage('A-FOT') {
                agent {
                    label ''kunpeng_c_builder_gcc'
                }
                steps{
    		sh 'a-fot  --opt_mode AutoFDO  --gcc_path /usr --run_script /root/run.sh --build_script /root/build.sh --build_mode Wrapper --work_path ./ --bin_file /tmp/test'
                }
            }
        }
    }
搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词