Вопрос или проблема
Каковы точные шаги для запуска образца программы .cu? Я нашел образец приложения под названием vectorAdd, и я не совсем знаю, как его скомпилировать и запустить. В сети говорится, что
nvcc -o a.out vectorAdd.cu
./a.out
сделает это, но я получаю ошибку
nvcc: команда не найдена
Что мне делать?
P.S.: Я использую Ubuntu 16.04, ARM
Откройте терминал и введите:
gedit ~/.bashrc
Это откроет файл .bashrc для редактирования. Добавьте следующее в конец вашего файла .bashrc.
export PATH="$PATH:/usr/local/cuda-8.0/bin"
Это задает переменную PATH как существующий PATH плюс то, что вы добавите в конец.
Запустите source ~/.bashrc
, находясь в домашнем каталоге, чтобы перезагрузить конфигурацию для вашей сессии.
Затем введите nvcc
для запуска.
Сначала прочитайте разделы Ubuntu в вашем Руководстве по установке CUDA: например, https://docs.google.com/viewer?url=https%3A%2F%2Fdocs.nvidia.com%2Fcuda%2Fpdf%2FCUDA_Installation_Guide_Linux.pdf&pdf=true
Рекомендации в главе 6 по настройке переменных окружения PATH и LD_LIBRARY_PATH указывают, что ваши добавления CUDA должны находиться в начале существующего PATH. Это позволяет заменить системные g++ или gcc более старыми версиями, просто добавив ссылки на …cuda/bin к нужной вам версии. Последнее, что вы хотите сделать, это изменить компилятор по умолчанию системы — один, который может не успешно обновить ваш видеодрайвер, когда происходит обновление ядра.
Если все, что вы делаете, может использовать старый компилятор, продолжайте и измените настройку PATH в вашем .profile, чтобы при каждом входе ваш путь CUDA настраивался. Если вы хотите, чтобы ваша работа с CUDA использовала старый компилятор, внесите изменения PATH и LD_LIBRARY_PATH в сценарий, который вы будете загружать, когда захотите.
Распределенные примеры не подлежат записи, поэтому руководство рекомендует скопировать их в доступное для записи место (принадлежащее вам).
nvcc находится в …cuda/bin, и если ваш PATH правильный, его следует найти. Проверьте это с помощью
nvcc –version
Все примеры имеют Makefile, поэтому правильный способ собрать пример — просто ввести команду “make” (без кавычек) в каталоге примера.
Ваш прямой компилятор не сработал бы, потому что необходимые включаемые файлы не были бы найдены — Makefile содержит явные пути, необходимые для поиска включений в своей команде компиляции. В примерах есть верхний уровень Makefile, который должен запускать все индивидуальные makefile для примеров, но некоторые могут потребовать дополнительные библиотеки, и по крайней мере один, кажется, требует много памяти (simpleSeparateCompilation) и займет много времени, если произойдет обмен.
Ответ или решение
Для того чтобы запустить образец программы на CUDA, такой как vectorAdd, следуйте приведенным ниже шагам. Поскольку вы используете Ubuntu 16.04 на архитектуре ARM, убедитесь, что у вас установлен CUDA Toolkit и настроена среда.
Шаги для запуска программы vectorAdd
-
Установка CUDA Toolkit:
Убедитесь, что CUDA Toolkit установлен на вашем компьютере. Вы можете скачать его с официального сайта NVIDIA. Если у вас он уже установлен, переходите к следующему шагу. -
Настройка переменных окружения:
Вам нужно добавить путь к утилитам CUDA в переменную окруженияPATH
. Для этого откройте терминал и выполните:gedit ~/.bashrc
В файле
.bashrc
добавьте в конец следующие строки:export PATH="$PATH:/usr/local/cuda/bin" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
Не забудьте сохранить файл и закрыть редактор.
-
Применение изменений:
Сразу же примените изменения в терминале командой:source ~/.bashrc
-
Проверка установки nvcc:
Проверьте, установлена ли утилитаnvcc
(компилятор CUDA). Введите в терминал:nvcc --version
Если команда возвращает версию компилятора, можете продолжать.
-
Копирование образцов:
Образцы CUDA можно найти в папке, в которую установлен CUDA Toolkit. Вам может понадобиться их скопировать в рабочую директорию. Для этого выполните:cp -r /usr/local/cuda/samples ~/cuda_samples
-
Сборка образца vectorAdd:
Перейдите в директорию с образцами:cd ~/cuda_samples/1_Utilities/vectorAdd
Затем запустите команду сборки:
make
Это должно скомпилировать программу без ошибок.
-
Запуск программы:
После успешной сборки выполните программу vectorAdd, введя в терминале:./vectorAdd
Решение возможных проблем
-
Ошибка "nvcc: command not found": Убедитесь, что пути к
cuda/bin
иcuda/lib64
правильно добавлены в ваш.bashrc
, и разумно перезапустить терминал или выполнитьsource ~/.bashrc
для применения изменений. -
Ошибки при компиляции: Если компиляция не удалась, проверьте, установлен ли CUDA и правильность ваших путей. Каждый образец может требовать специфичных библиотек, убедитесь, что все зависимости установлены.
Заключение
Следуя вышеуказанным шагам, вы сможете успешно скомпилировать и запустить программу vectorAdd на вашей системе. Если у вас возникнут дополнительные вопросы или проблемы, вы можете обратиться к документации CUDA или сообществу NVIDIA для получения дополнительной помощи.