We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
libperf.c
ucx_perf_do_warmup
Most code in UCX that uses OpenMP is guarded to check that OpenMP is enabled. If it is not, there is fallback logic that doesn't use OpenMP
For example this happens in libperf_thread.c where an OpenMP block is provided if OpenMP is found
libperf_thread.c
ucx/src/tools/perf/lib/libperf_thread.c
Lines 21 to 25 in 3c6b20d
Otherwise a non-OpenMP fallback is provided
Lines 138 to 147 in 3c6b20d
As a result any #pragma omp lines live in the OpenMP enabled block
#pragma omp
Line 44 in 3c6b20d
So are not encountered outside it
With libperf.c however the OpenMP #include is optional
#include
ucx/src/tools/perf/lib/libperf.c
Lines 26 to 28 in 3c6b20d
Though later in the code #pragma omp is not guarded
Lines 1702 to 1706 in 3c6b20d
As a result building without OpenMP leads to errors like this
make[3]: Entering directory '/home/conda/feedstock_root/build_artifacts/ucx-split_1714181624237/work/src/tools/perf/lib' CC libucxperf_la-libperf.lo CC libucxperf_la-libperf_memory.lo libperf.c: In function 'ucx_perf_do_warmup': libperf.c:1356: error: ignoring '#pragma omp barrier' [-Werror=unknown-pragmas] 1356 | #pragma omp barrier | libperf.c:1357: error: ignoring '#pragma omp single' [-Werror=unknown-pragmas] 1357 | #pragma omp single copyprivate(status) | libperf.c:1360: error: ignoring '#pragma omp barrier' [-Werror=unknown-pragmas] 1360 | #pragma omp barrier |
This comes from a UCX 1.16.0 build. Here is the full build log
Would it be possible to guard the OpenMP code above and provide a fallback to allow building without OpenMP?
The text was updated successfully, but these errors were encountered:
libcudart
Successfully merging a pull request may close this issue.
Most code in UCX that uses OpenMP is guarded to check that OpenMP is enabled. If it is not, there is fallback logic that doesn't use OpenMP
For example this happens in
libperf_thread.c
where an OpenMP block is provided if OpenMP is founducx/src/tools/perf/lib/libperf_thread.c
Lines 21 to 25 in 3c6b20d
Otherwise a non-OpenMP fallback is provided
ucx/src/tools/perf/lib/libperf_thread.c
Lines 138 to 147 in 3c6b20d
As a result any
#pragma omp
lines live in the OpenMP enabled blockucx/src/tools/perf/lib/libperf_thread.c
Line 44 in 3c6b20d
So are not encountered outside it
With
libperf.c
however the OpenMP#include
is optionalucx/src/tools/perf/lib/libperf.c
Lines 26 to 28 in 3c6b20d
Though later in the code
#pragma omp
is not guardeducx/src/tools/perf/lib/libperf.c
Lines 1702 to 1706 in 3c6b20d
As a result building without OpenMP leads to errors like this
This comes from a UCX 1.16.0 build. Here is the full build log
Would it be possible to guard the OpenMP code above and provide a fallback to allow building without OpenMP?
The text was updated successfully, but these errors were encountered: