Драйвер 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-функции на компьютере.
Как производятся многопотоковые вычисления на видеокартах 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 эту команду можно использовать в батнике майнера следующим образом:
Вам также может понравиться
О переходе блокчейн-платформы Ethereum на версию 2.0
О временном запрете майнинга в Иране
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Войти
Уже есть аккаунт? Войти в систему.
Последние посетители 0 пользователей онлайн
Similar Topics
Ошибка разработчиков протокола DeFi Ichi привела к падению цены токена на 99%
В понедельник, 11 апреля, курс токена ICHI обвалился на 99%. Многие пользователи заподозрили мошенничество, однако причиной стала череда неудачных решений команды разработчиков. Токен ICHI – это собственный токен протокола DeFi Ichi, который разработчики описывают как «валюта для всех». Также в рамках этой экосистемы есть стейблкоин oneToken, привязанный к курсу доллара США. Пользователи могут получать стейблкоины oneToken, используя обеспечение в USDC и WBTC. Курс стейблкоина поддерживаетс
ошибка транзакции на одном из обменники
Прошу помочь с ситуацией. Хотел перевести USDT из одной сети в другую в своем кошельке. Из бинанс на этерниум сумма не большая но для меня значительная 40 долларов. Ну я оплатил одну транзакция в БНБ другую в БНБ потом говорят завершительный третий этап оплатите транзакцию в сети этерниум и тут комиссию выдают не реальную в 70 долларов. Вообщем транзакция так и зависла не знаю теперь как деньги назад вернуть и ее отменить. Вот подробности транзакции AMB Live Monitoring (alm-bsc.hero
11 фев 2022, 00:43 в Общий
Pancaceswap + Trust wallet, ошибка the transaction cannot succeed due to error cannot estimate gas
Суть такова: пробую совершить обмен определенного токена на BUSD, а обмен не проходит и вылазит ошибка на скрине ниже. В чем может быть проблема и как ее решить?
16 дек 2021, 14:21 в Общий
В Solana устранена ошибка «округления» стоимостью в $2.6 миллиарда
Компания по кибербезопасности Neodyme сообщила об эксплойте в блокчейне Solana, который создавал возможность похитить заблокированные в протоколах DeFi токены пользователей. Neodyme написала в Twitter о том, что обнаружила и исправила ошибку в контракте о предоставлении токенов в библиотеке программ Solana (SPL). По словам специалистов, эксплойт, обнаруженный пару месяцев назад, угрожал нескольким протоколам DeFi с общим объёмом заблокированных активов (TVL) на сумму $2.6 миллиардa. Уязвим
Ошибка в коде на OpenSea привела к сожжению 42 NFT на $100 000
Перед тем как активировать вычислительные мощности ядер CUDA, необходимо установить специальное программное обеспечение от компании-производителя.
-
Перейдя по предложенной выше ссылке, выберите операционную систему – «Windows» (наш пример) или «Linux».
Этап 2: Включение CUDA
Включить рассматриваемую технологию разом для всех программ не получится – необходимо её выбирать либо перед началом работы, либо в процессе, либо перед непосредственно вычислением. Использование данного средства покажем на примере программы Adobe After Effects последней версии.
- Запустите Афтер Эффектс и выберите пункты «Файл» – «Создать» – «Создать проект».
В других приложениях данная технология активируется подобным образом.
Мы рады, что смогли помочь Вам в решении проблемы.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Откройте установочный пакет CUDA, выбираются все параметры, начните устанавливаться, и, наконец, ошибка не удалась, ничего не установлена, как показано на рисунке:
Решение
Откройте панель управления NVIDA, см. Версию CUDA версии CUDA вашей видеокарты для загрузки и установки, метод просмотра следующий:
Откройте панель управления NVIDA, нажмите «Системную информацию» в левом нижнем углу
Нажмите «Компоненты», чтобы просмотреть версию драйверов CUDA, соответствующую nvcuda.dll, перейдите на официальный веб-сайт для загрузки соответствующей установки версии
Интеллектуальная рекомендация
LeetCode: Интервью 04.04. Проверьте баланс
Глубокоищите дерево, получите высоту левого поддерева и правого поддерева, если две разницы высоты превышают 1, это не дерево баланса .
Прямой разговор об использовании vuex в проекте vue-cli
Что такое Vuex? монтаж Напишите код: Добавьте этот файл в main.js Вот 4 основных концепции. State Откройте index.js под файлом магазина Подготовьте два компонента (назовите как хотите) Header.vue Foot.
Нажмите три числа от большого до небольшого выхода
Система новостей Burdock (1) Что такое генератор классов сущностей?
предисловие В настоящее время автор изучает систему выпусков новостей о лопухе с невероятной скоростью. Сегодня я наконец-то решил, что в этой колонке написано что-то новое, чего я не понимаю при разр.
Обучение HTML-записи (1)
Ссылки на учебные ресурсы Обучающее видео html element label значение периодической таблицы элементов Документ Знания чаевые единый формат HTML содержание имя тега> Теги могут.
Эта работа используетCreative Commons Attribution-Non-Commercial Use-Запрет на дедукцию 4.0 Международное лицензионное соглашениеЛицензия.
- Windows 10 x64 система
- Сообщество Microsoft Visual Studio 2017 (MSVS, бесплатная версия сообщества)
- CUDA 9.2
Шаг 1. Установите Visual Studio 2017
Этот шаг очень прост, следуйте инструкциям по установке шаг за шагом. В Интернете также есть много учебных пособий, поэтому я не буду повторять их здесь.
Шаг 2: Установите CUDA 9.2
Обратите внимание, что CUDA версии 9.2.88 имеет дополнительный пакет. Сначала установите основной пакет, а затем дополнительный пакет. Версия 9.2.148 должна иметь только один пакет.Если установка не удалась раньше, вам необходимо удалить все папки, связанные с CUDA, включая скрытые, перед повторной установкой.
Шаг 3: Проверьте результат установки CUDA 9.2
После завершения установки откройте окно командной строки, чтобы проверить:
Появится следующая картинка, указывающая на успешную установку:
Шаг 4. Настройка CUDA 9.2
Откройте проект nbody, который поставляется с CUDA, в каталоге C:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.2\5_Simulations\nbody Далее (выберите этот вариант, поскольку для этого не требуются сторонние зависимости или дополнительные функции, а установленный в настоящее время контент может успешно выполняться). Если вы установили версию 15.6.7 и ниже, операция прошла успешно:
нота:Если сообщается о следующей ошибке:
Это связано с тем, что этот файл содержит информацию о версии Windows SDK. Если он несовместим, возникнет ошибка.Существует два решения: во-первых, вы можете загрузить соответствующую версию SDK в установщике Visual Studio., А затем выберите версию SDK под общим в свойствах проекта. Однако, учитывая тот факт, что кто-то в Интернете сказал, что замена версии SDK будет недействительной, и что загрузка SDK требует много места в памяти, и каждый раз, когда SDK заменяется, это очень хлопотно.Люди предпочитают насильственное решение: непосредственно удалите оригинальный файл nbody_vs2017.vcxproj, или очистите решение или восстановите решение(Это удалит файл .vcxproj). Поскольку версии VS2017 15.6.X совместимы, нет необходимости беспокоиться о том, что ваша версия SDK будет слишком высокой, чтобы сообщить об ошибке.
Если установлена последняя версия VS, то при непосредственном запуске в это время будут отображаться следующие результаты:
Это потому, что версия cl.exe слишком высока. Вы можете проверить текущую версию cl.exe следующим образом:
Откройте окно командной строки и введите каталог, в котором находится версия cl.exe для сообщества:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\ 14.15.26726\bin\Hostx64\x64 ,из их 14.15.26726 Это будет отличаться для разных версий.
Измените его на соответствующую версию, у меня 19.15:
Затем запустите его снова, проблем не будет.
Шаг 5: Настройте среду для запуска CUDA 9.2 из командной строки
Если вы введете команду nvcc непосредственно в командной строке для компиляции в это время, произойдет следующая ошибка, то есть путь к cl.exe не найден:
Решение: добавьте путь к каталогу, в котором находится cl.exe C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\ 14.15.26726\bin\Hostx64\x64 Для переменной окружения PATH пользовательские и системные переменные могут быть:
Обратите внимание, что при установке переменных лучше всего открыть каталог файлов в проводнике, скопировать и вставить его. Вставка непосредственно с этой страницы иногда может быть недопустимой.
В настоящее время вам нужно снова открыть окно командной строки, а затем скомпилировать файл, показывая успех:
Читайте также: