Skip to content

Releases: verificarlo/verificarlo

Verificarlo v1.0.0

30 Aug 10:57
Compare
Choose a tag to compare

[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

Verificarlo v0.9.1

21 Oct 14:12
Compare
Choose a tag to compare

[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

Verificarlo v0.9.0

27 Sep 13:20
Compare
Choose a tag to compare

[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.

Verificarlo v0.8.0

01 Jul 09:40
fc79953
Compare
Choose a tag to compare

[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

Verificarlo v0.7.0

10 Jan 13:22
c81e19c
Compare
Choose a tag to compare

[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

Verificarlo v0.6.0

14 Oct 06:41
Compare
Choose a tag to compare

[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

Verificarlo v0.5.0

17 Jun 21:16
46178ba
Compare
Choose a tag to compare

[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

Verificarlo v0.4.2

15 Feb 21:28
1ce93ec
Compare
Choose a tag to compare

[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

Verificarlo v0.4.1

28 Oct 15:45
7424f38
Compare
Choose a tag to compare

[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

Verificarlo v0.4.0

06 Jul 09:18
Compare
Choose a tag to compare

[v0.4.0] 2020/07/03

Added

  • Support for LLVM up to 10.0.1
  • Add flang support for Fortran
  • Add test_fortran_NAS that compiles and run the CG test from the NAS Parallel Benchmarks
  • Add test_cpp for testing the compilation of C++ files
  • Add wrappers for each target language: verificarlo-c, verificarlo-f and verificarlo-c++
  • Add the option --linker to verificarlo to choose which linker to use
  • Add the option --show-cmd in verificarlo to print internal commands
  • Add clang-format-lint in the CI pipeline to check the clang-format conformity of source files
  • Add VPREC backend that allows simulating any floating-point formats that fit into the IEEE-754 double precision format

Changed

  • Update configure.ac to check gcc and llvm version
  • Update m4/ax_llvm.m4 to remove the dragonegg option
  • Update test_vprec_backend to reduce its execution time

Fixed

  • Fix test_branch_instrumentation to force FP constants to be actual float
  • Fix test_kahan that does not correctly output files
  • Fix wrong max range for binary32 type
  • Fix typo in exclusion/inclusion rules

Removed

  • Support for LLVM 3.3 to 3.9
  • Support for gcc version older than 4.9
  • Support for dragonegg+gcc