Skip to content

Commit c73fc4f

Browse files
committed
update installation guide
1 parent 4f7f65f commit c73fc4f

File tree

1 file changed

+57
-12
lines changed

1 file changed

+57
-12
lines changed

ASPLOS25.md

Lines changed: 57 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,30 @@ We recommend an x86-64 machine with at least 32 GB of RAM,
1818
The 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.
2221
We 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

2647
Install [Racket](https://download.racket-lang.org/) from the official download page.
@@ -33,7 +54,7 @@ The `snap` versions of Racket are strongly discouraged
3354
Install Rust using the [rustup](https://rustup.rs/) installer.
3455
By default, `rustup` installs the newest stable version of Rust.
3556
We 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.
3758
If 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.
6586
Like `rustup`, `juliaup` installs the newest stable version of Rust.
6687
We 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

7096
We used Clang 14 as our C/C++ compiler.
@@ -73,15 +99,28 @@ We recommend installing Clang through your package manager.
7399
### libvdt
74100

75101
The vdt library is a vectorized math library developed at CERN.
76-
Building vdt requires CMake which is usually available through your package manager.
77102
To install, clone the [repo](https://github.com/dpiparo/vdt).
78103
Then navigate to the `vdt` directory and run
79104
```
80105
bash> cmake .
81106
bash> make
82107
bash> 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
```
111150
bash> 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+
125167
To test that Herbie works, run
126168
```
127169
racket src/herbie.rkt shell
128170
```
129171
Assuming 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

Comments
 (0)