#OPENCL#clBuildProgram失败,错误代码为-5
在GTX 750上使用clBuildProgram()时遇到问题。内核生成失败,错误代码为-5(CL_OUT_OF_RESOURCES),生成日志为空 有一种可能的解决方案,就是将'-cl nv verbose'作为输入选项添加到clBuildProgram()。然而,它并不适用于所有内核。 基于此,我尝试了另一个优化选项,即'-cl opt disable'。它也适用于某些内核 然后我就糊涂了#OPENCL#clBuildProgram失败,错误代码为-5,opencl,gpu,Opencl,Gpu,在GTX 750上使用clBuildProgram()时遇到问题。内核生成失败,错误代码为-5(CL_OUT_OF_RESOURCES),生成日志为空 有一种可能的解决方案,就是将'-cl nv verbose'作为输入选项添加到clBuildProgram()。然而,它并不适用于所有内核。 基于此,我尝试了另一个优化选项,即'-cl opt disable'。它也适用于某些内核 然后我就糊涂了 我找不到造成错误的真正原因 为什么不同的构建选项对某些内核有意义 该错误似乎与架构无关。因为相同的O
有人有想法吗 我能想到的可能原因:
private
)变量,尤其是数组,就会发生这种情况。每个内核只有一定数量的寄存器可用(取决于体系结构),编译器可能无法将它们“溢出”到全局内存中。如果这是问题所在,您可以尝试重新排列代码,使变量的作用域更为有限,或者尝试将一些数组移动到本地
内存中(请记住,这是在组中的工作项之间共享的,并且大小也有限)。一个好的GPU分析器/代码分析工具应该能够告诉你有多少寄存器压力,所以如果你已经让内核在某些硬件上工作,你应该能够找出寄存器压力,并为其他硬件得出结论2) 当使用某种形式的模板时,在现代GPU上仍然会发生这种情况(在同一个文件中反复使用相同的内核,但略有不同),您能给我推荐一个GPU分析器分析工具吗?我想测试寄存器压力。另一个问题,我使用了一个简单的opencl基准测试-矩阵乘法。在没有任何构建选项输入的情况下构建内核。然后我编写了一个python脚本来执行它。使用sudo python script.py不会出错,但是只有使用python脚本也会出现上述相同的错误。