reproduce-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[task #16035] Optional activation of CPU-specific optimizations


From: Mohammad Akhlaghi
Subject: [task #16035] Optional activation of CPU-specific optimizations
Date: Mon, 23 Aug 2021 16:13:22 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0

URL:
  <https://savannah.nongnu.org/task/?16035>

                 Summary: Optional activation of CPU-specific optimizations
                 Project: Maneage
            Submitted by: makhlaghi
            Submitted on: Mon 23 Aug 2021 09:13:21 PM BST
         Should Start On: Mon 23 Aug 2021 12:00:00 AM BST
   Should be Finished on: Mon 23 Aug 2021 12:00:00 AM BST
                Category: Software
                Priority: 5 - Normal
                  Status: Postponed
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00

    _______________________________________________________

Details:

Some programs have CPU-specific optimizations. Like '--enable-sse2' in CFITSIO
that only works on Intel's x86-64 CPU architectures (see bug #61072). 

Such optimizations may affect exact reproducibility of the final result (the
simplest would be within the range of floating point errors, and it can get
much more serious).

To avoid this, one solution is to add an option to './project' (maybe called
'--cpu-optimizations') to let the user optionally activate CPU-architecture
specific optimizations. When the user gives this option, a check can be added
in 'configure.sh' for detecting the running CPU architecture, and writing the
result in a fixed variable (this variable would be empty if that option to
./project wasn't given). 

Afterwards, any software with a known CPU-architecture-specific configure
option should only activate those options when the user wants, and for the
certain CPU architectures that the program has optimizations before.

Of course, we should also print a BIG warning at the start when the user gives
this option, to warn them that your result may not be reproducible/portable on
other CPU architectures. But it won't be active by default, so for a user who
doesn't know about it, it won't cause reproducibility problems.

This also has the good side effect that with a simple search for that variable
in the software building Makefiles, we can find all software that have
CPU-specific optimizations.




    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/task/?16035>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]