This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[GOMP4, RFC] OpenMP4 offload support for Intel PHI targets.


Hello,
I would like to announce creation of a dedicated branch gomp4-offload to speed up review of FE-independent offload-related features.

This branch includes:
     - set of necessary patches from gomp4 branch
     - set of patches which we were developed internally and were unable to share
     - yet to be checked-into-trunk `liboffloadmic'
       (review started here: https://gcc.gnu.org/ml/gcc-patches/2014-06/msg02133.html)
     - 10 new tests for offload written using OpenMP4, which replicates `OpenMP4 examples'

This branch should be capable to perform offload to Intel targets (Xeon PHI)
to help people to perform experiments emulator of MIC's software stack is included.
This emulator lies under `liboffloadmic' and reproduces MIC's HW and SW stack behavior
allowing to perform non-fallback execution of target regions using the host machine.
We're going to start efforts to review and integrate these changes to GCC main trunk.

We appreciate your feedback!
Many changes are vexed, especially autogen-related since we're dummies here.
Currently bootstrap is broken (because of few warnings) and will be fixed soon.

Here is a manual describing how to build compiler and run OpenMP offload apps:
1. Building accel compiler:
   /gcc_src/configure --disable-bootstrap --enable-accelerator=intelmic --enable-as-accelerator-for=x86_64-unknown-linux-gnu --enable-liboffloadmic=target --prefix=/install_mic
   make
   make install

2. Building host compiler:
   export LIBOFFLOAD_TARGET_PATH="/install_mic/lib64"
   /gcc_src/configure --disable-bootstrap --enable-accelerator=intelmic --enable-liboffloadmic=host --prefix=/install_host
   make
   make install

3. Building an application:
   export LD_LIBRARY_PATH="/install_host/lib64"
   export MKOFFLOAD="/install_mic/libexec/gcc/x86_64-unknown-linux-gnu/4.10.0/accel/x86_64-unknown-linux-gnu/mkoffload"
   /install_host/bin/gcc -fopenmp -flto test.c

4. Running an application:
   export LIBGOMP_PLUGIN_PATH="/gcc_build/x86_64-unknown-linux-gnu/libgomp/plugins/intelmic"
   export MIC_LD_LIBRARY_PATH="/install_mic/lib64/"
   ./a.out

5. make check. Run tests (w/ emulator)
   export LD_LIBRARY_PATH="/install_host/lib64"
   export MKOFFLOAD="/install_mic/libexec/gcc/x86_64-unknown-linux-gnu/4.10.0/accel/x86_64-unknown-linux-gnu/mkoffload"
   export LIBGOMP_PLUGIN_PATH="/gcc_build/x86_64-unknown-linux-gnu/libgomp/plugins/intelmic"
   export MIC_LD_LIBRARY_PATH="/install_mic/lib64/"
   make check-target-libgomp

Do not delete build dir of the host compiler, since 'make install' for libgomp plugin is not working yet.
Also there might be an issue with building libgomp plugin when using relative path to the 'configure'.

It is GIT-only branch, name is: kyukhin/gomp4-offload
URL: https://gcc.gnu.org/git/?p=gcc.git;a=shortlog;h=refs/heads/kyukhin/gomp4-offload

--
Thanks, K


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]