Сбой CUDA при попытке использовать как встроенную iGPU, так и дискретную карту Nvidia. Как я могу использовать как дискретный NVIDIA, так и интегрированный (встроенный) Intel GPU?
Недавно у меня были некоторые проблемы с тем, чтобы мой компьютер (ivybridge) использовал встроенный графический процессор (intel igpu HD4000) для обычного использования экрана, в то время как я запускаю свои программы CUDA для вычислений на дискретном Nvidia GT 640, который есть на моей машине. Проблема заключалась в том, что при отображении iGPU CUDA не сможет обнаружить карту nvidia, а драйверы nvidia вообще не будут загружаться.
Имейте в виду, что существуют подтвержденные проблемы (в основном в отношении параллелизма) при использовании драйверов окон nvidia для устройств отображения, а также хотите использовать CUDA. Эти проблемы могут быть переопределены, когда вы используете Intel GPU в качестве дисплея (таким образом, загружая только минимальную часть упомянутых драйверов Nvidia) и во многих случаях отсутствуют с драйверами nvidia для дистрибутивов Linux.
После многих проблем с плохим программным обеспечением, таким как virtu mvp, я обнаружил, что решение действительно простое, но нигде не найдено.
Я размещаю это здесь в надежде, что это помогает. Пожалуйста, оставляйте любые комментарии, чтобы сделать ответы более полными, даже если это не удается для некоторых конфигураций ПК, поэтому мы можем уточнить инструкции для более широкого диапазона сценариев.
1 ответ
Вы должны установить драйверы для вашего встроенного встроенного графического процессора. Это можно сделать, загрузившись при использовании iGPU из настроек BIOS, и ваш компьютер сможет загрузить необходимые драйверы самостоятельно. Для моего моста Ivy настройки BIOS следующие:
Перейдите в BIOS, нажав Del при запуске.
Перейдите в расширенный режим, нажав клавишу F7 или щелкнув мышью по соответствующей опции.
Перейдите на вкладку "Дополнительно" системного агента и включите в качестве основного iGPU и поддержку нескольких мониторов.
Вы загружаетесь с iGPU (у меня был HD4000), проверьте, что все в порядке, но теперь вы видите упомянутую проблему: устройства CUDA не могут быть найдены / использованы (я думаю, за исключением Tesla, так как они не считаются дисплеями, и поэтому они не имеет к этому никакого отношения). Обычно вы можете найти дискретный gpu в диспетчере устройств и обновить его вручную оттуда. Тогда CUDA сможет определить ваш графический процессор. Если это не сработает, перейдите к шагу 3.
Вы перезагружаетесь, снова идете в BIOS, выбираете в качестве основной карты PCI-E и загружаетесь. Теперь вы должны использовать карту nvidia, и все должно быть нормально, но по- прежнему нельзя использовать iGPU и Nvidia. При использовании карты Nvidia перейдите в диспетчер устройств, найдите Intel iGPU в устройствах отображения и выполните обновление драйвера. Это необходимо, несмотря на то, что мы уже предоставили Intel собственные драйверы на предыдущих этапах.
Когда закончите, снова перейдите в меню загрузки, используйте в качестве основного iGPU, подключите к нему свой дисплей, и теперь, при его использовании, CUDA сможет видеть карту NVIDIA и выполнять на ней вычисления, в то время как дисплей использует iGPU, и система остается отзывчивой! Я думаю, что это также может быть использовано в играх или по другим причинам, связанным с производительностью, например, с двумя мониторами на встроенном (встроенном GPU) и дискретном GPU.