MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / Worker

Function Worker

ngscuda/cuda_tasks.cpp:44–64  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42 __device__ static TQueue * queue;
43
44 __device__ void Worker()
45 {
46 stop = false;
47
48 TPToken ptoken(*queue);
49 TCToken ctoken(*queue);
50
51 while(true)
52 {
53 if (stop) break;
54
55 Task task;
56 if(!queue->try_dequeue_from_producer(ptoken, task))
57 if(!queue->try_dequeue(ctoken, task))
58 continue;
59
60 (*task.pfunc)(task.nr, task.size);
61 // (*task.cnt)++;
62 atomicAdd(task.cnt, 1);
63 }
64 }
65
66__global__ void StopWorkers()
67{

Callers 1

RunAllFunction · 0.85

Calls 3

atomicAddFunction · 0.85
try_dequeueMethod · 0.80

Tested by

no test coverage detected