Как узнать поддерживает ли видеокарта cuda
есть ли быстрая команда или скрипт для проверки версии установленного CUDA?
Я нашел руководство 4.0 в каталоге установки, но не уверен, является ли фактическая установленная версия такой или нет.
как упоминает Джаред в комментарии, из командной строки:
дает версию компилятора CUDA (которая соответствует версии toolkit).
из кода приложения вы можете запросить версию API среды выполнения с помощью
или версия API драйвера с
как указывает Даниэль, deviceQuery является образцом SDK приложение, которое запрашивает выше, наряду с возможностями устройства.
как отмечают другие, вы также можете проверить содержание version.txt использование (например, на Mac или Linux)
однако, если установлена другая версия инструментария CUDA, отличная от той, которая символически связана с /usr/local/cuda , это может сообщить о неточной версии, если другая версия ранее в вашем PATH чем выше, поэтому используйте с осторожностью.
На Ubuntu Cuda V8:
$ cat /usr/local/cuda/version.txt или $ cat /usr/local/cuda-8.0/version.txt
иногда папка называется "Cuda-version".
если ничего из вышеперечисленного не работает, попробуйте $ /usr/local/ И найдите правильное имя вашей папки Cuda.
результат должен быть похож на: CUDA Version 8.0.61
Если вы установили CUDA SDK, вы можете запустить "deviceQuery", чтобы увидеть версию CUDA
вы можете найти CUDA-Z полезным, вот цитата с их сайта:
" эта программа родилась как пародия на другие Z-утилиты, такие как CPU-Z и GPU-Z. CUDA-Z показывает некоторую базовую информацию о графических процессорах с поддержкой CUDA и GPGPUs. Он работает с картами nVIDIA Geforce, Quadro и Tesla, ионными чипсетами."
на вкладке поддержка есть URL для исходного кода: http://sourceforge.net/p/cuda-z/code/ и загрузка на самом деле не является установщиком, а исполняемым файлом (без установки, поэтому это "быстро").
эта утилита предоставляет множество информации, и если вам нужно знать, как она была получена, есть источник посмотреть. Есть другие утилиты, похожие на это, которые вы можете искать.
после установки CUDA можно проверить версии по: nvcc-V
Я установил как 5.0, так и 5.5, поэтому он дает
инструменты компиляции Cuda, выпуск 5.5, V5.5,0
эта команда работает как для Windows, так и для Ubuntu.
помимо упомянутых выше, ваш путь установки CUDA (если он не был изменен во время установки) обычно содержит номер версии
делать which nvcc должны дать путь, и это даст вам версию
PS: Это быстрый и грязный способ, вышеуказанные ответы более элегантны и приведут к правильной версии со значительными усилиями
сначала вы должны найти, где установлена Cuda.
Если это установка по умолчанию, такие как здесь расположение должно быть:
в этой папке должен быть файл
откройте этот файл с помощью любого текстового редактора или запустите:
можно узнать cuda версия, набрав в терминале следующее:
кроме того, можно вручную проверьте версию, сначала выяснив каталог установки с помощью:
а то cd в этот каталог и проверьте версию CUDA.
Я получаю /usr / local - нет такого файла или каталога. Хотя nvcc -V дает
2 | 1 CUDA
Как я могу проверить, какую версию CUDA поддерживает видеокарта?
Откройте панель управления и введите NVIDIA в поле поиска в верхнем правом углу, как показано на следующем рисунке: первое - это изображение, когда панель управления открыта, а второе - после входа в NVIDIA, вы можете видеть поиск в верхнем левом углу изображения. Графический процессор NVIDIA.
После выполнения описанных выше шагов поместите мышь на искомый NVIDIA, обведите красную рамку, как показано ниже, и дважды щелкните мышью.
После выполнения предыдущего шага войдите в следующий интерфейс, где вы можете просмотреть некоторую информацию о NVIDIA и версии драйвера видеокарты, как показано в левом меню на следующем рисунке.
Нажмите меню справки и выберите опцию системной информации в раскрывающемся меню, как показано в красном поле ниже.
Во всплывающем окне информации о системе есть две страницы меню: Дисплей и Компоненты, выберите компонент, вы можете увидеть много имен файлов, найти NVCUDA в имени файла, и вы можете увидеть версию NVCUDA в столбце названия продукта, как показано в красном поле. Обведите часть. CUDA это версия 9.1
Предварительное понимание регулярных выражений Python (4)
Сегодня я продолжу делиться базовыми знаниями о регулярных выражениях Python. В основном я представляю использование специального символа "<>". Ниже приведено конкретное руководство. .
Предварительное понимание регулярных выражений Python (4)
Сегодня я продолжу делиться базовыми знаниями о регулярных выражениях Python. В основном я представляю использование специального символа "<>". Ниже приведено конкретное руководство. .
2 | 2 cudnn
На самом деле это программная библиотека, специально разработанная для вычислений с глубоким обучением, которая предоставляет множество специализированных функций вычислений, таких как свертка. Как видно из приведенного выше рисунка, существует множество других программных библиотек и промежуточного программного обеспечения, включая trust, который реализует c ++ STL, cublas, реализующий версию blas для графических процессоров, cuFFT, реализующий быстрое преобразование Фурье, cuSparse, реализующий операции с разреженными матрицами, и Реализуйте cuDNN для ускорения сети с глубоким обучением и т. Д. Подробнее см.GPU-Accelerated Libraries
Java.nio.Buffer flip () метод jdk Ошибка перевода на китайский язык
Когда я сегодня читал «Идеи программирования на Java», я столкнулся с методом java.nio.Buffer flip (). Дело в том, что «[color = red] переворачивает этот буфер. Сначала установите ог.
6 | 1 Как скачать и установить cuda
Все белое Введение Сверток Neural Network (CNN)
6 | 2 установка cuda
Перехватите наиболее важные варианты в процессе установки:
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
/usr/ local /cuda-9.0 is not writable.
Do you wish to run the installation with ‘sudo’ ?
(y)es/(n)o: y
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: n
Краткое описание предыдущих выборов:
Please make sure that
- PATH includes /usr/ local /cuda-9.0/bin
- LD_LIBRARY_PATH includes /usr/ local /cuda-9.0/lib64, or, add /usr/ local /cuda-9.0/lib64 to /etc/ld.so.conf and run ldconfig as root
To uninstall the CUDA Toolkit, run the uninstall script in /usr/ local /cuda-9.0/bin
Please see CUDA_Installation_Guide_Linux.pdf in /usr/ local /cuda-9.0/doc/pdf for detailed information on setting up CUDA.
После завершения установки вы сможете увидеть его в каталоге / usr / local:
3 | 1 nvcc
Это было введено ранее, nvcc По сути, это компилятор CUDA, который можно скачать из CUDA Toolkit. /bin Из каталога аналогично gcc Это компилятор языка C. Поскольку программа запрограммирована в исполняемый двоичный файл компилятором, а программа cuda имеет два типа кодов: один - это код хоста, работающий на процессоре, другой - код устройства, работающий на графическом процессоре, поэтому nvcc Компилятор должен гарантировать, что две части кода могут быть скомпилированы в двоичный файл и выполнены на разных машинах. Суффиксы файлов и связанные с ними значения, используемые в nvcc, следующие
Расширение файла | значение |
---|---|
.cu | исходные файлы cuda, включая коды хоста и устройства |
.cup | Предварительно обработанный исходный файл cuda, опция компиляции --preprocess / -E |
.c | c исходный файл |
.cc/.cxx/.cpp | исходный файл c ++ |
.gpu | промежуточный файл gpu, опция компиляции --gpu |
.ptx | Как и в коде сборки, опция компиляции --ptx |
.o/.obj | Объектный файл, параметр компиляции --compile / -c |
.a/.lib | Файл библиотеки, опция компиляции --lib / -lib |
.res | ресурс |
.so | Общий объектный файл, параметр компиляции --shared / -shared |
.cubin | двоичный файл cuda, опция компиляции -cubin |
5 | 1 PATH
PATH - это путь к исполняемому файлу, который является наиболее часто встречающимся из трех, потому что каждая команда в нашей командной строке, такая как ls, top, ps и т. Д., Является файлом выполнения команды, найденным системой через PATH , Затем запустите эту команду (исполняемый файл). Например, в каталоге пользователя ~/mycode/ Есть папка bin, в которой находятся исполняемые двоичные файлы, сценарии оболочки и т. Д. Если вы хотите запустить исполняемый файл указанной выше папки bin в любом каталоге, вам нужно только добавить путь к корзине в PATH, как показано ниже:
[Код очень подробный] POJ 2492 A Bug's Life (и проверьте коллекцию)
1. Описание заголовка 2. Инструкции по анализу алгоритмов и руководство по написанию кода. Похожие темы:POJ 1182 Решение проблемы пищевой цепи Наблюдается m насекомых и n вязок. Насекомые u и v могут .
В процессе использования фреймворка глубокого обучения мы часто сталкиваемся с этими вещами. Хотя anaconda иногда помогает нам автоматически решать эти настройки, некоторые специальные библиотеки по-прежнему требуют, чтобы мы вручную настраивали среду, но на самом деле у меня есть эти термины в названии Это не очень понятно, поэтому меня всегда смущают онлайн-уроки, поэтому я считаю, что необходимо написать статью в качестве примечания для дальнейшего использования.
Видеокарта: Просто поймите, что мы сказали ранееGPU, Особенно серии GPU, производимые NVIDIA, потому что cuda и cudnn, описанные ниже, все разработаны NVIDIA исключительно для собственного GPU.
Графический драйвер: Очевидно, это буквально означает, обычно относится кNVIDIA Driver, По сути, это программный драйвер, а предыдущийВидеокартаЭто оборудование.
Архитектура графического процессора: Тесла, Ферми, Кеплер, Максвелл, Паскаль
Модель чипа: GT200, GK210, GM104, GF104 и др.
Серия видеокарт: GeForce, Quadro, Tesla
Модели видеокарт GeForce: G / GS, GT, GTS, GTX
Архитектура графического процессора относится к способу проектирования оборудования, например к количеству ядер в кластере потокового процессора, наличию кеш-памяти L1 или L2, наличия вычислительного блока с двойной точностью и т. Д. Архитектура каждого поколения - это своего рода мышление, как лучше завершить параллельное мышление
Чип является реализацией вышеупомянутой идеи архитектуры графического процессора. Например, вторая буква в модели чипа GT200 обозначает, какое поколение архитектуры, иногда бывает 100 и 200 поколений микросхем. Их основные идеи дизайна согласуются с этим поколением архитектуры, но в деталях Некоторые изменения были внесены в вышеизложенное, например, GK210 имеет вдвое больше регистров, чем GK110. Иногда в видеокарте может быть два чипа, и Tesla k80 использует два чипа GK210. Архитектура графического процессора первого поколения здесь также называется Tesla, но в основном нет карт с таким дизайном. Если упомянуто ниже, для различения будут использоваться архитектура Tesla и серия Tesla.
Нет никакой разницы в характере серии видеокарт, но NVIDIA надеется разделить ее на три варианта: GeForce для домашних развлечений, Quadro для рабочих станций и серия Tesla для серверов. Карта Tesla K-типа разработана для высокопроизводительных научных вычислений. Выдающиеся преимущества - это высокие вычислительные возможности с плавающей запятой двойной точности и поддержка памяти ECC. Однако возможность двойной точности бесполезна для обучения глубокому обучению, поэтому серия Tesla Представлена модель M как специальная видеокарта для обучения сетей глубокого обучения. Следует отметить, что серия Tesla не имеет интерфейса вывода на дисплей, она ориентирована на расчет данных, а не на графическое отображение.
Последняя модель видеокарты GeForce представляет собой другую аппаратную настройку, чем позже, тем лучше производительность, чем выше тактовая частота, тем больше память, то есть G / GS
5 | 2 LIBRARY_PATH и LD_LIBRARY_PATH
Эти два пути можно обсудить вместе,
- LIBRARY_PATH даВо время компиляции программыУкажите путь для поиска общих библиотек при поиске библиотек динамической компоновки
- LD_LIBRARY_PATH даВо время загрузки и запуска программыПри поиске библиотеки динамической компоновки укажите путь, отличный от пути по умолчанию в системе
Их общей точкой является библиотека, которая представляет собой разницу между двумя путями и путем PATH, а PATH - это исполняемый файл.
Разница между ними в том, что время использования разное. Один из них - период компиляции, который соответствует стадии разработки, такой как компиляция gcc; другой - период загрузки и выполнения, который соответствует стадии использования поставленной программы.
Способ настройки аналогичен:
На основе введения в предыдущих разделах будет легче понять, как теперь управлять несколькими версиями CUDA.
2 | 3 CUDA Toolkit
CUDA Toolkit состоит из следующих компонентов:
- Compiler: Компилятор CUDA-C и CUDA-C ++ NVCC роды bin/ Справочник. Он построен на NVVM Над оптимизатором и NVVM Сам оптимизатор построен на LLVM На вершине инфраструктуры компилятора. Надеюсь, разработчики смогут использовать nvm/ Компилятор SDK в каталоге для непосредственной разработки для NVVM.
- Tools: Укажите изображения profiler , debuggers И другие инструменты, эти инструменты могут быть из bin/ Попасть в каталог
- Libraries: Некоторые из научных библиотек и служебных библиотек, перечисленных ниже, можно найти в lib/ Использовать в каталоге (DLL в Windows находится в bin/ В) их интерфейсы находятся в include/ Имеется в каталоге.
- cudart: CUDA Runtime
- cudadevrt: CUDA device runtime
- cupti: CUDA profiling tools interface
- nvml: NVIDIA management library
- nvrtc: CUDA runtime compilation
- cublas: BLAS (базовые подпрограммы линейной алгебры, базовая сборка линейной алгебры)
- cublas_device: BLAS kernel interface
- .
Интеллектуальная рекомендация
Все белое Введение Сверток Neural Network (CNN)
3 | 3 Отличаются ли версии CUDA, отображаемые nvcc и nvidia-smi?
На сервере в нашей лаборатории nvcc --version Отображаются следующие результаты:
а также nvidia-smi Результаты приведены ниже:
можно увидеть nvcc Версия CUDA - 9.2, и nvidia-smi Версия CUDA - 10.0. Странно, что иногда код удается запустить в большинстве случаев.stackoverflowПриведенное выше объяснение выглядит следующим образом:
CUDA имеет два основных API:исполняемый APIс участиемdriver API. Оба API имеют соответствующие версии CUDA (например, 9.2, 10.0 и т. Д.).
- Используется для поддержкиdriver APIНеобходимые документы (например, libcuda.so )ОтGPU driver installerУстановлен. nvidia-smi Он принадлежит к этому типу API.
- Используется для поддержкиruntime APIНеобходимые документы (например, libcudart.so также как и nvcc )ОтCUDA Toolkit installerУстановлен. (Установщик CUDA Toolkit иногда может интегрировать установщик драйвера графического процессора). nvcc Это инструмент компилятора-драйвера CUDA, устанавливаемый вместе с CUDA Toolkit. Он знает только версию среды выполнения CUDA, когда она была создана. Он не знает, какая версия драйвера графического процессора установлена, и даже установлен ли он.
Таким образом, если версии CUDA API драйвера и API среды выполнения несовместимы, это может быть связано с тем, что вы используете отдельный установщик драйвера графического процессора вместо установщика драйвера графического процессора в установщике CUDA Toolkit.
На следующем рисунке четко показана взаимосвязь между различными концепциями, упомянутыми ранее. Среди них среда выполнения и API драйвера во многих случаях очень похожи, что означает, что эффект от их использования эквивалентен, но вы не можете смешивать два API. , Потому что оба исключают друг друга. Другими словами, в процессе разработки вы можете выбрать только один из API. Простое понимание разницы между ними заключается в следующем: среда выполнения - это более продвинутый пакет, который более удобен для разработчиков, в то время как API драйвера находится ближе к основанию, а скорость может быть выше.
Подробно о двух APIразличияследующим образом:
- Сложность
- API среды выполнения упрощает управление кодом устройства, обеспечивая неявную инициализацию, управление контекстом и управление модулями. Это упрощает код, но ему также не хватает уровня контроля, обеспечиваемого API драйвера.
- Напротив, API драйвера обеспечивает более детальный контроль, особенно в контексте и загрузке модулей. Реализовать запуск ядра намного сложнее, потому что конфигурация выполнения и параметры ядра должны быть указаны с явными вызовами функций.
- Для API среды выполнения все ядра автоматически загружаются во время инициализации во время выполнения и остаются загруженными во время работы программы.
- С помощью API драйвера вы можете загружать только те модули, которые необходимы в данный момент, или даже динамически перезагружать модули. API драйвера также не зависит от языка, потому что он обрабатывает только cubin Объект.
- Если контекст становится текущим контекстом вызывающего потока через API драйвера, среда выполнения будет его использовать,
- Если такого контекста нет, он будет использовать «первичный контекст».
Основной контекст создается по мере необходимости, по одному контексту на устройство для каждого процесса, подсчитываются ссылки, а затем уничтожаются, когда ссылок больше нет. В процессе все пользователи API среды выполнения будут совместно использовать основной контекст, если только контекст не стал текущим контекстом каждого потока. Контекст, используемый средой выполнения, то есть текущий контекст или основной контекст, может использоваться cudaDeviceSynchronize() Синхронизировать, вы также можете использовать cudaDeviceReset() уничтожить.
Однако при использовании API среды выполнения с основным контекстом придется пойти на компромисс. Например, для разработчиков, которым необходимо писать подключаемые модули для более крупных пакетов программного обеспечения, это вызовет массу проблем, потому что, если все подключаемые модули работают в одном процессе, они будут использовать общий контекст, но не смогут взаимодействовать друг с другом. . То есть, если один из них вызывает после завершения всей работы CUDA cudaDeviceReset() , Другие плагины потерпят неудачу, потому что контекст, который они используют, уничтожен без их ведома. Чтобы избежать этой проблемы, клиенты CUDA могут использовать API драйвера для создания и установки текущего контекста, а затем использовать API среды выполнения для его обработки. Однако контекст может потреблять много ресурсов, таких как память устройства, дополнительные потоки хоста и затраты производительности при переключении контекста на устройстве. Такой вид совместного использования контекста драйвера времени выполнения очень важен при использовании API драйвера с библиотеками, построенными на API времени выполнения, таких как cuBLAS или cuFFT.Java.nio.Buffer flip () метод jdk Ошибка перевода на китайский язык
Когда я сегодня читал «Идеи программирования на Java», я столкнулся с методом java.nio.Buffer flip (). Дело в том, что «[color = red] переворачивает этот буфер. Сначала установите ог.
Как проверить версию CUDA, поддерживаемую Nvidia в Win10
Открыть настройки
Введите панель управления в поиск и откройте панель управления
Щелкните параметр «Оборудование и звук», а затем выберите панель Nvidia.
Нажмите Help на панели Nvidia и выберите System Information.
Выберите компонент, найдите «NVCUDA.DLL», вы увидите поддерживаемую версию CUDA.
[Код очень подробный] POJ 2492 A Bug's Life (и проверьте коллекцию)
1. Описание заголовка 2. Инструкции по анализу алгоритмов и руководство по написанию кода. Похожие темы:POJ 1182 Решение проблемы пищевой цепи Наблюдается m насекомых и n вязок. Насекомые u и v могут .
у нас есть некоторые ночные сборки машин, находящихся в библиотеки cuda установлен, но у которых не установлен CUDA-совместимый GPU. Эти машины способны создавать программы с поддержкой cuda, но они не способны запускать эти программы.
в нашем автоматизированном ночном процессе сборки наши скрипты cmake используют команду cmake
чтобы определить, установлено ли программное обеспечение cuda. Это устанавливает переменную cmake CUDA_FOUND на платформах, на которых установлено программное обеспечение cuda. Это здорово и это работает прекрасно. Когда CUDA_FOUND установлен, нормально создавать программы с поддержкой cuda. Даже если у машины нет CUDA-способного GPU.
но cuda-использование тестовых программ, естественно, терпит неудачу на машинах CUDA без GPU, в результате чего наши ночные панели мониторинга выглядят "грязными". Поэтому я хочу, чтобы cmake не запускал эти тесты на таких машинах. Но я все еще хочу создать программное обеспечение cuda на этих машинах.
после получение положительного CUDA_FOUND результат, я хотел бы проверить наличие фактического GPU, а затем установить переменную, скажем CUDA_GPU_FOUND , чтобы отразить это.
каков самый простой способ заставить cmake проверить наличие CUDA-способного gpu?
это должно работать на трех платформах: Windows с MSVC, Mac и Linux. (Вот почему мы используем CMake в первую очередь)
EDIT: есть несколько хороших предложений в ответах на то, как напишите программу для проверки на наличие GPU. То, что все еще отсутствует, - это средство получения CMake для компиляции и запуска этой программы во время конфигурации. Я подозреваю, что TRY_RUN команда в CMake будет критической здесь, но, к сожалению, эта команда почти без документов и я не могу выяснить, как заставить его работать. Эта часть проблемы CMake может быть гораздо более сложным вопросом. Возможно, мне следовало задать это как два отдельных вопроса.
ответ на этот вопрос состоит из двух частей:
- программа для обнаружения наличия CUDA-способного GPU.
- код CMake для компиляции, запуска и интерпретации результата этой программы во время настройки.
для части 1, программы нюхания gpu, я начал с ответа, предоставленного fabrizioM, потому что он настолько компактен. Я быстро обнаружил, что мне нужно много деталей, найденных в ответе unknown, чтобы заставить его работать что ж. В итоге я получил следующий исходный файл C, который я назвал has_cuda_gpu.c :
обратите внимание, что код возврата равен нулю в случае, когда найден GPU с поддержкой cuda. Это потому, что на одной из моих машин has-cuda-but-no-GPU эта программа генерирует ошибку времени выполнения с ненулевым кодом выхода. Таким образом, любой ненулевой код выхода интерпретируется как "cuda не работает на этой машине".
вы можете спросить, почему я не использую режим эмуляции cuda на машинах без GPU. Он потому что режим эмуляции глючит. Я только хочу отладить свой код и обойти ошибки в коде CUDA GPU. У меня нет времени отлаживать эмулятор.
вторая часть проблемы-это код cmake для использования этой тестовой программы. После некоторых усилий я все понял. Следующий блок является частью большего :
устанавливают CUDA_HAVE_GPU логическая переменная в cmake, которая впоследствии может использоваться для запуска условного оперативный.
мне потребовалось много времени, чтобы понять, что параметры include и link должны входить в строфу CMAKE_FLAGS и каким должен быть синтаксис. The документация try_run очень светлый, но больше информации в документация try_compile, который является тесно связанной командой. Мне все еще нужно было рыскать в интернете для примеров try_compile и try_run, прежде чем это сработает.
еще один сложный, но важной деталью является третий аргумент try_run в "переменные bindir". Вы, вероятно, всегда должны установить это в $ . В частности, не устанавливайте его в $ если вы находитесь в директории вашего проекта. CMake ожидает найти подкаталог CMakeFiles/CMakeTmp внутри bindir и выдает ошибки, если этот каталог не существует. Просто используйте $ , который является одним из мест, где эти подкаталоги, похоже, естественно проживают.
Использование внутреннего соединения, левого соединения, правого соединения в оракуле
Левое-правое соединение фактически говорит, какая таблица является результатом нашего совместного запроса ~ 1. Взаимосвязь проста select A.*, B.* from A,B where A.id = B.id select A.*, B.* from.
Интеллектуальная рекомендация
3 | 2 nvidia-smi
nvidia-smi Весь процесс представляет собой интерфейс управления системой NVIDIA, который основан на ранее представленной NVIDIA Management Library(NVML) Утилита командной строки, созданная для помощи в управлении и мониторинге устройств NVIDIA GPU.
Использование внутреннего соединения, левого соединения, правого соединения в оракуле
Левое-правое соединение фактически говорит, какая таблица является результатом нашего совместного запроса ~ 1. Взаимосвязь проста select A.*, B.* from A,B where A.id = B.id select A.*, B.* from.
6 | 3 Переключение между несколькими версиями cuda
воля ~/.bashrc Или ~/.zshrc Пути, связанные с cuda, изменены на /usr/local/cuda/ Не используйте /usr/local/cuda-8.0/ или /usr/local/cuda-9.0/ 。
nvcc: NVIDIA ® Cuda compiler driver
Copyright © 2005-2016 NVIDIA Corporation
Built on Mon_Jan_23_12:24:11_CST_2017
Cuda compilation tools, release 8.0, V8.0.62Читайте также: