在Ubuntu中对Python程序集进行nosetest时,出现错误:
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
字符串
怎么可能修好它?
7条答案
按热度按时间noj0wjuj1#
看起来你已经安装了pyopencl,但是没有实际的设备驱动程序。请参考https://documen.tician.de/pyopencl/misc.html上的文档。
以下是对这种行为的描述:
请注意,如果没有OpenCL设备驱动程序(所谓的“ICD”,即“可安装的客户端驱动程序”),PyOpenCL就没有乐趣(即无法运行代码)。如果您收到类似于pyopencl.cffi_cl.LogicError:clGetPlatformIDs failed:的错误消息,则意味着您没有安装OpenCL驱动程序。
基本上,下一个命令应该足以让它在CPU上运行:
字符串
要正确安装AMD和Nvidia设备,请查找供应商提供的OpenCL驱动程序。
gc0ot86w2#
尝试
字符串
我在Ubuntu WSL for Windows 10,Python 3.8.10上测试了它。
qlckcl4x3#
这可能是因为OpenCL驱动程序没有正确安装。
英特尔CPU需要OpenCL用于英特尔酷睿和英特尔至强处理器(16.1.1或更高版本)。从英特尔网站下载并安装OpenCL™最新版本。忽略兼容性警告。
来源:https://youtu.be/AieYqNQ6ADM
acruukt94#
这是一个bug。试试这个:
字符串
或以root身份运行(不使用sudo)。
之后,你应该能够运行它。
添加
型
到/etc/rc.local(当然是在退出之前),这样你的GPU在每次 Boot 之后都可以使用。
hc2pp10m5#
尝试以root身份运行python脚本。如果
cl.get_platforms()
在root下没有抛出任何错误,则您的用户没有足够的权限执行此操作。要解决此问题,请安装nvidia-modprobe
包:字符串
Source
z18hc3ub6#
更新日期:
字符串
可能有用。对我有用。
az31mfrm7#
试试这个应该可以
字符串
如果您想列出平台上的所有兼容设备,只需使用
型
要在任何兼容设备上创建上下文,请使用以下命令:
型
其中对应于要为其创建上下文的设备。例如:
型
也参考我的这篇文章,它会有所帮助.我也有这个问题:
pyopencl:为特定设备创建上下文