Ubuntu pyopencl错误:未定义符号:clCreateSubDevices
我已经安装了pyopencl。当我尝试时: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-
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