my system uses a Radeon R7 and according to its GCN compliance it has 8 compute units on the die. If I run a ND-Range of 1 global thread and 1 local thread this one work group should run on one compute unit. What happens if I enqueue a child kernel from this work-group? Is it guaranteed to run on the same compute unit or is it treated as a "normal" kernel that can potentially run of another compute unit aswell?
Thanks for helping.
OpenCL standard doesn't say anything about the CUs where the child kernel will be processed. It only says that the child kernel will be enquequed to the same device where the parent kernel is running. It is better to treat the child kernel as any normal kernel which can be processed by any CUs within the same device depending on the scheduler.