缺少 OpenCL.so 文件/未找到 GPU

缺少 OpenCL.so 文件/未找到 GPU

我在尝试识别我的显卡时遇到了麻烦,不只是被识别,而且它还能够利用它的 OpenCL/GL 驱动程序主要用于游戏和比特币挖掘。

我有运行 Linux Mint 16(petra) (Cinnamon) 的 ASUS N56Vz,不太确定是否适合在这里发布有关 Linux Mint 的信息,但是 Linux Mint 和 Ubuntu 彼此之间并没有太大的区别,任何一个系统都会发生问题。

一个恼人的问题,我在互联网上搜索后似乎找不到答案,比特币矿工无法找到系统内置的 GPU 或 CPU。给我这个No GPU detectedCould not find libOpenCL.so.*

Linux ASUS 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

在发布我的问题之前,我确实在这里阅读过这个主题»在英特尔中打开 cl,我按照说明操作,Bitminter 可以正确检测到英特尔 CPU/GPU,但无法检测到我的辅助内置显卡 NVIDIA GeForce GT 630M。

linux - linux系统删除 VGA

00:02.0 VGA 兼容控制器:英特尔公司第三代酷睿处理器图形控制器(rev 09)

01:00.0 VGA 兼容控制器:NVIDIA Corporation GF108M [GeForce GT 630M] (rev ff)

系统似乎能正确检测到它们,但当涉及到 Bitminter 的比特币挖矿的 CPU/GPU 计算时,它们无法识别。此外,我在玩游戏时也注意到图形驱动程序无法正常工作。对于某些游戏,它们工作正常,但对于其他一些游戏,我得到的是黑色纹理图形,甚至是白色纹理图形,真的有点困惑,为什么它说它们被检测到了,但它们却不能像其他东西那样正常工作。

运行测试后,这是我使用 Beignet 测试 OpenCL 驱动程序的 Intel HD Graphics 输出。

Number of available platforms: 1
Platform names:
    [0] Experiment Intel Gen OCL Driver [Selected]
Number of devices available for each type:
    CL_DEVICE_TYPE_CPU: 0
    CL_DEVICE_TYPE_GPU: 1
    CL_DEVICE_TYPE_ACCELERATOR: 0

*** Detailed information for each device ***

CL_DEVICE_TYPE_GPU[0]
    CL_DEVICE_NAME: Intel HD Graphics Family
    CL_DEVICE_AVAILABLE: 1
    CL_DEVICE_VENDOR: Intel
    CL_DEVICE_PROFILE: FULL_PROFILE
    CL_DEVICE_VERSION: OpenCL 1.1
    CL_DRIVER_VERSION: 0.2
    CL_DEVICE_OPENCL_C_VERSION: OpenCL C 1.1
    CL_DEVICE_MAX_COMPUTE_UNITS: 128
    CL_DEVICE_MAX_CLOCK_FREQUENCY: 1000
    CL_DEVICE_MAX_WORK_GROUP_SIZE: 512
    CL_DEVICE_ADDRESS_BITS: 32
    CL_DEVICE_MEM_BASE_ADDR_ALIGN: 32
    CL_DEVICE_MAX_MEM_ALLOC_SIZE: 134217728
    CL_DEVICE_GLOBAL_MEM_SIZE: 4
    CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 65536
    CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: 8192
    CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: 128
    CL_DEVICE_LOCAL_MEM_SIZE: 65536
    CL_DEVICE_PROFILING_TIMER_RESOLUTION: 80
    CL_DEVICE_IMAGE_SUPPORT: 1
    CL_DEVICE_ERROR_CORRECTION_SUPPORT: 0
    CL_DEVICE_HOST_UNIFIED_MEMORY: 0
    CL_DEVICE_EXTENSIONS: cl_khr_global_int32_base_atomics     cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics     cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_fp64 cl_khr_icd     cl_khr_gl_sharing
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: 16
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: 16
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: 16
    CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: 0
    CL_DEVICE_NATIVE_VECTOR_WIDTH_INT: 16
    CL_DEVICE_NATIVE_VECTOR_WIDTH_LONG: 16
    CL_DEVICE_NATIVE_VECTOR_WIDTH_FLOAT: 16
    CL_DEVICE_NATIVE_VECTOR_WIDTH_DOUBLE: 16

我安装了最新的 Nvidia 驱动程序,或者我认为可以从存储库中获取的最新版本,nvidia-319-updates我已经检查了我的 Intel CPU 和 NVIDIA 卡型号,它们兼容 OpenCL/GL。根据 NVIDIA 驱动程序主页,NVIDIA GeForce GT 630M 内置有 CUDA 支持。

我知道 NVIDIA 的图形支持有点不完善,而且有点不稳定,因为目前它们仍然适用于 Linux,即使安装了 NVIDIA 自己的官方驱动程序版本也是如此。我的华硕笔记本电脑能够进行混合图形切换,据我在 Google 上搜索到的,在 Linux 上也可以做到这一点,但需要进行一些调整等,以便它可以随时在 Intel HD Graphics/Nvidia 之间切换,而无需重新启动。

inxi -Gx
Graphics:  Card-1: Intel 3rd Gen Core processor Graphics Controller bus-ID: 00:02.0 
           Card-2: NVIDIA GF108M [GeForce GT 630M] bus-ID: 01:00.0 
           X.Org: 1.14.5 drivers: intel (unloaded: fbdev,vesa) Resolution: [email protected] 
           GLX Renderer: Mesa DRI Intel Ivybridge Mobile GLX Version: 1.4 (3.0 Mesa 9.2.1) Direct Rendering: No

正如在那里看到的,它说fbdev并且vesa被卸载,我不知道这是否是它无法正确加载的原因,我应该尝试以某种方式启用它们。

回到主要问题,问题是libOpenCL.so系统缺少文件,该文件应该在里面/usr/lib/或类似的东西,只需运行nvidia-detector即可返回none到终端屏幕。我bumblebee-nvidia也安装了,但这似乎也不能使它像 CUDA 相关库一样工作。

我有点迷失了方向,试图找到一个答案来让它工作,但除了在谷歌上搜索弹出的某些特定错误之外没有找到太多结果。

答案1

我遇到了类似的问题(但不相同),我安装了它boinc-amd-opencl(我使用突触包管理器来找到它,但apt-get应该可以工作),然后我重新启动,它现在可以检测到我的视频卡。

希望这可以帮助。

相关内容