О проблемах, приводящих к появлению ошибки определения CUDA-устройств
Иногда при попытке запустить программу, использующую многопотоковые вычисления (например, майнер), появляется сообщение об отсутствии CUDA-устройств, например:
CUDA device not found
Подобная проблема может возникнуть и на новых, и на старых видеокартах, причем в разных операционных системах, включая Linux-подобные.
Как избавиться от ошибки CUDA device not found?
Перед поиском причин ошибки CUDA device not found нужно убедиться, что видеокарта, установленная на компьютере, поддерживается программой, которая выдает ошибку.
Иногда может возникнуть ситуация, когда пользователь пытается запустить новый майнер на устаревшей (с точки зрения разработчика) видеокарте. В этом случае проблему можно решить компиляцией майнера под нужную версию CUDA (при наличии исходного кода), либо использовать другой, совместимый майнер.
В дистрибутивах Windows и в OS с Linux-ядром проблема с определением CUDA-устройтсв обычно успешно решается с помощью повторной установки нужных драйверов, желательно с полной очисткой от предыдущих. Дополнительно можно вручную инсталлировать CUDA Toolkit, соответствующий установленной версии драйверов или новее.
Тем не менее, в некоторых, особенно тяжелых случаях такие манипуляции не помогают и система упорно отказывается признавать наличие видеокарты, способной производить compute-вычисления.
Пример отображения информации в программе GPU-Z на компьютере с видеокартой Nvidia GT710 (ОС Windows 8.1, драйвера успешно установлены), но CUDA-устройства пребывают в состоянии невидимости:
Для решения проблемы можно предпринять следующие шаги:
- проверить в диспетчере устройств установку драйверов для всех устройств (отсутствие восклицательных знаков или ошибок);
- запуск программы осуществлять от имени администратора (не из гостевого аккаунта);
- поставить совместимые драйвера более новой версии после очистки от предыдущих с помощью программы DDU (Display Driver Uninstaller);
- на компьютер дополнительно установить другой видеоакселератор и поставить драйвер;
- установить видеокарту в другой слот PCI-E материнской платы или райзер;
- включить видимость CUDA-устройства с помощью переменной окружения CUDA_VISIBLE_DEVICES (об этом ниже по тексту);
- отключить функцию PCI Express Native Control Feature. Для этого нужно выполнить из-под админа консольную команду:
перезагрузить систему и заново установить драйвера
- произвести переустановку операционной системы.
Иногда перечисленные ухищрения не срабатывают и, хотя видеокарта Nvidia успешно определяется операционной системой, видна в диспетчере задач Windows, она не работает как CUDA-устройство.
При загрузке этого же компьютера с операционной системой на Linux-ядре (xubuntu 18.04), видеокарта успешно работает, производя многопотоковые вычисления при майнинге.
Исходя из успешной работы видеокарты в ОС Linux, можно сделать предположение, что она исправна и на компьютере используются правильные настройки BIOS. Вероятно, решение проблемы с невидимостью CUDA связано с конфигурацией конкретного дистрибутива Windows.
Как решить проблему с определением CUDA-устройств в операционной системе Windows?
Множество проблем при работе в Windows возникает из-за использования сборок, в которых была произведена «доработка напильником», осуществлено «выпиливание» ненужных компонентов и/или чрезмерная очистка от ненужных файлов.
В связи с этим, в большинстве случаев самым простым и логичным решением является использование официального дистрибутива Windows, в котором не производились изменения сторонними лицами.
Иногда, даже в случае использования официальной операционной системы Windows,но Embedded-версии, проблемы остаются. В этом случае также стоит перейти на полноценную сборку от Microsoft.
Если есть время и желание, то можно попытаться исправить ситуацию, найдя и устранив причину, по которой конкретная операционная система отказывается видеть cuda-функционал видеокарт, управляемых ею
Для этого нужно понять, как реализуются CUDA-функции на компьютере.
Как производятся многопотоковые вычисления на видеокартах Nvidia?
Для работы CUDA приложений на компьютере нужно иметь CUDA-видеокарту и драйвер дисплея NVIDIA, совместимый с CUDA Toolkit, использовавшийся при компиляции приложения (майнера):
Для обеспечения совместимости каждая версия CUDA toolkit поставляется с подходящим драйвером дисплея NVIDIA. Пакет с драйверами включает в себя user mode CUDA-драйвер (файл libcuda.so) и компоненты ядра, что позволяет обеспечить работу всех функций, поддерживаемых в конкретной версии CUDA Toolkit.
Программы, скомпилированные для более ранней версии CUDA должны успешно работать и с новыми драйверами. Приложение, скомпилированное с более поздней версией CUDA, чем та, что поддерживается драйверами, работать не будет.
Работа CUDA-программ осуществляется с помощью двух интерфейсов прикладного программирования (API):
- высокого уровня (CUDA Runtime API);
- низкого уровня (CUDA Driver API).
Майнер или другая программа, использующая мультипроцессоры Nvidia, работает на основе CUDA Runtime API, поверх низкого уровня CUDA-драйверов:
Вызовы runtime-кода программы транслируются в более простые инструкции, в свою очередь обрабатываемые низкоуровневым API-драйвером.
Для успешного запуска майнера или другой программы, требующей поддержки CUDA, нужно:
- использовать драйвер, поддерживающий версию CUDA, равную или новее той, которая использовалась при компиляции;
- обеспечить, чтобы версия CUDA runtime, установленной в системе была не старее версии CUDA-драйвера.
Если программа (майнер) скомпилирована для более новой версии CUDA, чем та, что поставляется в драйверах, то (иногда) можно повысить только версию CUDA runtime, не трогая драйверов (эта фишка доступна для версий CUDA новее 10.0):
Это длается с помощью специального «CUDA compat package» на NGC-Ready профессиональных видеокартах Nvidia, но, возможно, при «определенной сноровке», применимо и на других моделях.
Если после успешной установки драйверов программа (майнер) не видит графического ускорителя, выдавая ошибку No Nvidia CUDA GPU detected, скорее всего не срабатывает CUDA runtime (так как система видит видеокарту, то значит функция deviceQueryDrv, реализуемая драйвером API работает нормально). Возможно, проблема кроется в неправильном взаимодействии с NVML-библиотекой, которая выдает неверную информацию о неподдерживаемом GPU.
Как найти причину бага CUDA runtime, приводящего к ошибке no usable mining devices found?
Детектирование наличия CUDA-capable GPU производится через библиотеку cudart (файлы cudart.dll, cudart_static.lib, cudadevrt.lib.dll в Windows) с помощью функции cudaGetDeviceCount() из состава CUDA Runtime API.
Она выдает ошибку cudaErrorNoDevice если в системе отсутствуют совместимые устройства или используется неподходящий драйвер (ошибка cudaErrorInsufficientDriver).
В случае использования компьютеров с видеокартами Nvidia, поддерживающими разные версии CUDA, могут возникнуть проблемы, связанные с их совместимостью. В связи с этим рекомендуется делать сборку компьютеров (майнинг ригов) с одинаковыми видеокартами (на одной архитектуре), а также использовать драйвера, соответствующие видеокарте (ее Compute Capability).
Таблица соответствия драйверов, версии Compute Capability и архитектуры видеокарт Nvidia:
Для выяснения причины, по которой система прячет от прикладных программ CUDA устройства, нужно изучить всю доступную информацию об установленных видеокартах Nvidia, драйверах и т. д.
В Windows очень удобно для изучения информации о видеокарте использовать программы GPU-Z или Некоторую информацию о старых видеокартах nVIDIA Geforce, Quadro и Tesla в Windows, Linux и Mac OSX можно получить утилитой cuda-z. В большинстве систем можно использовать штатную консольную утилиту nvidia-smi. Она позволяет получать следующую информацию:
- количество ECC ошибок за текущую сессию и за все время работы GPU;
- загруженность GPU с точки зрения compute ресурсов и памяти;
- активные compute процессы их названием/ID и выделенной им GPU памятью;
- частота GPU и текущий уровень performance state (pstate);
- температура и частота вращения вентиляторов видеокарты;
- потребляемая мощность;
- идентификационные данные о драйверах, графическом адаптере, включая его серийный номер, PCI device Ids, версия VBIOS и т.д.
Обычно утилита nvidia-smi.exe устанавливается в папку
где имя каталога nvdm* различается в зависимости от используемых драйверов/системы.
В старых ОС, например, в Windows 8.1 с драйверами 445.87, программа nvidia-smi находится в папке C:\Program Files\NVIDIA Corporation\NVSMI:
Запуск программы nvidia-smi.exe в Windows можно производить из ее каталога с помощью простейшего батника (для удобства пользователя можно использовать ярлык на рабочем столе):
При запуске такого bat-файла (без дополнительных ключей) можно получить информацию об установленных драйверах и поддерживаемой версией CUDA, например:
Как видно на приведенном в качестве примера рисунке, nvidia-smi видит видеокарту, драйвер и поддерживаемую версию CUDA, но в колонке Process name (она отвечает за compute-процессы) отображается надпись Not Supported. При этом игры на этой видеокарте работают (например, World of Tanks), а майнеры не видят CUDA-устройства (появляется ошибка no devices).
В этом случае, наверное, лучше перейти на другой, более послушный дистрибутив операционной системы.
Проблемы с видимостью устройств CUDA иногда могут возникнуть в случае неверной конфигурации переменных окружения.
Как управлять видимостью видеокарт Nvidia с помощью конфигурации окружения?
Видимостью CUDA устройств можно управлять с помощью переменной окружения CUDA_VISIBLE_DEVICES. Она позволяет исключить или включить в поле зрения прикладной программы видеокарты с помощью командной строки вида:
в которой перечисляются только видимые программой видеокарты.
Эту команду нужно использовать до запуска основной программы вместе с другими переменными окружения, например, в скрипте Linux, следующим образом:
В Windows эту команду можно использовать в батнике майнера следующим образом:
Вам также может понравиться
О проекте EDC Blockchain (EDC)
11 апреля, 2020
references
1. First delete the original opencv If you do not find the opencv you originally installed, or the original build file after installation, you cannot uninstall. Then just delete the opencv you can fin.
CUDA and cuDNN install version 10.0
CUDA and cuDNN install version 10.0 Provide cuda10.0 version Download package: Link: https://pan.baidu.com/s/1bTGfGLsNq5GyYly_82GH4g Withdrawal code: 2022 Install: Install cudawin10exe first After dec.
Win10+VS2017+CUDA8.0 environment configuration (VS opens darknet.sln and reports an error, the project CUDA 10.0.props cannot be found)
Regarding the installation of CUDA, refer to In the previous blog, Visual Studio Integration was not installed. This article is used to install it separately. 1. Open the CUDA installer, remember the .
Installation NVIDIA cuDNN v7.5.0 for CUDA 10.0
Installation NVIDIA cuDNN v7.5.0 for CUDA 10.0 NVIDIA leading artificial intelligence computing — NVIDIA https://www.nvidia.cn/ NVIDIA Developer — NVIDIA DEVELOPER https://developer.nvidia.com/ NVIDIA.
Cuda 10.0 + tensorflow-gpu 2.0.0 version installation
Cuda 10.0 + tensorflow-gpu 2.0.0 version installation Required software, installation package download: installation Anaconda and pycharm installation Cuda installation cuDNN installation Install tens.
More Recommendation
ubuntu 18.04 install cuda 10.0+cudnn 7.6
Some possible problems with conda installing cuda and cudnn When using conda to maintain the virtual environment, you can install cuda and cudnn through conda, but under ubuntu, after installing tenso.
Ubuntu18.04+cuda 10.0 configure caffe-action (TSN)
Ubuntu18.04+cuda 10.0 configure caffe-action (TSN) Since you need to configure the specified caffe when using TSN, many online searches say that it supports cuda8.0, which is embarrassing! ! How to br.
Centos offline install CUDA 10.0 CUDNN 7.6.5
install CUDA 10.0 CUDNN 7.6.5 on centos Installation sequence: Install gcc Install graphics driver Install CUDA Install CUDNN The process of installing cuda10.0 and cudnn7.6.5 in your own offline envi.
Ubuntu configures multiple versions of cuda (10.0, 10.1)
The first big hurdle faced by many friends who are new to deep learning is the configuration of the development environment. It often takes one or two days to toss, and even ten and a half months may .
Install cuda (10.1 and 10.0) and cudnn on Ubuntu 18.04
Install cuda (10.1 and 10.0) and cudnn on Ubuntu 18.04 Install cuda10.1 and its corresponding cudnn First check the graphics card driver version of your computer, the command is as follows: The above .
Как установить драйвер NVIDIA CUDA, CUDA Toolkit, CuDNN и TensorRT в Windows
В этой статье устанавливаются драйверы и программы, необходимые для использования графических процессоров NVIDIA для обучения моделей и выполнения пакетных выводов. Он загружает и устанавливает драйверы CUDA, CUDA Toolkits и обновления CUDA Toolkit. Он загружает, распаковывает и перемещает файлы CuDNN и TensorRT в каталог CUDA. Он также настраивает, создает и запускает образец BlackScholes для тестирования графического процессора.
Оглавление:
Приложение:
Установите требования:
В этом разделе загружается и устанавливается Visual Studio с поддержкой C и C ++.
Установите драйвер CUDA:
В этом разделе загружается и устанавливается последняя версия драйвера CUDA на тот момент.
Установите CUDA Toolkit 10:
В этом разделе загружается и устанавливается CUDA Toolkit 10 и обновления.
Установите CUDA Toolkit 11:
В этом разделе загружается и устанавливается CUDA Toolkit 11.
Установите библиотеку CuDNN:
Этот раздел присоединяется к Программе разработчика NVIDIA и загружает библиотеку CuDNN, распаковывает и перемещает файлы в каталог CUDA.
Установите библиотеку TensorRT:
Этот раздел загружает библиотеку TensorRT, распаковывает и перемещает файлы в каталог CUDA и устанавливает несколько необходимых программ на Python.
Протестируйте графический процессор на примере CUDA:
В этом разделе настраивается, строится и запускается образец BlackScholes.
«Наконец, не забудьте подписаться и удерживать кнопку хлопка, чтобы получать регулярные обновления и помощь».
Приложение:
Этот блог существует, чтобы предоставить комплексные решения, ответить на ваши вопросы и ускорить ваш прогресс в области искусственного интеллекта. В нем есть все необходимое, чтобы настроить компьютер и пройти первую половину курса fastai. Он откроет вам самые современные репозитории в подполях искусственного интеллекта. Он также будет охватывать вторую половину курса фастая.
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
ethereum-mining / ethminer Public archive
No cuda driver found with AMD #903
No cuda driver found with AMD #903
Comments
2 rx 480s. Here is the error:
The text was updated successfully, but these errors were encountered:
I don’t think so. Just running ./ethminer by default gives this message
If you have a shell or bash script, try adding the arguments: -X —opencl-devices 0,1,2,3 .
You may need to alternate the numbers to the corresponding indices of the graphics cards.
Thanks, got it to work with that
How do I do it in Windows?
I have an AMD R7 360 and the same problem happens to me.
How do I do it in Windows?
I have an AMD R7 360 and the same problem happens to me.
I’m having that problem with r270! 😛 Anyone can help me? Windows 10 64 bits
¿Cómo lo hago en Windows?
Tengo una AMD R7 360 y me pasa el mismo problema.
¡Tengo ese problema con r270! : P ¿Alguien me puede ayudar? Windows 10 de 64 bits
Pudieron resolverlo? tengo el mismo problema
ethminer 0.19.0-alpha.0
Build: darwin/release/appleclang
Unrecognized platform Apple
CUDA Error : No CUDA driver found
Error: No usable mining devices found
AMD Radeon Pro 580X 8
¿Cómo lo hago en Windows?
Tengo una AMD R7 360 y me pasa el mismo problema.
¡Tengo ese problema con r270! : P ¿Alguien me puede ayudar? Windows 10 de 64 bits