-
Notifications
You must be signed in to change notification settings - Fork 229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Option blockinner=True might break jit-compilation #320
Comments
A second instance of this bug, which might not be immediately obvious, arises when there are no loop-carried dependencies in the time loop and the DLE decides to parallelise across time. For example a trivial kernel such as
which the GCC compiler errors on with OpenMP. An example can be found in PR #457. |
It seems to me that this kind of code is illegal according to the OpenMP standard.
where |
in fact, there's a difference between my original issue and the later reports:
However, the reference says that in both cases a loop should be in canonical form. Probably what's happening here is that the Intel compiler does more than the standard. What we have to do is to tweak the compiler to generate omp-friendly code |
the solution to this appears to be the OpenMP here a nice example showing how to use it. It shouldn't be too complicated; I'll try it soon |
Is this the case, if yes is there a reproducible script ? |
I suppose this is outdated now. Need to be reopen as an |
if you run tti and do loop blocking over all space loops, you'll see the error. But I've got in mind a work around , so I'd prefer to leave this issue open for now |
Current code generation with
DSE=aggressive
might break in some examples (e.g., TTI) if the backend compiler is not ICC, as GCC doesn't like#pragma omp simd
if the following loop has more then one index variable. This should be fixed by tweaking code generation, or by waiting for GCC guys to fix their compiler (in fact, the Devito generated code is legal OpenMP code)EDIT 1: needs 3D blocking
EDIT 2: at least
gcc >= 4.9
(previous versions don't recognise#pragma omp simd
)The text was updated successfully, but these errors were encountered: