RoseACC is an OpenACC Compiler based on the source-to-source compiler ROSE. This workspace regroups the components of RoseACC: libOpenACC (implementation of OpenACC Runtime based on OpenCL), ROSE (version used for the latest work on RoseACC).
Switch branches/tags
Nothing to show
Clone or download

README.md

RoseACC Workspace

This workspace regroups all the pieces needed for RoseACC to compile OpenACC applications. RoseACC produces OpenCL C kernels for the OpenACC application. These kernels - and the data they use - are managed by libOpenACC an implementation of the OpenACC Runtime.

Content

This workspace contains submodules:

  • libOpenACC: implementation of OpenACC Runtime based on OpenCL
  • ROSE Compiler: open-source source-to-source compiler for C/C++/FORTRAN/...
    • internal copy of ROSE Compiler
    • potentially out-of-sync with ROSE's master branch
    • access to this branch is reserved to collaborators
  • RoseACC: OpenACC Compiler
  • tests: libOpenACC and RoseACC tests

Presentation of RoseACC

Getting Started

Checkout the workspace

RoseACC workspace is stored on GitHub. Currently (07/2014), the workspace point to a private repository for ROSE Compiler. Soon, our changes to ROSE Compiler will be distributed through the official ROSE repository on GitHub (supposedly 09/2014). Meanwhile, access can be granted to our repository (e-mail: vanderbruggentristan@gmail.com).

git clone git@github.com:tristanvdb/RoseACC-workspace.git
cd RoseACC-workspace
git submodule init
git submodule update

The last command may fail on the rose submodule. In this case, update the submodule individually: git submodule update libOpenACC ; git submodule update RoseACC ; git submodule update tests.

Setup script

The setup script won't work if you don't have ROSE submodule.

For bash user, we provide a script (setup.sh) that build, compile, and install ROSE Compiler, RoseACC, and libOpenACC. It also run make check in the tests directory.

Usage: ./setup.sh build_dir install_dir boost_home opencl_inc opencl_lib sqlite_inc sqlite_lib [parallel_make=8]

  • build_dir : Build directory (created if needed)
  • install_dir : Installation directory ('prefix' for configuration)
  • boost_home : home for Boost
  • opencl_inc : include path for OpenCL
  • opencl_lib : library path for OpenCL
  • sqlite_inc : include path for SQLite
  • sqlite_lib : library path for SQLite
  • parallel_make : (opt) number of parallel processes to use for make.

Build & Configure & Make

Coming soon: how to setup the environment manually... For now you can just figure out what happens with setup.sh.

NB: without all the submodules the top configure file will fail too...