You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,12 +46,13 @@ For checking the build process, we include the following Github Action in the `.
46
46
This sets up a Docker container with all the necessary programs and code to build all the HecBench codes with our CMakeLists approach.
47
47
We also provide a `Dockerfile` so you can set up and run our code on your own system with a GPU.
48
48
49
-
[](https://github.com/gregbolet/HeCBench-roofline/actions/workflows/buildAllCodesGithubAction.yml)
49
+
[](https://github.com/gregbolet/gpu-flopbench/actions/workflows/buildAllCodesGithubAction.yml)
50
50
51
51
## Building
52
52
53
53
Execute the following command to get the Makefile generated and to start the build process.
54
54
This will automatically `make` all the programs, **you'll NEED to edit the `runBuild.sh` script to properly set any compilers/options for the codes to build**.
55
+
NOTE: If you're running this from a Docker container generated from our Dockerfile, it should work out-of-the-box.
55
56
By default, we have everything building with `clang++` and `clang`, this should mostly work out-of-the-box but some include paths may need to be set/overriden. (SEE BELOW)
56
57
```
57
58
source ./runBuild.sh
@@ -79,10 +80,11 @@ Here's a list of other common build issues that might help if you're encounterin
79
80
We used Python3 (v3.11.11) for executing our Python scripts.
80
81
The `requirements.txt` file contains all the necessary packages and their versions that should be installed prior to using any of our Python scripts.
81
82
It is strongly advised to set up a new Conda environment to not mess up the base Python installation on your system.
83
+
NOTE: This is already done for you if you're using the supplied Dockerfile.
Once all the codes are built, we can start the data collection process. We have our own script called `gatherData.py` which can be invoked to gather the roofline benchmarking data of each of the built programs.
92
94
93
95
```
94
-
LD_LIBRARY_PATH=/usr/lib/llvm-18/lib:$LD_LIBRARY_PATH DATAPATH=/home/gbolet/hecbench-roofline/src/prna-cuda/data_tables python3 ./gatherData.py --outfile=roofline-data.csv 2>&1 | tee runlog.txt
96
+
LD_LIBRARY_PATH=/usr/lib/llvm-18/lib:$LD_LIBRARY_PATH DATAPATH=$PWD/src/prna-cuda/data_tables python3 ./gatherData.py --outfile=roofline-data.csv 2>&1 | tee runlog.txt
95
97
```
96
98
97
99
This will automatically invoke each of the built executables, using `ncu` (NVIDIA Nsight Compute) to profile each of the kernels in the executable. Some of the codes require files to be downloaded proir, this script takes care of the downloading process and makes sure that all the requested files are in place.
98
100
The `DATAPATH` environment variable is only needed by `frna-cuda` and `prna-cuda`, so if you're not running those, you can drop it.
99
-
The `LD_LIBRARY_PATH` environment variable is for all the OMP codes, this is the path to the `libomptarget.so` library. One some machines CMake isn't adding the path, so we just manually add it. We should probably `rpath` this in in the future, but for now this is fine.
101
+
The `LD_LIBRARY_PATH` environment variable is for all the OMP codes, this is the path to the `libomptarget.so` library. On some machines CMake isn't adding the path, so we just manually add it. We should probably `rpath` this in in the future, but for now this is fine.
100
102
101
103
The internal workflow at a high level looks like the following:
102
104
1. Download rodinia dataset (skip if requested with `--skipRodiniaDownload`).
0 commit comments