Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我目前正在开发一个 OpenCL 项目,我想知道为什么它不支持递归。它与并行性有关吗?
我认为它与目标硬件有关。支持递归需要一些特定类别的 OpenCL 设备(即 GPU)所不具备的硬件功能。没有它们,维护调用堆栈和进行间接代码分支是不切实际的。出于同样的原因,NVIDIA 不支持所有支持 CUDA 的硬件上的递归。
它不是 OpenCL,而是它的 GPU 硬件。AMD 已经制定了支持递归的未来指令集架构。GPU 有大量的寄存器(高达 32 K)。所以要小心要求和得到什么。对于递归调用,推送/弹出 32K 寄存器不会很快。