-
Notifications
You must be signed in to change notification settings - Fork 74
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
[Refactor] CI job generator: define in the version.py which backend combinations should be tested #2099
[Refactor] CI job generator: define in the version.py which backend combinations should be tested #2099
Conversation
1d8a968
to
9a30ae8
Compare
The failed TSAN job is independent of this PR, see #2101. |
There is no rule, which requires an enabled OpenMP2 backend for alpaka/script/job_generator/versions.py Lines 37 to 53 in 9a30ae8
@psychocoderHPC Any opinion about the behavior? |
@SimeonEhrig looks good for me. |
# https://github.com/alpaka-group/alpaka/issues/639 | ||
# therefore a extra combination is required | ||
[ | ||
ALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLE, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How can I see that this is for clang-cuda except by the comment? So I am wondering how the generator know that for clang-cuda this configuration should be used and not the first entry in BACKENDS
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You cannot see it directly in code, because it is decided by filter rules. So clang-cuda
requires ALPAKA_ACC_GPU_CUDA_ENABLE
and does not allow the OMP2
backends:
alpaka/script/job_generator/alpaka_filter.py
Lines 48 to 56 in 9a30ae8
# OpenMP is not supported for clang as cuda compiler | |
# https://github.com/alpaka-group/alpaka/issues/639 | |
if row_check_name(row, DEVICE_COMPILER, "==", CLANG_CUDA) and ( | |
row_check_backend_version(row, ALPAKA_ACC_CPU_B_OMP2_T_SEQ_ENABLE, "==", ON_VER) | |
or row_check_backend_version( | |
row, ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE, "==", ON_VER | |
) | |
): | |
return False |
You can check if a compiler backend passes the filter with ajc-validate
tool (except the alpaka filter, I need to implement support for this 🤔 ).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a few suggestions:
2c6e995
to
8391949
Compare
I stopped the merge process, because I found a bug in #2102 which already exist in this PR. The bug is simply not triggered, because we don't use a specific combination of enabled backends. |
… should be tested - Before, the backends was enabled depending on the host and device compiler. - For each host device compiler combination only one backend combination was possible. - Now, the backend combinations are defined in the versions.py and each combination can be combined with a host device compiler combination, if no filter rule forbid it. - Add filter rule to disable OpenMP for Clang-CUDA.
8391949
to
52a4892
Compare
@j-stephan The bug is fixed in the Therefore the PR is ready to merge. Since your last review I only increased |
Before, the backends was enabled depending on the host and device compiler.
For each host device compiler combination only one backend combination was possible.
Now, the backend combinations are defined in the versions.py and each combination can be combined with a host device compiler combination, if no filter rule forbid it.
Is preparation for enabling GCC and Clang CPU tests in the GitLab CI.
Should solve also issue #639-> no, see here