[PATCH] D145591: [clang][HIP][OpenMP] Add warning if mixed HIP / OpenMP offloading

Artem Belevich via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Mar 9 13:56:46 PST 2023


tra added a comment.

In D145591#4182737 <https://reviews.llvm.org/D145591#4182737>, @yaxunl wrote:

> OpenMP offloading directives (e.g. "omp target") create implicit GPU kernels which require OpenMP toolchain to create offloading actions to support them. For C/C++ programs, OpenMP toolchain can create offloading actions to support the OpenMP offloading directives. For HIP programs, HIP toolchain can only do offloading for HIP, not for OpenMP, therefore the OpenMP offloading directives are ignored. However, the other OpenMP directives e.g. "omp parallel for" works on CPU without offloading toolchain support. Currently, the clang driver and OpenMP/HIP runtime are not ready to support both HIP and OpenMP offloading at the same time.

So, we essentially end up with GPU code intended to be used with different runtimes, and we only support one kind at a time.  OK. I think I'm getting a rough idea of what's going on.

Ignoring target openmp directives is clearly wrong, given that we do compile with -fopenmp and would normally expect openmp parts to be honored.
Issuing a warning does not feel right. Producing output with a missing key functionality is a bit too severe for a warning, IMO.
Making it an error would make most sense to me, but I'll defer to OpenMP folks on this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145591/new/

https://reviews.llvm.org/D145591



More information about the cfe-commits mailing list