CUDA 与 Windows 相比性能严重不足,英特尔是否成为主要 GPU?

CUDA 与 Windows 相比性能严重不足,英特尔是否成为主要 GPU?

我已经在双启动系统上安装了 GPU TensorFlow(Windows 10Ubuntu 16.04.x

两个操作系统的驱动程序版本大致相同

Lenovo P50 laptop with Nvidia Quadro M1000M    

Windows 376.51 nvidia driver version
Ubuntu  375.66 nvidia driver version

我训练一个深度学习模型,每个训练集所花费的时间差别很大

Windows 10   + Tensorflow 1.3 GPU + CUDA =  8 min. per epoch
Ubuntu 16.04 + Tensorflow 1.3 GPU + CUDA = 45 min. per epoch

Ubuntu 安装是通过所有默认设置进行的apt-get(不是源安装),并且pip

到目前为止,我唯一的想法是……我必须使用 NVIDIA GPU 来绘制图形……而不是利用所有的 GPU 进行计算……有没有办法检查这一点?我在两台电脑上都安装了所有东西……包括CUDA 8.x

我甚至不清楚问题是什么,但看起来驱动程序设置为使用 Optimus...也许我需要将其切换到不同的配置文件?

在此处输入图片描述

想法一:我明天可能会尝试从源代码重新编译 tensorflow..使用 Ubuntu 16.x 中的所有 CPU 优化..也许 pip 安装比 Windows 上的二进制安装更痛苦......

想法二:如果上述方法不起作用,我将进入 BIOS 并强制使用英特尔集成显卡...重新安装并尝试安装 noveua 显卡...有点像这样:

看来这是一台启用了“Optimus”的笔记本电脑。我无法完全关闭 nvidia gpu 进行渲染,只能启用混合模式。也许我会重新安装。删除所有 nvidia 驱动程序,看看我是否能让 X 以这种方式工作。?

http://guanghan.info/blog/en/my-works/building-our-personal-deep-learning-rig-gtx-1080-ubuntu-16-04-cuda-8-0rc-cudnn-7-tensorflowmxnetcaffedarknet/

"So I went to BIOS and set the integrated graphics as default and 
restart. Remember to switch the HDMI from the port on GTX1080 to that 
on the motherboard. Now the display works well. I successfully 
installed Ubuntu following its prompt guides."

https://devtalk.nvidia.com/default/topic/991849/-solved-run-cuda-on-dedicated-nvidia-gpu-while-connecting-monitors-to-intel-hd-graphics-is-this-possible-/

When installing the NVIDIA display driver, be sure to:

1. not install the openGL libs (there are command line options with 
driver runfile installers or CUDA runfile installers to allow this)
2. make sure not to make any changes to the xorg.conf configuration.

答案1

经过大量的搜索、整合……我成功找到问题并修复了它!是的,Windows 中的 Intel GPU 正在被使用,而在 Linux 中它却未被使用……迫使 NVIDIA GPU 绘制屏幕并浪费资源。

我在以前的系统上重新安装了全新的 Ubuntu 16.04 USB 棒。

During reinstallation choose updates, but don't use 3rd party libraries

安装后,您应该验证您处于英特尔新型驱动程序模式,而不是 Nvidia 的专有驱动程序。

现在到了奇怪的部分

这里的一位用户指出了同样的问题,但针对的是桌面部署

https://devtalk.nvidia.com/default/topic/991849/cuda-setup-and-installation/-solved-run-cuda-on-dedicated-nvidia-gpu-while-connecting-monitors-to-intel-hd-graphics-is-this-possible-/

基本上...

总而言之,为了使这个工作正常进行,你需要

1. make sure you have enabled onboard graphics in the BIOS settings (or set it as primary)

我使用了混合模式,因为没有英特尔专属选项

2. install both xorg intel driver and nvidia/cuda drivers

这里你需要传递标志

--no-opengl-files //for the driver install I choose latest (384)

--no-openfl-libs // cuda 8.0 + patch here ..

确保禁用 nouveau .. 以及说明中概述的所有步骤..

了解你是否优秀的主要方法..安装glmark2并始终确保它输出信息

3. start nvidia-settings, and go to the PRIME settings page, set Intel (Power Saving Mode) as default
4. modify your .bashrc and set LD_LIBRARY_PATH to at least contain /usr/local/cuda/lib64:/usr/lib/nvidia-XXX where XXX in my case is 375.

这个文件夹对我来说根本不存在。我仍然添加了默认文件夹LD_LIBRARY_PATH,并PATH在安装后的 cuda 说明中进行了概述

4. logout to restart X or reboot
5. run glmark2 to confirm GL status

因为你应该安装而不安装 opengl 文件。这也许是不必要的

<strike>6. (update) if the libGL printed from step 5 points to nvidia's driver folder, you need to remove/rename the libGL.so*/libGLX.so*/libGLdispatch.so* under nvidia driver folder so that your OS can pick up the mesa libGL library.</strike>


7. run nvidia-smi to list your dedicated NVIDIA GPU, and run your CUDA program, you should not see any errors.

这对我来说不起作用,直到我跑了nvidia-modprobe一次...然后突然一切都起作用了。

更新:遗憾的是,重新启动破坏了配置。尚不清楚如何修复...

相关内容