From 091ddcc1b2199cdf8146fb00cf55ef9162e237b9 Mon Sep 17 00:00:00 2001 From: Andrew Stubbs Date: Tue, 29 Sep 2020 10:15:04 +0100 Subject: [PATCH] libgomp: Enforce 1-thread limit in subteams Accelerators with fixed thread-counts will break if nested teams are expected to have multiple threads each. libgomp/ChangeLog: 2020-09-29 Andrew Stubbs * parallel.c (gomp_resolve_num_threads): Ignore nest_var on nvptx and amdgcn targets. --- libgomp/parallel.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libgomp/parallel.c b/libgomp/parallel.c index 2423f11f44a..2fe4f573a32 100644 --- a/libgomp/parallel.c +++ b/libgomp/parallel.c @@ -48,7 +48,14 @@ gomp_resolve_num_threads (unsigned specified, unsigned count) if (specified == 1) return 1; - else if (thr->ts.active_level >= 1 && !icv->nest_var) + + if (thr->ts.active_level >= 1 + /* Accelerators with fixed thread counts require this to return 1 for + nested parallel regions. */ +#if !defined(__AMDGCN__) && !defined(__nvptx__) + && !icv->nest_var +#endif + ) return 1; else if (thr->ts.active_level >= gomp_max_active_levels_var) return 1; -- 2.30.2