Значительное снижение производительности CUDA по сравнению с Windows, сделать Intel основным графическим процессором?

Значительное снижение производительности CUDA по сравнению с Windows, сделать Intel основным графическим процессором?

Я выполнил установку GPU TensorFlow на системе с двойной загрузкой ( Windows 10и Ubuntu 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... возможно, установка pip более болезненна, чем бинарная установка в Windows...

Идея вторая: если вышеперечисленное не поможет, я зайду в BIOS и принудительно включу интегрированную графику Intel.. сделаю переустановку и попробую установить графику Noveua.. примерно так:

Кажется, это ноутбук с поддержкой "Optimus".. Я не могу полностью отключить графический процессор nvidia для рендеринга, только включить гибридный режим. Возможно, я сделаю новую установку.. удалю все драйверы 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/-решено-запустить-cuda-на-выделенном-nvidia-gpu-при-подключении-мониторов-к-intel-hd-graphics-это-возможно-/

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

После долгих поисков, исканий... объединения... я успешно нашел проблему и исправил ее! Да, Intel GPU в Windows использовался, а в Linux он оставался неиспользованным... заставляя NVIDIA GPU отрисовывать экран и терять ресурсы.

Я переустановил свежую USB-флешку Ubuntu 16.04 поверх своей предыдущей системы.

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

После установки вам следует убедиться, что вы находитесь в режиме драйвера Intel Nouveau, а не в режиме фирменного драйвера Nvidia.

А теперь самое странное.

Пользователь указал на ту же проблему, но для настольных развертываний.

https://devtalk.nvidia.com/default/topic/991849/cuda-setup-and-installation/-решено-запустить-cuda-на-выделенном-nvidia-gpu-при-подключении-мониторов-к-intel-hd-graphics-это-возможно-/

по сути...

Подводя итог, для того, чтобы это заработало, вам нужно

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

Я использовал гибридный режим... так как нет опции только Intel

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.

Эта папка у меня вообще не существовала. Я все равно добавил default LD_LIBRARY_PATHи PATHизложил в посте инструкции install 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один раз... и вдруг все заработало.

обновление: к сожалению, перезагрузка сломала конфигурацию. Пока не знаю, как это исправить...

Связанный контент