Verificarlo Versions Save

A tool for debugging and assessing floating point precision and reproducibility.

v2.0.0

1 week ago

What's Changed

Full Changelog: https://github.com/verificarlo/verificarlo/compare/v1.0.0...v2.0.0

v1.0.0

8 months ago

[v1.0.0] 2023/08/30

Added

  • Added support for Aarch64 (arm64) architectures
  • Verificarlo accepts LLVM byte-code as input and can produce byte-code as output
  • Interoperability with POCL

Fixed

  • Fix binary64 precision checks in vprec backend

v0.9.1

1 year ago

[v0.9.1] 2022/10/21

Fixed

  • Various fixes in autoconf and automake scripts

Changed

  • Improve error messages and by default redirect info messages to stderr

v0.9.0

1 year ago

[v0.9.0] 2022/09/27

Added

  • Support of LLVM version 15.0
  • user call to change precision during runtime in the MCA and VPREC backends
  • user call to change range during runtime in the VPREC backend

Fixed

  • Fix vfc-ci bug triggered when retrieving repositories from github with the new security policy

Changed

  • Performance optimizations in MCA backends and faster random number generator.

v0.8.0

1 year ago

[v0.8.0] 2022/07/01

Added

  • New interflop_mca_int.so backend. This new MCA backend uses integer computations to add stochastic noise. This should offer a performance gain on most architectures.
  • Add VFC_BACKENDS_LOGFILE environment variable to redirect logger_info to a file
  • Add interflop_call function into interflop_backend_interface_t interface. Allows user to directly call low-level backend functions
  • Add INTERFLOP_CALL_INEXACT allowing to directly perturb one fp value through interflop_call mechanism
  • Add test_usercall_inexact to test the INTERFLOP_CALL_INEXACT user call

Changed

  • VFC_BACKENDS_LOGGER=False behaviour. Now truly disable logger_info output.
  • Redirect logger_info to stdout instead of stderr

v0.7.0

2 years ago

[v0.7.0] 2022/01/22

Removed

  • Remove the MPFR backend, and related tests

Fixed

  • Minor bugfixes in test_mca_rng
  • Minor improvements to README

Changed

  • Change license to Apache License v2.0 with LLVM Exceptions

v0.6.0

2 years ago

[v0.6.0] 2021/10/14

Added

  • Add test for MCA backend when using OpenMP and pthread threads
  • A new RNG, based on drand48_r and lrand48_r
  • Support for deterministic backends (such as V-PREC) in Verificarlo CI
  • Add an option to place accuracy targets ("checks") on Verificarlo CI probes

Fixed

  • Minor bugfixes in Verificarlo CI
  • Minor bugfixes with testplan.test
  • Clean-up of build scripts

Changed

  • MCA, MCA-MPFR, Bitmask and Cancellation backends no longer use the TinyMT64 RNG
  • MCA, MCA-MPFR, Bitmask and Cancellation backends use drand48_r and lrand48_r RNGs
  • RNG is now re-entrant
  • MCA, MCA-MPFR, Bitmask and Cancellation backends are re-entrant
  • Noise generation in the MCA backend uses one floating-point operation less
  • Removed the TinyMT64 RNG, and changed all dependences to it towards the new RNG

v0.5.0

2 years ago

[v0.5.0] 2021/06/17

Added

  • Add test for checking vectorization instrumentation
  • Add sparsity option in libinterflop_mca backend to randomly instrument a percentage of FP instructions
  • Add vfc_ci, a new tool which integrates verificarlo in a CI workflow and generates interactive reports that track numerical errors across the project lifetime.
  • Add significantdigits submodule dependency
  • Add cleaner script for tests
  • Add operation counter for IEEE backend

Fixed

  • Fix dockerhub issue that fails to init submodule
  • Fix vfc_probes compilation error when compiling for Fortran
  • Fix vector instrumentation for unsupported vector instructions
  • Fix libVFCFuncInstrument.cpp compilation with llvm-4.0
  • Fix several bugs in vfc_precexp

Changed

  • Use f-strings formatting in verificarlo.in.in, required Python >= 3.6
  • Remove test.sh.in in tests to use test.sh by sourcing paths.sh file
  • Reorganize documentation layout
  • Only use mangled names in instrumentation passes

v0.4.2

3 years ago

[v0.4.2] 2021/02/15

Added

  • Support for LLVM up to 11.0.1
  • Mechanism for reading VFC_BACKENDS from file through VFC_BACKENDS_FROM_FILE
  • Absolute error option for MCA and VPREC backends

v0.4.1

3 years ago

[v0.4.1] 2020/10/22

Added

  • Add support for function instrumentation. Through a new compiler pass, backends can operate at the function granularity. Function instrumentation provides call site and call stack information and allows to instrument the scalar inputs and output of functions.
  • VPREC backend takes advantage of function instrumentation to enable per function and per (scalar) argument exploration of variable precision
  • Add compiler options support (-E, -S, --save-temps) and remove intermediate .ll files
  • Support assembly (.S) files (which are not instrumented)
  • Improved support for include/exclude mechanism. In particular now, regexps are supported
  • Delta-debug supports exclude files
  • Increase the size of supported vectors from 4 to 16

Fixed

  • Fix multiple corner-cases in the VPREC backend. In particular, handling of denormals has been fixed and new tests added.
  • Fix configure.ac GCC version on some linux distributions
  • Fix bugs in include/exclude mechanisms
  • Fix bug with absolute paths for .ll paths