CUDA 和 MSI GT60 启用了 Optimus 的 GTX670M?

CUDA 和 MSI GT60 启用了 Optimus 的 GTX670M?

我有一台 MSI GT60 笔记本电脑,配备了启用了 Optimus 的 GTX 670M GPU,我一直在尝试在 Ubuntu 12.04 环境中运行 CUDA。我意识到 Linux 不支持 Optimus,但我读过以下帖子,其中提到 CUDA 适用于混合 GPU。

如何让 nVidia CUDA 或 OpenCL 在装有 nVidia 独立卡/Intel 集成显卡的笔记本电脑上运行?

我通过以下方式安装了 NVIDIA 驱动程序

    sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
    sudo apt-get update
    sudo apt-get install nvidia-current

最终的驱动程序版本是 302.17,据说从 295.59 开始支持 GTX 670M。我还从 NVIDIA 网站下载了 CUDA 4.2,并根据 nvidia-current 库对其进行了编译。

不幸的是,当我在 CUDA SDK 中运行 deviceQuery 时,我得到了以下输出

    cudaGetDeviceCount returned 38
    -> no CUDA-capable device is detected

检查 /proc/driver/nvidia/gpus/0/information 得到以下内容

    Model:           GeForce GTX 670M
    IRQ:             16
    GPU UUID:        GPU-????????-????-????-????-????????????
    Video BIOS:      ??.??.??.??.??
    Bus Type:        PCI-E
    DMA Size:        32 bits
    DMA Mask:        0xffffffffff
    Bus Location:    0000:01.00.0

以下是“lspci | grep VGA”的输出

    00:02.0 VGA compatible controller: Intel Corporation Ivy Bridge Graphics Controller (rev 09)
    01:00.0 VGA compatible controller: NVIDIA Corporation Device 1213 (rev ff)

那么...我做错了什么?

谢谢!

答案1

好的,我遇到了同样的问题。以下方法对我有用:

  • 安装 NVIDIA 开发人员驱动程序 (295.41),但不覆盖 opengl 文件:

    sudo stop lightdm
    sudo ./devdriver_4.2_linx_64_295.41.run --no-opengl-files
    

    这一点很重要不是勾选更改xorg.conf文件的选项

  • 按照惯例安装 CUDA 工具包(对我来说是 4.2,因为我需要 OpenCL)和代码示例

  • 如果你deviceQuery以超级用户身份运行它应该可以工作:

    sudo ./deviceQuery
    

所有这些都写在设备驱动程序的文档文件中/usr/share/doc/NVIDIA_GLX-1.0/(第 19 章)。

答案2

我遇到了和你一模一样的问题,虽然我不知道这个方法是否对你有用,但有一个解决方案。你可以安装 Bumblebee 或 Ironhide 驱动程序来启用 Linux 的 Optimus。Optimus 使用你的笔记本电脑在 2 个显卡之间切换,从而提高电池的性能。

相关内容