2014-06-14 24 views
3

使用Ubuntu python-pyopencl软件包进行安装后,PyOpenCL无法访问我的Nvidia设备。这种安装PyOpenCL的方法用于使用相同的硬件和相同版本的Ubuntu(14.10)。PyOpenCL Ubuntu Nvidia - 未找到平台

当运行pyopencl.get_platforms()的错误信息是:

LogicError: clGetPlatformIDs failed: platform not found khr 

我曾尝试不同的驱动程序,不同的封装的组合,以及一个新安装的操作系统。

如何使PyOpenCl在Ubuntu上安装Nvidia卡?

更新1

一个全新安装后的操作系统,get_platforms()显示了两个平台:AMD和英特尔(贝奈特饼)。 Nvidia仍然无法正常工作。

更新2

http://wiki.tiker.net/OpenCLHowTo尝试了一些事情后,python-pyopencl包现在抛出一个错误。

The following packages have unmet dependencies: 

python-pyopencl: Depends: libgcc1 (>= 1:4.1.1) but 1:4.9.0-6ubuntu1 is to be installed 
       Depends: libopencl-1.1-1 but it is a virtual package 
       Depends: libopencl-1.2-1 but it is a virtual package 
       Depends: python-numpy (>= 1:1.8.0) but 1:1.8.1-1ubuntu1 is to be installed 
       Depends: python-numpy-abi9 but it is a virtual package 
       Depends: python (< 2.8) but 2.7.6-2 is to be installed 
       Depends: python-pytools (>= 2013.5.2) but 2014.2.1-1 is to be installed 
+0

其中NVIDIA显卡驱动程序,您使用(英特尔图形卡)?我认为Ubuntu默认使用'nouveau'开源驱动程序,我不确定它具有opencl支持。您可以通过查看/var/log/Xorg.0.log找到驱动程序,其中会有一行像'Loading/usr/lib64/xorg/modules/drivers/...' – brm

+0

现在我拥有Nvidia 331更新驱动程序安装 – benshope

+0

我有同样的问题。它看起来像nvidia-libopencl1-346(我使用的驱动程序)与pyopencl依赖树中的某些内容冲突。 – gnarbarian

回答

2

请确保您有在/ dev/NVIDIA *,这只能作为根默认访问正确的权限。另外也可以使用sudo运行。

1

尝试以根用户身份运行您的python脚本。如果cl.get_platforms()在根目录下不会引发任何错误,那么您的用户没有足够的权限来执行操作。为了解决这个问题,安装nvidia-modprobe包:

sudo apt-get install nvidia-modprobe 

为了进一步解释,你可以read this blog

0

这个命令来解决这个问题,我在Ubuntu

sudo apt-get install opencl-headers