Why doesn't OpenCL support recursion?

opencl, recursion

Solution

It is related to the target hardware, I think. To support recursion requires several hardware features that certain classes of OpenCL devices (ie. GPUs) don't have. Without them, maintaining a call stack and doing indirect code branching isn't practical. NVIDIA don't support recursion on all their CUDA capable hardware for the same reason.

Problem

I am currently working on a OpenCL project and I am wonder why it does not support recursion. Is it related to parallelism?

Original source

Related problems