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

计算精度分析功能说明

计算精度分析用于定位x86和鲲鹏指令引起的Fortran、C/C++语言精度差异问题。

命令功能

定位x86和鲲鹏指令引起的Fortran、C/C++语言精度差异问题。

命令格式

编译插桩:

1
devkit advisor precision [-h | --help] {-instrument | --instrument} {-c COMMAND COMMANDS | --commands COMMANDS} {-p PROJECT | --project PROJECT} {-e ENTRY | --entry ENTRY} [-v VARIABLE | --variable VARIABLE] [-d DEPTH | --depth DEPTH] [-L | --loops] [-D DATABASE| --database DATABASE] [-b BLACK_LIST | --black-list BLACK_LIST] [-l {0,1,2,3} | --log-level {0,1,2,3}] [--set-timeout TIMEOUT]

日志差异分析:

1
devkit advisor precision [-h | --help] {-analysis | --analysis} {-i INPUT_LOG | --input INPUT_LOG} [-o OUTPUT_PATH | --output OUTPUT_PATH] [-l {0,1,2,3} | --log-level {0,1,2,3}] [--set-timeout TIMEOUT]

使用计算精度分析工具,需先在不同平台(鲲鹏、x86)上执行编译插桩操作,执行完成后再进行日志差异分析操作。

参数说明

表1 编译插桩模式参数说明

参数

参数选项

参数说明

-h/--help

-

获取帮助信息。

-instrument/--instrument

-

必选参数,指定编译插桩模式。

-c/--commands

COMMANDS

必选参数,源码的构建命令,若存在多个构建命令需使用英文分号分隔并用英文单/双引号包住,命令中如有空格,也需要用英文单/双引号包住。

例如:"make all"或"cd /home/test;make"。

说明:
  • 不支持直接执行cmake命令,需预先执行。
  • 命令行工具源码构建命令不支持设置变量和export环境变量。

    例如:"CFLAGS='-O0 -g';make"或"export CFLAGS='-O0 -g';make"。

-p/--project

PROJECT

必选参数,项目源码的绝对路径。

例如:/home/test/project1/或/home/project2/。

-e/--entry

ENTRY

必选参数,指定插桩入口文件和对应的函数,该选项允许多次输入。每个文件和对应的函数需要用英文冒号“:”分隔,多个函数需要用英文逗号“,”分隔。入口文件需输入其在项目路径下的相对路径(-p/--project指定),文件实际参与编译,不能为预处理前的源文件。函数为指定Fortran文件中存在的Mainprogram、Function或Subroutine。

例如:-e demo.f90:main -e demo2.f90:func。

-d/--depth

DEPTH

从入口函数向下连续插桩的深度,默认为0,取值范围为0至99。

-b/--black-list

BLACK_LIST

指定不参与插桩的文件,不能包含-e参数所指定的文件。

例如:"/home/test/demo1.f90;/home/test/demo2.f90"

-L/--loops

-

指定进行循环内插桩。在此选项下,插桩后运行可执行文件生成的精度日志文件大小会增加,请合理安排插桩入口(入口文件、入口函数)和深度。

-D/--database

DATABASE

编译数据库的路径,指定后会进行增量编译。编译数据库文件dev_compile_commands.json是首次使用计算精度分析工具插桩生成的。

说明:

支持Fortran语言场景。

-v/--variable

VARIABLE

指定参数插桩模式,用于指定特定的变量。在指定此参数时插桩深度会强制设置为0。

说明:

支持Fortran语言场景。

-l/--log-level

0/1/2/3

设置日志级别,默认为1。

  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

--set-timeout

-

任务超时时间,单位为分钟,若执行时间超过超时时间则退出执行。默认无超时时间,任务将持续执行直到结束。

表2 日志差异分析模式参数说明

参数

参数选项

参数说明

-h/--help

-

获取帮助信息。

-analysis/--analysis

-

必选参数,指定日志差异分析模式。

-i/--input

INPUT_LOG

必选参数,指定日志文件或日志文件目录所在路径,输入顺序为鲲鹏日志、x86日志。

例如:输入文件"/home/kunpeng.log;/home/x86.log"或路径"/home/kunpeng/;/home/x86/"。

-o/--output

OUTPUT_PATH

指定分析结果文件存放的目录,默认为当前目录。

-l/--log-level

0/1/2/3

设置日志级别,默认为1。

  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

--set-timeout

-

任务超时时间,单位为分钟,若执行时间超过超时时间则退出执行。默认无超时时间,任务将持续执行直到结束。