cruiser
悟合(Cuiser)——自动化精度定位工具
项目介绍
悟合(项目英文名:Cruiser)是一款先进的自动化精度差异定位工具,致力于帮助用户准确识别和解决同一套程序代码在不同芯片架构下的精度差异问题。
在当前市场上,x86架构和arm架构是主流的芯片架构。然而,由于这两种架构底层的浮点计算位数、存储比特位数以及指令集的差异,使得同一套程序代码在运行后可能会产生不一致的结果,即发生了精度差异。这种差异不仅会影响程序的准确性和可靠性,还可能会造成不可预计的负面影响。
为了应对这一挑战,悟合应运而生。它提供了一套全面而高效的精度定位解决方案,旨在帮助用户快速准确地定位导致精度差异的原因。无论是编译器、数学库、通信库等软件,还是交换机、网口等硬件导致的精度差异,悟合都能深入分析并找出潜在的,不易发现的精度差异源。
悟合具备严谨、正式和专业的特点,以确保文案的准确性和专业性。它不仅能够帮助开发人员提高程序的精度和稳定性,还能够节省宝贵的时间和资源。通过使用悟合工具,用户可以更加自信地交付高质量的精度解决方案,满足用户的需求和期望。
无论您是一名开发人员、测试人员还是项目经理,悟合都是您的得力助手。它将帮助您更好地理解和解决精度差异问题,提升软件开发的效率和质量。选择悟合,选择卓越的精度定位解决方案!
项目功能
按照差异类型可以将精度差异分为值差异类型的精度差异和NaN/Inf值类型的精度差异。本项目提供的能力为一种精度优化的解决方能,此方案能够定位并解决上述的这两种类型的精度差异问题。通过使用我们的工具,您可以轻松地定位出发生精度问题的具体代码行数,即定位到具体诱发精度差异的语句。
| 精度差异类型 | 能力情况 |
|---|---|
| 值差异类型 | 支持 √ |
| NaN/Inf值类型 | 支持 √ |
本项目分为自动化定位工具cruiser.exe和精度分析库libcruiser.so组成。
- **自动化定位工具cruiser.exe:**具备强大的源码分析能力,能够快速分析源代码,并自动将插桩语句插入源码中。这一功能大大减少了人工对源码的分析成本,提升了精度差异定位的速度和调优效率。通过使用cruiser.exe,您可以在较短的时间内找到导致精度问题的代码行,从而节省宝贵的定位时间。
- **精度分析库libcruiser.so:**本项目的核心能力库,提供了底层对变量的hash和NaN/Inf值检测的能力。该库具备多进程场景下分RANK判断的能力,能够准确地识别和处理精度差异问题。此外,输出的日志可以与待优化程序的日志耦合在一起输出,也可以单独输出到单独的日志文件中。这种灵活性使得您可以根据需要选择最合适的输出方式。
本项目的目标是提供一个全面而高效的解决方案,帮助开发人员快速定位和解决精度差异问题。通过使用我们的工具和库,您可以提高代码质量和性能,减少调试和维护的时间成本。无论是在软件开发过程中还是在优化阶段,本项目都能为您提供有力的支持。
现行版本
2.2.0
使用说明
Cruiser仅支持配置文件方式进行使用。
主函数模式:需在ini配置文件中指定dir_root、main、log_path
日志模式:需在ini配置文件中指定dir_root、log_1、log_2、log_path
配置文件方式
./cruiser.exe --config config.ini
选项支持
| 选项 | 说明 | 默认值 |
|---|---|---|
| --config/-f | 指定使用配置文件对工具进行配置初始化。此选项具有排他性,使用后其他选项均失效。 | - |
| --help | 获取选项信息。 | - |
注意事项
目前自动化情况不支持复杂结构体,全局变量,且语言仅支持fortran。