настройка LD_LIBRARY_PATH для CUDA

12

В результате установки инструментария CUDA на консоль выводятся следующие инструкции.

Пожалуйста, убедитесь, что ваш LD_LIBRARY_PATH для 64-битных дистрибутивов Linux включает /usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib

ИЛИ

для 64-битных дистрибутивов Linux добавьте /usr/local/cuda-5.0/lib64 и /usr/local/cuda-5.0/lib в /etc/ld.so.conf и запустите ldconfig от имени пользователя root

Следующий код в не /etc/profileимел никакого эффекта.

if [ -z "$LD_LIBRARY_PATH" ]; then    
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH

То есть перезагрузка и выдача echo $LD_LIBRARY_PATHпоказали, что переменная не была определена.

Чтобы попробовать альтернативное предложение, я добавил две строки в файл, /etc/ld.so.confчтобы мой файл выглядел следующим образом

include /etc/ld.so.conf.d/*.conf 
/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Тогда я выпустил:

sudo ldconfig

тогда

echo $LD_LIBRARY_PATH

Тем не менее переменная окружения не была установлена. Как выполнить инструкции по установке CUDA, приведенные выше?

H2ONaCl
источник
1
ldconfig не устанавливает LD_LIBRARY_PATH, он включает библиотеки по-другому.
w4etwetewtwet

Ответы:

17

Добавьте файл с .confрасширением /etc/ld.so.conf.d/ , содержащим пути к библиотекам, и запустите ldconfig. Обязательно установите права доступа и владельца файла, чтобы они соответствовали другим файлам в каталоге.

Это общесистемное решение, а не пользовательское решение модификации .bashrc.

На моей системе я сделал nvidia.confв /etc/ld.so.conf.d/. Файл содержит строки:

/usr/local/cuda-5.0/lib64
/usr/local/cuda-5.0/lib

Если вы создаете файл как, sudoтогда ваши права должны быть хорошими, но my nvidia.confis owner / group root и rw-r - r-- (или 644).

Логан Мэйфилд
источник
1
Это не похоже на работу. ldconfig не устанавливает $ LD_LIBRARY_PATH.
Ник
1
Насколько я понимаю, это решает проблему таким образом, что вам не нужно устанавливать переменную пути. Так что, если «не работает» означает, что переменная не установлена, то обязательно. Если «не работает» означает, что CUDA не работает, тогда требуется дополнительная информация о вашей проблеме, поскольку это включило (и продолжает включать) разработку CUDA на моей установке.
Логан Мэйфилд
Я уверен, что это работает для некоторых вещей, программа, которую я пытался скомпилировать, хочет использовать $ LD_LIBRARY_PATH, что, вероятно, не лучшая практика, это означает, что мне нужно установить его!
Ник
10

Поместите следующее в .bashrc.

if [ -z $LD_LIBRARY_PATH ]; then
  LD_LIBRARY_PATH=/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
else
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.0/lib64:/usr/local/cuda-5.0/lib
fi
export LD_LIBRARY_PATH
H2ONaCl
источник
Я думаю, что предпочтительным методом является создание файла .conf. Я описал это в своем ответе ниже.
Логан Мэйфилд