random processing of working group in OpenCL

hi,

If i remenber the work group processing  use to be ramdom. It is still the case using Mali G715.

Or is there a way to force the GPU to work like a CPU, i mean processing the group in row order.

example : for a 2*2 group and a buffer of 10*10. the GPU would process data(0,1,10,11) then (2,3,12,13) until (8,9,18,19) then (20,21,30,31) exct ...

that would be great ;)) ;))

Parents
  • No, there is no way to guarantee workgroup execution order. 

    Doing "all(workgroup_A) then all(workgroup_B) then ..." would be hideously slow. GPUs are data parallel processors and need that data parallelism with lots of concurrently executing threads to fill the available hardware. Lots of small things running serially is a poor fit for a GPU architecture, and it may well be faster to run that workload on the CPU because GPUs are really not good at that style of processing.

    What's the actual problem are you trying to solve? 

Reply
  • No, there is no way to guarantee workgroup execution order. 

    Doing "all(workgroup_A) then all(workgroup_B) then ..." would be hideously slow. GPUs are data parallel processors and need that data parallelism with lots of concurrently executing threads to fill the available hardware. Lots of small things running serially is a poor fit for a GPU architecture, and it may well be faster to run that workload on the CPU because GPUs are really not good at that style of processing.

    What's the actual problem are you trying to solve? 

Children