OpenCL 在 11.10 上损坏,但 CUDA 可以运行

OpenCL 在 11.10 上损坏,但 CUDA 可以运行

我有两个 GPU,一个是 AMD(fglrx-updates),另一个是 nVidia(nvidia-current),驱动程序来自 x-swat PPA。AMD 卡由 xorg 使用(没有问题)。两个设备都显示在lspci|grep VGA

01:00.0 VGA compatible controller: ATI Technologies Inc Device 6718
02:00.0 VGA compatible controller: nVidia Corporation Device 1200 (rev a1)

nvidia 内核模块已加载(dmesg|grep nvidia):

[   16.033488] nvidia 0000:02:00.0: enabling device (0000 -> 0003)
[   16.033501] nvidia 0000:02:00.0: PCI INT A -> GSI 40 (level, low) -> IRQ 40
[   16.033507] nvidia 0000:02:00.0: setting latency timer to 64

OpenCL 问题

我创建了/etc/OpenCL/vendors/nvidia.icd包含

/usr/lib/nvidia-current/libcuda.so

检测到设备,平台NVIDIA CUDA,设备GeForce GTX 560 Ti。但是,没有为设备编译代码,clBuildProgram总是返回CL_BUILD_RPOGRAM_FAILURE查询clGetProgramBuildInfo崩溃并带有不具信息性的回溯

#0  0x00007ffff7442bef in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff22c0e67 in ?? () from /usr/lib/nvidia-current/libcuda.so

该程序是cl.h基于英特尔的 SDK 构建的;这没问题,因为在我安装 AMD 卡之前一切都很好。

运行/usr/share/doc/python-pyopencl/examples/benchmark.py同样崩溃(在pyopencl::program::get_build_info)。

有什么提示表明哪里出了问题吗?

答案1

实现可能无法 dlopen 它使用的某个库,请尝试使用 运行您的应用程序LD_LIBRARY_PATH=/usr/lib/nvidia-current:$LD_LIBRARY_PATH ./yourapp,如果这没有帮助,请使用 strace 运行它,并查找无法加载的库并调整路径以便可以找到它们。

相关内容