не удалось найти nvcc ошибка

Вопрос или проблема

Я пытаюсь настроить инструмент, который требует nvcc, но не могу этого сделать. Вот что у меня есть на данный момент:

  • Установлен инструментальный комплект CUDA
  • Проверил с помощью nvcc -V

вывод:

nvcc: NVIDIA (R) Cuda compiler driver
Авторское право (c) 2005-2013 NVIDIA Corporation
Собрано в Fri_Mar_14_19:30:01_PDT_2014
Инструменты компиляции Cuda, выпуск 6.0, V6.0.1
  • Инструментальный комплект CUDA установлен по адресу /usr/local/cuda-7.0
  • Ссылка на /usr/local/cuda (инструмент смотрит в этот каталог)

Когда я запускаю setup.py
я получаю несколько сообщений об ошибках, наиболее важные сообщения об ошибках:

/bin/sh: /usr/local/cuda/bin/nvcc: невозможно выполнить бинарный файл: Ошибка формата Exec
none
не удалось выполнить команду '/usr/local/cuda/bin/nvcc -V'

~пропуская много строк

SystemError: Компилятор CUDA Nvida 'nvcc' не может быть найден.

В то время как…

user@workgroup:~$ cd /usr/local/cuda
user@workgroup:~/usr/local/cuda$ ls
bin2c
computeprof
crt
cudafe
cudafe++
cuda-gdb
cuda-gdbserver
cuda-install-samples-7.0.sh
cuda-memcheck
cuobjdump
fatbinary
filehash
nsight
nvcc << да, он там! 
nvcc.profile
nvdisasm
nvlink
nvprof
nvprune
nvvp
ptxas
test
uninstall_cuda_7.0.pl

Что здесь не так? Очевидно, что он установлен, и я (почти) уверен, что расположение каталога правильное :\

PS: я пытался добавить $PATH в файл .bashrc, но безуспешно:

PATH=/usr/local/cuda-7.0/bin:$PATH
PATH=/usr/local/cuda/bin:$PATH

Буду признателен за любой ответ
Всё уже спасибо!

PPS: я использую cygwin…

редактировать
вывод типа (#1):

user@workgroup~/usr/local/cuda/bin
type nvcc
nvcc закеширован (/cygdrive/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v6.0/bin/nvcc)

вывод типа (#2 – (несколько минут спустя) я не знаю, что я сделал):

user@workgroup~/usr/local/cuda/bin
type nvcc
nvcc находится по адресу /usr/local/cuda/bin/nvcc (то же самое, что и каталог cuda-7.0, но начало вывода немного отличается (nvcc закеширован))

Основная ошибка, вызывающая проблему, заключается в том, что nvcc не может быть выполнен, что может вызвать это?

bash: /usr/local/cuda/bin/nvcc: невозможно выполнить бинарный файл: Ошибка формата Exec

Похоже, это было вызвано попыткой использовать инструментальный комплект CUDA для Linux под CYGWIN. Единственная конфигурация, которая будет работать на платформе Windows, – это использование инструментального комплекта Windows с поддерживаемой версией Visual Studio.

Ответ или решение

Ошибка "nvcc can’t be found", с которой вы столкнулись, является распространенной проблемой, особенно в средах, где используется Cygwin для работы с CUDA. Давайте разберем вашу ситуацию и выясним основные моменты, которые могут привести к возникновению данной ошибки, а также способы ее устранения.

Описание проблемы

Из ваших данных видно, что вы установили CUDA Toolkit, проверили версию nvcc и убедились, что файл nvcc действительно существует в соответствующей директории. Однако, при выполнении setup.py возникает ошибка:

/bin/sh: /usr/local/cuda/bin/nvcc: cannot execute binary file: Exec format error

Это указывает на то, что система не может выполнить бинарный файл nvcc, и причина, скорее всего, связана с несовместимостью форматов.

Анализ

  1. Использование Cygwin:
    Cygwin предоставляет среду, в которой можно использовать некоторые утилиты и команды Linux, но не является полным воспроизведением Linux. CUDA Toolkit, который вы пытаетесь использовать, был предназначен для операционных систем на базе Linux. Это может привести к проблемам, так как бинарные файлы, такие как nvcc, не совместимы с Cygwin или Windows.

  2. Формат исполняемого файла:
    Ошибка "Exec format error" возникает, когда вы пытаетесь запустить исполняемый файл, который не соответствует архитектуре вашей операционной системы. Например, вы можете пытаться выполнить 64-битный Linux бинарник на 32-битной системе или на системе, не поддерживающей Linux бинарные файлы.

Рекомендации по устранению

Чтобы решить эту проблему, следуйте следующим шагам:

  1. Используйте Windows-версию CUDA Toolkit:
    Убедитесь, что вы установили версию CUDA Toolkit, предназначенную для Windows. Это даст вам возможность работать с nvcc и другими инструментами CUDA напрямую в среде Windows без необходимости использования Cygwin.

  2. Убедитесь, что nvcc доступен в PATH:
    После установки Windows-версии CUDA Toolkit убедитесь, что пути к бинарным файлам CUDA добавлены в системный PATH. Обычно это будет что-то вроде:

    C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y\bin

    где X.Y – это номер версии.

  3. Перезапустите терминал или компьютер:
    После внесения изменений в переменные среды (PATH) иногда требуется перезапустить терминал или даже компьютер, чтобы изменения вступили в силу.

  4. Проверка работоспособности nvcc:
    Откройте командную строку (CMD) и выполните команду nvcc -V. Это должно вернуть информацию о версии компилятора.

  5. Используйте Visual Studio:
    Для разработки с использованием CUDA на Windows рекомендуется использовать Visual Studio, так как она предоставляет соответствующую поддержку и интеграцию с CUDA Toolkit.

Заключение

Использование Cygwin с CUDA Toolkit для Linux – это основной источник вашей проблемы. Переход на Windows-версию CUDA Toolkit позволит вам избежать проблем с несовместимостью и обеспечит правильную работу nvcc в вашей среде разработки. Если будут дополнительные вопросы или понадобится дальнейшая помощь, не стесняйтесь обращаться.

SEO элементы

Чтобы помочь другим пользователям в поиске решения данной проблемы, убедитесь, что в заголовках и тексте содержатся ключевые фразы, такие как "nvcc can’t be found", "Cygwin CUDA Toolkit", "использование Windows-версии CUDA", "Exec format error", и так далее. Это поможет улучшить видимость вашего поста в поисковых системах.

Оцените материал
Добавить комментарий

Капча загружается...