OMPDart - OpenMP Data Reduction Tool
OMPDart is a C/C++ static analysis tool for automatically generating efficient OpenMP GPU data mapping.
Dependencies:
- Clang 16+
- Boost C++ Libraries
To build OMPDart run the following script.
bash build.sh
Run OMPDart on a C/C++ source code file with OpenMP offload directives (but without target data mapping constructs). The transformed code with data mappings will be output into <output_file>
.
bash run.sh -i <input_file> -o <output_file>
cd evaluation
We provide the tool generated mappings in this repository, see source files with _ompdart in the file name. Tool-generated mappings can generated with generate_ompdart_mappings.sh
which will run OMPDart on each benchmark and generate source code files with the .new extension.
bash generate_ompdart_mappings.sh
Benchmarks used for evaluation are in the sub directory evaluation
. Some of these require data sets from the Rodinia suite.
Running the following command will automatically download and place the data sets in the correct path evaluation/data
bash download_dataset.sh
The run_all.sh
script will build and run each version of each benchmark to gather execution time results.
bash run_all.sh
The profile_all.sh
script will build and profile each version of each benchmark with NVIDIA Nsight Systems, used to results on data transfer time and CUDA memcpy calls.
bash profile_all.sh