Changeset View
Changeset View
Standalone View
Standalone View
openmp/trunk/libomptarget/deviceRTLs/nvptx/src/libcall.cu
Show First 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | |||||
EXTERN int omp_get_max_threads(void) { | EXTERN int omp_get_max_threads(void) { | ||||
omptarget_nvptx_TaskDescr *currTaskDescr = getMyTopTaskDescriptor(); | omptarget_nvptx_TaskDescr *currTaskDescr = getMyTopTaskDescriptor(); | ||||
int rc = 1; // default is 1 thread avail | int rc = 1; // default is 1 thread avail | ||||
if (!currTaskDescr->InParallelRegion()) { | if (!currTaskDescr->InParallelRegion()) { | ||||
// not currently in a parallel region... all are available | // not currently in a parallel region... all are available | ||||
rc = GetNumberOfProcsInTeam(); | rc = GetNumberOfProcsInTeam(); | ||||
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 %\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) { | ||||
// per contention group.. meaning threads in current team | // per contention group.. meaning threads in current team | ||||
omptarget_nvptx_TaskDescr *currTaskDescr = getMyTopTaskDescriptor(); | omptarget_nvptx_TaskDescr *currTaskDescr = getMyTopTaskDescriptor(); | ||||
int rc = currTaskDescr->ThreadLimit(); | int rc = currTaskDescr->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); | ||||
▲ Show 20 Lines • Show All 120 Lines • ▼ Show 20 Lines | if (level <= totLevel) { | ||||
ASSERT0(LT_FUSSY, currTaskDescr, | ASSERT0(LT_FUSSY, currTaskDescr, | ||||
"do not expect fct to be called in a non-active thread"); | "do not expect fct to be called in a non-active thread"); | ||||
do { | do { | ||||
if (DON(LD_IOD)) { | if (DON(LD_IOD)) { | ||||
// print current state | // print current state | ||||
omp_sched_t sched = currTaskDescr->GetRuntimeSched(); | omp_sched_t sched = currTaskDescr->GetRuntimeSched(); | ||||
PRINT(LD_ALL, | PRINT(LD_ALL, | ||||
"task descr %s %d: %s, in par %d, dyn %d, rt sched %d," | "task descr %s %d: %s, in par %d, dyn %d, rt sched %d," | ||||
" chunk %lld; tid %d, tnum %d, nthreads %d\n", | " chunk %" PRIu64 "; tid %d, tnum %d, nthreads %d\n", | ||||
"ancestor", steps, | "ancestor", steps, | ||||
(currTaskDescr->IsParallelConstruct() ? "par" : "task"), | (currTaskDescr->IsParallelConstruct() ? "par" : "task"), | ||||
currTaskDescr->InParallelRegion(), currTaskDescr->IsDynamic(), | currTaskDescr->InParallelRegion(), currTaskDescr->IsDynamic(), | ||||
sched, currTaskDescr->RuntimeChunkSize(), | sched, currTaskDescr->RuntimeChunkSize(), | ||||
currTaskDescr->ThreadId(), currTaskDescr->ThreadsInTeam(), | currTaskDescr->ThreadId(), currTaskDescr->ThreadsInTeam(), | ||||
currTaskDescr->NThreads()); | currTaskDescr->NThreads()); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | |||||
EXTERN void omp_set_schedule(omp_sched_t kind, int modifier) { | EXTERN void omp_set_schedule(omp_sched_t kind, int modifier) { | ||||
PRINT(LD_IO, "call omp_set_schedule(sched %d, modif %d)\n", (int)kind, | PRINT(LD_IO, "call omp_set_schedule(sched %d, modif %d)\n", (int)kind, | ||||
modifier); | modifier); | ||||
if (kind >= omp_sched_static && kind < omp_sched_auto) { | if (kind >= omp_sched_static && kind < omp_sched_auto) { | ||||
omptarget_nvptx_TaskDescr *currTaskDescr = getMyTopTaskDescriptor(); | omptarget_nvptx_TaskDescr *currTaskDescr = getMyTopTaskDescriptor(); | ||||
currTaskDescr->SetRuntimeSched(kind); | currTaskDescr->SetRuntimeSched(kind); | ||||
currTaskDescr->RuntimeChunkSize() = modifier; | currTaskDescr->RuntimeChunkSize() = modifier; | ||||
PRINT(LD_IOD, "omp_set_schedule did set sched %d & modif %d\n", | PRINT(LD_IOD, "omp_set_schedule did set sched %d & modif %" PRIu64 "\n", | ||||
(int)currTaskDescr->GetRuntimeSched(), | (int)currTaskDescr->GetRuntimeSched(), | ||||
currTaskDescr->RuntimeChunkSize()); | currTaskDescr->RuntimeChunkSize()); | ||||
} | } | ||||
} | } | ||||
EXTERN omp_proc_bind_t omp_get_proc_bind(void) { | EXTERN omp_proc_bind_t omp_get_proc_bind(void) { | ||||
PRINT0(LD_IO, "call omp_get_proc_bin() is true, regardless on state\n"); | PRINT0(LD_IO, "call omp_get_proc_bin() is true, regardless on state\n"); | ||||
return omp_proc_bind_true; | return omp_proc_bind_true; | ||||
▲ Show 20 Lines • Show All 190 Lines • Show Last 20 Lines |