Ubuntu Python逻辑错误:clGetPlatformIDs失败:未找到平台khr

Ubuntu Python逻辑错误:clGetPlatformIDs失败:未找到平台khr,ubuntu,pyopencl,Ubuntu,Pyopencl,在Ubuntu中对Python程序集进行测试时,出现错误: devices = [ d for d in cl.get_platforms()[0].get_devices() if LogicError: clGetPlatformIDs failed: platform not found khr File "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", line 30, in <module&

在Ubuntu中对Python程序集进行测试时,出现错误:

devices = [ d for d in cl.get_platforms()[0].get_devices() if
LogicError: clGetPlatformIDs failed: platform not found khr


File "/home/fateeva/prog/deflectometry/SGMFMeasurement/_PhaseShifts.py", line 30, in <module>
    devices = [ d for d in cl.get_platforms()[0].get_devices() if
LogicError: clGetPlatformIDs failed: platform not found khr
devices=[d代表cl中的d.get_platforms()[0]。如果
逻辑错误:clGetPlatformIDs失败:未找到平台khr
文件“/home/fateeva/prog/deformetry/SGMFMeasurement/_PhaseShifts.py”,第30行,in
devices=[d代表cl中的d。get_Platform()[0]。如果
逻辑错误:clGetPlatformIDs失败:未找到平台khr

如何修复它?

试试这个。它应该可以:

devices = [ d for d in cl.get_platforms()[0].get_devices(cl.device_type.GPU)]
如果要列出平台上的所有兼容设备,只需使用

platform = cl.get_platform()
my_devices = platform[0].get_devices(device_type = cl.devices_type.ALL)
print my_devices
要在任何兼容设备上创建上下文,请使用以下命令:

context = cl.Context([my_devices[<index>])
也可以参考我的这篇文章,这会有所帮助。我也有这样的问题:


这是一个错误。请尝试以下操作:

sudo apt-get install nvidia-settings
sudo nvidia-smi
或者以root用户身份运行它(不带sudo)

在那之后,你应该能够运行它


到/etc/rc.local(当然是在退出之前),因此每次启动后GPU都可用。

尝试以root身份运行python脚本。如果
cl.get_platforms()
没有在root下抛出任何错误,则用户没有足够的权限执行操作。要解决此问题,请安装
nvidia modprobe
软件包:

sudo apt-get install nvidia-modprobe

这可能是因为OpenCL驱动程序没有正确安装

英特尔CPU需要针对英特尔Core和英特尔至强处理器(16.1.1或更高版本)的OpenCL运行时。下载并安装OpenCL™ 英特尔网站上的最新运行时。忽略兼容性警告


来源:

您似乎已经安装了pyopencl,但没有实际的设备驱动程序。请参阅位于的文档

以下是对此类行为的描述:

请注意,如果没有提供通过OpenCL访问硬件的OpenCL设备驱动程序(所谓的“ICD”,即“可安装的客户端驱动程序”),PyOpenCL就没有乐趣(即无法运行代码)。如果您收到类似PyOpenCL.cffi_cl.LogicError:clGetPlatformIDs failed:,则意味着您没有安装OpenCL驱动程序

基本上,下一个命令应该足以让它在CPU上运行:

[pip]conda install pocl

要正确安装AMD和Nvidia设备,请查找供应商提供的OpenCL驱动程序。

调用cl.get_platforms()失败,因此此答案中的所有代码都不起作用。
sudo apt-get install nvidia-modprobe
[pip]conda install pocl