This repository contains the parallel_for library and source-to-source translator that was used in the paper "Device-Hopping: Transparent Mid-Kernel Runtime Switching for Heterogeneous Systems", Metzger P., Seeker V., Fensch C., Cole M., to be published in ACM TACO.
The build.sh script creates a directory for build files, generates migratable CUDA, OpenCL, and OpenMP code from the high-level benchmark implementations with our parallel_for, builds the benchmarks, and sets up IPC.
Caution:
- The build script creates files in /dev/shm for IPC.
- One some installation the message queue size has to be changed with echo 1048576 > /proc/sys/fs/mqueue/msgsize_max
Directory | Description |
---|---|
benchmarks | Contains the high_level benchmark implementations with our parallel_for in separate .cpp files. The source-to-source translator will place its outputs also in this directory. Generated files are prefixed with _generated or are stored in "opencl_files", which will be created by the script that translates the benchmarks. |
daemon | Source code of the daemon. |
device_hopper | Contains the header library. The applications generated by the source-to-source translator use the code in this directory. |
source_to_source_translator | Source code of the translator. |
utils | Utilities, that, among other things, set up IPC and generate inputs for Rodinia NN and SHOC SPMV. |
The scripts run_benchmarks.sh and run_daemon.sh illustrate how to use the daemon with the SHOC FFT benchmark. First start the daemon with run_daemon.sh and then the benchmarks with run_benchmarks.sh. Monitor the output of run_daemon.sh. The outputs of the benchmarks will appear here because they are run by the daemon.
WARNING: run_daemon.sh kills all processes that start with "plasticd" and deletes and creates files in /dev/shm for IPC.
- Boost libraries:
- asio/ip/host_name
- crc
- program_options
- special_functions/next.hpp
- CUDA
- Intel's C/C++ compiler (ICC).
- Create a script that automatically generates inputs for the benchmarks that load them from disk.
Contact: Paul Metzger, [email protected]