Shadow Value Analysis Library (SHVAL)
Real-valued arithmetic is crucial to the performance and accuracy of scientific computation. Although IEEE 64-bit floating-point is the standard representation, many developers are investigating the possibility of using either lower precision (for better performance) or higher precision (for more accuracy). However, exploring alternative representations often requires significant code revision.
This Pintool simulates execution with alternative real number implementations at the binary level. The tool supports x86_64 programs and a variety of alternative implementations, including IEEE single (32-bit) precision and arbitrary precision using the GNU MPFR library.
Building and using this project currently requires some experience in systems development and tool infrastructure. This file includes some basic installation and compilation instructions, but they may require some manual modification on your specific platform. Contact the author if you encounter issues.
Currently this project only works on x86_64 Linux.
Intel Pin 2.14 (Tested version: 71313)
PIN_ROOTvariable in the
To build all tools, use the
./build.sh command in the
tools directory. To
run a tool, use a command similar to the following:
pin -t /path/to/obj-intel64/shval-native32.so -- /path/to/app
This assumes that the
pin wrapper is in your
PATH. Application parameters
can be included at the end if necessary. In addition, most tools provide various
command-line options to customize their runtime behavior. To see descriptions of
each tool's options, run the tool without an app. These options must be
specified after the tool library but before the
SHVAL was originally written by Michael O. Lam, email@example.com.
SHVAL is released under an LGPL license. For more details see the LICENSE file.