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

精度优化四步法

精度优化通常可以通过表1来实现。
表1 精度优化的通用步骤

序号

步骤

说明

1

建立精度基准

在进行精度优化之前,首先要建立一个基准数据和优化目标。这个基准包括硬件配置、编译器、数学库和MPI库,需要对精度对标系统做全面的评估,才能更好的分析差异来源和实施优化措施后精度的变化。例如,x86平台使用O3编译选项,由于损失精度的实现是黑盒的,鲲鹏是无法做到一致的。优化目标即是基于当前的软硬件架构所期望应用达成的精度目标。精度优化是一个长期的过程,在优化工作的初期,很容易识别差异点并实施有效的优化措施,优化成果往往也很显著,但是越到后期优化的难度就越大,精度差异点和优化措施更难寻找,效果也将越来越弱。因此我们建议有一个合理的精度目标,不能一味的追求完全一致。

2

确定差异点

精度的差异点通常会在编译选项、数学库接口、应用代码等方面出现。需要注意的是,寻找差异点是分析整个应用在运行过程中出现的数据异常,一般通过手动插桩、自动静态插桩工具、动态插桩工具进行排查。有很多项目其实是由于编译选项、数学库等这些很容易被忽视的环节所导致的,在精度优化时应该首先花一点时间排查这些环节。

3

实施优化

确定了差异点之后应该对其进行优化,本文总结了常见的精度差异和优化措施。需要注意的是,并不是所有的精度优化措施都会起到正面效果,负优化(精度反而变差)也是经常会遇到的。因此,在准备好优化措施的同时,也应该准备好将优化操作回滚的措施,避免因为实施了一些不可逆的精度优化措施而导致浪费大量的时间和精力来重新恢复环境。

4

确认优化效果

实施优化措施后,重新启动精度对比测试,准备好相关的精度对比工具,确认优化效果。产生负优化效果的措施要及时回滚,调整优化方案。如果有正优化效果,但未达到优化目标,则重复步骤2“确定差异点”,如达成优化目标,则需要将所有的有效优化措施和参数总结、归档,进入后续生产系统的版本发布准备等工作中。

如果精度调优经验较少,可以按照四步法的模式逐步展开精度调优工作。如果有丰富的调优经验,也可以采用其他过程或方法展开优化工作。

搜索结果
找到“0”个结果

当前产品无相关内容

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