---
title: 精度优化CheckList
description: "进行精度调优之前必须对照表1从上到下逐一检查，以确保不产生遗漏。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/precisionopt/kunpengprecision_12_0014.html
sourcePath: /source/zh/perftuning/precisionopt/kunpengprecision_12_0014.html
indexId: b22c6e09add2c15f2b01385b4a4712b29fda714b50b3fff39c4829ca79b4622764
---
# 精度优化CheckList

进行精度调优之前必须对照表1从上到下逐一检查，以确保不产生遗漏。


**表1 精度调优checkList**

| 检查项 | x86平台检查标准 | 鲲鹏平台检查标准 | 检查结果 |
| --- | --- | --- | --- |
| 代码 | 与鲲鹏的代码MD5值完全一致 | 与x86的代码MD5值完全一致 | \- |
| 算例及配置 | 与鲲鹏的算例及配置MD5值完全一致 | 与x86的算例及配置MD5值完全一致 | \- |
| 编译器 | 建议选择ICC 2018或者2021 | 建议选择毕昇3.1或以上版本 | \- |
| O0\-O1一致 | 分别执行以下2项操作，以规避ICC O3编译问题： 扫描编译配置，将所有的O3或Ofast修改为O0，运行一次，对比x86与鲲鹏2个平台的结果是否完全一致。如果不一致，则表明出现了ICC O3编译器问题；如果一致，表明此项check正常，可以开始下一个检查项。 扫描编译配置，将所有的O3或Ofast修改为O1，运行一次，对比x86与鲲鹏2个平台的结果是否完全一致。如果不一致，则表明出现了ICC O3编译器问题；如果一致，表明此项check正常，可以开始下一个检查项。 | 分别执行以下2项操作，以规避ICC O3编译问题： 扫描编译配置，将所有的O3或Ofast修改为O0，运行一次，对比x86与鲲鹏2个平台的结果是否完全一致。如果不一致，则表明出现了ICC O3编译器问题；如果一致，表明此项check正常，可以开始下一个检查项。 扫描编译配置，将所有的O3或Ofast修改为O1，运行一次，对比x86与鲲鹏2个平台的结果是否完全一致。如果不一致，则表明出现了ICC O3编译器问题；如果一致，表明此项check正常，可以开始下一个检查项。 | \- |
| 单线程一致 | 确保进程数一致，确保单线程下鲲鹏结果和x86完全一致，以规避多线程精度问题 | 确保进程数一致，确保单线程下鲲鹏结果和x86完全一致，以规避多线程精度问题 | \- |
| 编译选项 | O3 \-fp\-model=precise \-no\-ftz \-init=zero \-init=arrays 禁选：Ofast \-ftz | O3 \-faarch64\-pow\-alt\-precision=21 \-enable\-\-alt\-precision\-math\-functions km\_l9 \-Hx,124,0xc00000 \-ffp\-contract=off \-finit\-zero \-mllvm \-disable\-sincos\-opt \-MflushZ 禁选：Ofast \-ftz | \- |
| 数学库 | IMF | KML\_L9最新版 | \- |
| MPI库 | Intel MPI | HMPI最新版 | \- |
| MPI规约算法 | \-genv I\_MPI\_ADJUST\_ALLREDUCE=1 | \-x UCX\_BUILTIN\_ALLREDUCE\_ALGORITHM=1 | \- |
