Changeset View
Changeset View
Standalone View
Standalone View
openmp/libomptarget/deviceRTLs/common/src/libcall.cu
Show First 20 Lines • Show All 55 Lines • ▼ Show 20 Lines | if (parallelLevel[GetWarpId()] == 0) | ||||
rc = nThreads; | rc = nThreads; | ||||
ASSERT0(LT_FUSSY, rc >= 0, "bad number of threads"); | ASSERT0(LT_FUSSY, rc >= 0, "bad number of threads"); | ||||
PRINT(LD_IO, "call omp_get_max_threads() return %d\n", rc); | PRINT(LD_IO, "call omp_get_max_threads() return %d\n", rc); | ||||
return rc; | return rc; | ||||
} | } | ||||
EXTERN int omp_get_thread_limit(void) { | EXTERN int omp_get_thread_limit(void) { | ||||
if (__kmpc_is_spmd_exec_mode()) | if (__kmpc_is_spmd_exec_mode()) | ||||
return GetNumberOfThreadsInBlock(); | return __kmpc_get_hardware_num_threads_in_block(); | ||||
int rc = threadLimit; | int rc = threadLimit; | ||||
PRINT(LD_IO, "call omp_get_thread_limit() return %d\n", rc); | PRINT(LD_IO, "call omp_get_thread_limit() return %d\n", rc); | ||||
return rc; | return rc; | ||||
} | } | ||||
EXTERN int omp_get_thread_num() { | EXTERN int omp_get_thread_num() { | ||||
int rc = GetOmpThreadId(); | int rc = GetOmpThreadId(); | ||||
PRINT(LD_IO, "call omp_get_thread_num() returns %d\n", rc); | PRINT(LD_IO, "call omp_get_thread_num() returns %d\n", rc); | ||||
▲ Show 20 Lines • Show All 118 Lines • ▼ Show 20 Lines | EXTERN int omp_get_ancestor_thread_num(int level) { | ||||
} | } | ||||
PRINT(LD_IO, "call omp_get_ancestor_thread_num(level %d) returns %d\n", level, | PRINT(LD_IO, "call omp_get_ancestor_thread_num(level %d) returns %d\n", level, | ||||
rc) | rc) | ||||
return rc; | return rc; | ||||
} | } | ||||
EXTERN int omp_get_team_size(int level) { | EXTERN int omp_get_team_size(int level) { | ||||
if (__kmpc_is_spmd_exec_mode()) | if (__kmpc_is_spmd_exec_mode()) | ||||
return level == 1 ? GetNumberOfThreadsInBlock() : 1; | return level == 1 ? __kmpc_get_hardware_num_threads_in_block() : 1; | ||||
int rc = -1; | int rc = -1; | ||||
unsigned parLevel = parallelLevel[GetWarpId()]; | unsigned parLevel = parallelLevel[GetWarpId()]; | ||||
// If level is 0 or all parallel regions are not active - return 1. | // If level is 0 or all parallel regions are not active - return 1. | ||||
if (level == 1 && parLevel > OMP_ACTIVE_PARALLEL_LEVEL) { | if (level == 1 && parLevel > OMP_ACTIVE_PARALLEL_LEVEL) { | ||||
rc = threadsInTeam; | rc = threadsInTeam; | ||||
} else if (level == 0 || | } else if (level == 0 || | ||||
(level > 0 && parLevel < OMP_ACTIVE_PARALLEL_LEVEL && | (level > 0 && parLevel < OMP_ACTIVE_PARALLEL_LEVEL && | ||||
level <= parLevel) || | level <= parLevel) || | ||||
▲ Show 20 Lines • Show All 152 Lines • Show Last 20 Lines |