Замораживание системы при запуске даже основных программ CUDA
Получив новый игровой ноутбук, я захотел изучить и попробовать немного программирования на CUDA. Итак, я последовал за публикацией в блоге "Еще более легкое введение в CUDA" и написал самую первую программу CUDA, в которую были добавлены 1M числа с плавающей запятой, как описано в посте.
Первый запуск.exe быстро дал результат. Затем я перешел в раздел профилирования и вызвал программу nvprof на моем.exe, которая началась с сообщения:
== 2756 == NVPROF - это процесс профилирования 2756, команда: .\ Simple.exe
и долгое время казалось застрял там. После многих минут ожидания какого-либо прогресса я нажал Ctrl+C, после чего графический интерфейс перестал отвечать на запросы, и вся моя система зависла.
Я перезагрузил систему и снова запустил программу nvprof, которая сразу же заработала. Но, запустив его снова во второй раз, он снова заморозил мою систему. После многих перезагрузок и попыток мне показалось, что запуск программы каким-либо образом сработал в первый раз, но второй или третий запуск почти всегда приводил к зависанию системы.
Озадаченный таким поведением, я искал в сети и попробовал много хитростей, таких как установка задержки TDR и использование только встроенной графики для задержки, и оставление графического процессора Nvidia для CUDA. Никто из них не работал.
Меня смущает, почему это происходит, потому что это определенно не тот случай, когда я запускаю скрипты на Python Tensorflow-gpu или Pytorch cuda для моих проектов машинного обучения.
Почему эти ядра не зависают, а моя простая программа зависает?
Пожалуйста, кто-нибудь объясните.
Технические характеристики системы
Ноутбук Acer Predator Helios 300 с:
- Windows 10 Pro x64 (17134)
- i7 7700HQ
- 16 ГБ оперативной памяти DDR4
- 6GB GTX 1060 (драйвер 411.64, CUDA выпуск 9.0, V9.0.176)
1 ответ
Я предполагаю, что это, вероятно, связано с использованием ноутбука: возможно, ОС пытается запустить приложение, используя интегрированную графическую карту Intel, а не NVidia, чтобы снизить энергопотребление. В большинстве ноутбуков он несколько жестко подключен, он предназначен для ограничения энергопотребления и имеет смысл для большинства приложений. Система должна определить, нужна ли карта NVidia, но у меня уже были проблемы с этим и CUDA.
Вместо того, чтобы дважды щелкнуть ваше приложение, чтобы запустить его, вы должны щелкнуть правой кнопкой мыши по нему, затем выбрать "Запустить с графическим процессором..." во всплывающем меню, а затем выбрать вашу карту NVidia из списка. Таким образом, вы уверены, что ОС обеспечивает поддержку приложения CUDA.
Если нет опции "Запустить с графическим процессором...", сделайте следующее (от Google):
Откройте панель управления Nvidia в панели управления Windows 10. Перейдите на вкладку "Рабочий стол" и установите флажок "Добавить" Запуск с графическим процессором "в контекстное меню". Вот и все, теперь вы можете увидеть эту недостающую опцию в контекстном меню.