Ubuntu pyopencl错误:未定义符号:clCreateSubDevices

Ubuntu pyopencl错误:未定义符号:clCreateSubDevices,ubuntu,opencl,x86-64,pyopencl,ubuntu-13.10,Ubuntu,Opencl,X86 64,Pyopencl,Ubuntu 13.10,我已经安装了pyopencl。当我尝试时: python /home/a/pyopencl/examples/benchmark.py 那么我有一个错误: Traceback (most recent call last): File "/home/a/pyopencl/examples/benchmark.py", line 6, in <module> import pyopencl as cl File "/usr/local/lib/python2.7/dist-

我已经安装了pyopencl。当我尝试时:

 python /home/a/pyopencl/examples/benchmark.py
那么我有一个错误:

 Traceback (most recent call last):
 File "/home/a/pyopencl/examples/benchmark.py", line 6, in <module>
 import pyopencl as cl
 File "/usr/local/lib/python2.7/dist-packages/pyopencl-2013.3-py2.7-linux-   
 x86_64.egg/pyopencl/__init__.py", line 28, in <module>
 import pyopencl._cl as _cl
 ImportError: /usr/local/lib/python2.7/dist-packages/pyopencl-2013.3-py2.7-linux-     
 x86_64.egg/pyopencl/_cl.so: undefined symbol: clCreateSubDevices

clCreateSubDevices是在OCL1.2中引入的。上次我检查NVIDIA仍然不支持OCL1.2。也许最近它变了。。。最好检查一下


您可以使用
类pyopencl.Device
查询您可以使用哪个版本的OCL。文档。

找到了pyopencl人自己发布的解决方案:

解决方案:添加

CL_假装_VERSION=“1.1”

到siteconf.py

问题:如果为CL 1.2提供PyOpenCL头,然后编译 针对不实现1.2功能的ICD加载程序(例如。 clCreateSubDevice),然后你得到了这个破损。以上修正了,, 通过强制PyOpenCL忽略1.2

安德烈亚斯

但现在我还有另一个错误:

  File "/usr/local/lib/python2.7/dist-packages/pytools-2014.3.5-py2.7.egg/pytools/__init__.py", line 5, in <module>
from six.moves import range, zip, intern, input
ImportError: cannot import name intern
文件“/usr/local/lib/python2.7/dist-packages/pytools-2014.3.5-py2.7.egg/pytools/_-init___;.py”,第5行
从六步开始。移动导入范围、zip、实习生、输入
导入错误:无法导入名称实习生

如果有人偶然发现了这一点,并且想知道在哪里可以找到siteconf.py。您必须获取pyopencl源代码(从github克隆),然后在存储库中运行
python configure.py
,然后将创建
siteconf.py
。编辑后,您可以运行
pip安装。
来安装它。
ImportError
是由于six的一个过时版本造成的,只需更新它
pip install——升级six即可修复。
+------------------------------------------------------+                       
| NVIDIA-SMI 4.304.88   Driver Version: 304.88         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name                     | Bus-Id        Disp.  | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap| Memory-Usage         | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 770          | 0000:01:00.0     N/A |                  N/A |
| 25%   29C  N/A     N/A /  N/A |   7%  149MB / 2047MB |     N/A      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+
 ls /etc/OpenCL/vendors
 nvidia.icd



 locate libOpenCL.so


 /etc/alternatives/x86_64-linux-gnu_libOpenCL.so
 /etc/alternatives/x86_64-linux-gnu_libOpenCL.so_lib32
 /usr/lib/libOpenCL.so
 /usr/lib/x86_64-linux-gnu/libOpenCL.so
 /usr/lib32/libOpenCL.so

  nvcc --version
  nvcc: NVIDIA (R) Cuda compiler driver
  Copyright (c) 2005-2012 NVIDIA Corporation
  Built on Fri_Sep_21_17:28:58_PDT_2012
  Cuda compilation tools, release 5.0, V0.2.1221
  File "/usr/local/lib/python2.7/dist-packages/pytools-2014.3.5-py2.7.egg/pytools/__init__.py", line 5, in <module>
from six.moves import range, zip, intern, input
ImportError: cannot import name intern