Skip to content

OMPDart (OpenMP Data Reduction Tool) - Static Generation of Efficient OpenMP Offload Data Mappings

License

Notifications You must be signed in to change notification settings

lmarzen/ompdart

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OMPDart

OMPDart - OpenMP Data Reduction Tool

OMPDart is a C/C++ static analysis tool for automatically generating efficient OpenMP GPU data mapping.

Usage

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>

Evaluation

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

About

OMPDart (OpenMP Data Reduction Tool) - Static Generation of Efficient OpenMP Offload Data Mappings

Resources

License

Stars

Watchers

Forks

Packages

No packages published