Python PyOpenCL在第一次运行时返回错误,然后仅返回';无效程序';错误;示例也不起作用

Python PyOpenCL在第一次运行时返回错误,然后仅返回';无效程序';错误;示例也不起作用,python,opencl,gpu,gpgpu,pyopencl,Python,Opencl,Gpu,Gpgpu,Pyopencl,我正在尝试使用pyOpenCL绑定运行OpenCL内核,以在GPU上运行。我试图将内核加载到我的程序中。我运行了一次程序,但出现了一个错误。我在不更改代码的情况下再次运行它,得到了一个不同的“无效程序”错误 这一直发生在我自己使用pyOpenCL的程序和示例程序上。我能够通过C++绑定在CPU和GPU上使用OpenCL,没有任何问题。因此,我认为这是一个特定于pyOpenCL绑定的问题 我的操作系统是LinuxMint17.164位。我的GPU是Intel HD graphics 4000第三代

我正在尝试使用
pyOpenCL
绑定运行
OpenCL
内核,以在GPU上运行。我试图将内核加载到我的程序中。我运行了一次程序,但出现了一个错误。我在不更改代码的情况下再次运行它,得到了一个不同的“无效程序”错误

这一直发生在我自己使用
pyOpenCL
的程序和示例程序上。我能够通过
C++
绑定在CPU和GPU上使用
OpenCL
,没有任何问题。因此,我认为这是一个特定于
pyOpenCL
绑定的问题

我的操作系统是LinuxMint17.164位。我的GPU是Intel HD graphics 4000第三代处理器。我通过安装
beignet
(请参阅)获得了对它的
OpenCL
支持。我正在使用
python2.7
opencl1.2

我第一次运行程序时,出现以下错误:

File "/usr/lib/python2.7/dist-packages/pyopencl/__init__.py", line 463, in kernel_call
    self.set_args(*args)
File "/usr/lib/python2.7/dist-packages/pyopencl/__init__.py", line 488, in kernel_set_args
    % (len(args), self.num_args))
AssertionError: length of argument list (4) and CL-generated number of arguments (9) do not agree
但后来我再次运行它,并开始出现不同的错误:

…然后我再次运行它,我从以前得到相同的“无效程序”错误

我不明白为什么在我第二次运行程序时错误会改变,因为在两次运行之间我没有改变代码中的任何内容

希望这足够清楚,谢谢。

我通过卸载
beignet
并安装最新版本
beignet 1.1.0
解决了这个问题


但是,让程序检测我的GPU设备并正常工作的唯一方法是以root用户身份运行它们。可能会针对该特定问题发布不同的问题。

未来访客:新问题在这里:@Han Kwangniennhuys谢谢,应该用链接更新!
File "/usr/lib/python2.7/dist-packages/pyopencl/__init__.py", line 206, in _build_and_catch_errors
    raise err
pyopencl.RuntimeError: clBuildProgram failed: invalid program - 

Build on <pyopencl.Device 'Intel HD Graphics Family' on 'Experiment Intel Gen OCL Driver' at 0x7fb77bf21720>:

(options: -I /usr/lib/python2.7/dist-packages/pyopencl/cl)
(source saved as /tmp/tmplLRgy9.cl)
File "/usr/lib/python2.7/dist-packages/pyopencl/__init__.py", line 436, in __getattr__
    return self.event.get_profiling_info(inf_attr)
pyopencl.RuntimeError: clGetEventProfilingInfo failed: profiling info not available