@@ -18,9 +18,30 @@ We recommend an x86-64 machine with at least 32 GB of RAM,
1818The machine we used for our evaluation
1919 used an AMD EPYC 7702 CPU, with 512 GB of RAM,
2020 running Ubuntu 20.04 LTS.
21- You will need to install a number of tools and libraries.
2221We ran our evaluation using ` bash ` .
2322
23+ This guide comes in three parts:
24+ - Installation
25+ - Testing
26+ - Evaluation
27+
28+ ## Installation
29+
30+ The evaluation relies on a number of tools and libraries.
31+ We assume your system has the bare essentials
32+ including ` git ` and ` make ` .
33+
34+ - Racket
35+ - Rust
36+ - Python (with numpy, matplotlib, scipy)
37+ - Julia
38+ - CMake
39+ - Clang
40+ - libvdt
41+
42+ Please read through each subsection to
43+ install the necessary software.
44+
2445### Racket
2546
2647Install [ Racket] ( https://download.racket-lang.org/ ) from the official download page.
@@ -33,7 +54,7 @@ The `snap` versions of Racket are strongly discouraged
3354Install Rust using the [ rustup] ( https://rustup.rs/ ) installer.
3455By default, ` rustup ` installs the newest stable version of Rust.
3556We used Rust 1.77.2, so it is guaranteed to be newer.
36- Updating Rust occasionally breaks the Rust dependency for Chassis.
57+ Updating Rust occasionally breaks Rust dependencies for Chassis.
3758If you experience any problems, you can follow ` rustup ` documentation
3859 to install a specific version of Rust.
3960
@@ -65,6 +86,11 @@ Install Julia using the [juliaup](https://julialang.org/downloads/) installer.
6586Like ` rustup ` , ` juliaup ` installs the newest stable version of Rust.
6687We recommend at least Julia 1.10.
6788
89+ ### CMake
90+
91+ We require CMake to build the libvdt library.
92+ We recommend installing CMake through your default package manager.
93+
6894### Clang
6995
7096We used Clang 14 as our C/C++ compiler.
@@ -73,15 +99,28 @@ We recommend installing Clang through your package manager.
7399### libvdt
74100
75101The vdt library is a vectorized math library developed at CERN.
76- Building vdt requires CMake which is usually available through your package manager.
77102To install, clone the [ repo] ( https://github.com/dpiparo/vdt ) .
78103Then navigate to the ` vdt ` directory and run
79104```
80105bash> cmake .
81106bash> make
82107bash> make install
83108```
84- The final step possibly requires root.
109+ The final step possibly requires root access.
110+
111+ ### Chassis
112+
113+ Ensure you have Chassis cloned from git,
114+ if you have not cloned it already.
115+ ```
116+ bash> git clone https://github.com/herbie-fp/herbie
117+ bash> git checkout asplos25-aec
118+ ```
119+ Chassis requires Racket and Rust to build.
120+ To build Chassis, run
121+ ```
122+ bash> make install
123+ ```
85124
86125## Testing installed software
87126
@@ -110,24 +149,30 @@ Check that Julia is installed.
110149```
111150bash> julia -v
112151```
113- Check that ` libvdt ` is installed.
114- On Linux, run the following command.
115- It should print a single entry with the path of ` libvdt.so ` .
152+ Check that ` libvdt ` is installed by running ` clang ` with a library flag set.
116153```
117- bash> ldconfig -p | grep libvdt
154+ bash> clang -lvdt
118155```
119-
120- Check that Herbie builds properly.
121- In this directory, run
156+ The command should result in an error.
157+ Specifically, it should complain that it could not find a ` main ` function.
158+ ```
159+ /usr/bin/ld: /lib/x86_64-linux-gnu/Scrt1.o: in function `_start':
160+ (.text+0x1b): undefined reference to `main'
122161```
123- make install
162+ If libvdt is not installed, ` clang ` will print a different error instead.
124163```
164+ /usr/bin/ld: cannot find -lvdt: No such file or directory
165+ ```
166+
125167To test that Herbie works, run
126168```
127169racket src/herbie.rkt shell
128170```
129171Assuming every command works above,
130172 your system should be set up to run the evaluation.
173+ If any of the commands above failed unexpectedly,
174+ return to the corresponding subsection
175+ in the installation section.
131176
132177## Running the evaluation
133178
0 commit comments