У меня есть последний набор инструментов CUDA и драйверы, установленные на сервере 12.04. Драйверы работают нормально: весь образец кода NVIDIA компилируется и запускается, и я написал, скомпилировал и запустил несколько программ CUDA. На днях я пошел использовать новый профилировщик командной строки nvprof и был встречен со следующей ошибкой:
Error: unable to locate profiling library libcuinj64.so.5.0.35.
Я дважды проверял библиотеки CUDA, и эта конкретная библиотека фактически включена в LD_LIBRARY_PATH. (Я использовал описанный здесь метод). Запуск ldconfig -v показывает, что все библиотеки Cuda загружаются в LD_LIBRARY_PATH:
/usr/local/cuda-5.0/lib:
libcurand.so.5.0 -> libcurand.so.5.0.35
libnpp.so.5.0 -> libnpp.so.5.0.35
libcusparse.so.5.0 -> libcusparse.so.5.0.35
libcufft.so.5.0 -> libcufft.so.5.0.35
**libcuinj32.so.5.0 -> libcuinj32.so.5.0.35**
libcudart.so.5.0 -> libcudart.so.5.0.35
libnvToolsExt.so.5.0 -> libnvToolsExt.so.5.0.35
libcublas.so.5.0 -> libcublas.so.5.0.35
/usr/local/cuda-5.0/lib64:
libcurand.so.5.0 -> libcurand.so.5.0.35
libcuinj64.so.5.0 -> libcuinj64.so.5.0.35
libnpp.so.5.0 -> libnpp.so.5.0.35
libcusparse.so.5.0 -> libcusparse.so.5.0.35
libcufft.so.5.0 -> libcufft.so.5.0.35
libcudart.so.5.0 -> libcudart.so.5.0.35
libnvToolsExt.so.5.0 -> libnvToolsExt.so.5.0.35
libcublas.so.5.0 -> libcublas.so.5.0.35
Обижающая библиотека выделена жирным шрифтом. На данный момент старый компилятор командной строки отлично работает, сам компилятор отлично работает, поэтому он определен как nvprof.
Я не уверен, что это Ubuntu или сборка nvprof, предоставленная NVIDIA. У кого-нибудь есть опыт работы с nvprof до 12.04 или даже 12.10? Кто-нибудь видел эту проблему раньше? Я понимаю, что это довольно нишевый вопрос, но вы никогда не знаете.
UPDATE: эта проблема, похоже, сохраняется на Ubuntu 12.04 с CUDA 5.5 (выпущена 1 августа 2013 г.). Исправление все еще работает, вам просто нужно использовать обновленную библиотеку (см. Ниже).
Вероятно, это связано с неправильным набором $ LD_LIBRARY_PATH. Эта переменная среды должна включать путь к библиотеке CUDA. Пример:
setenv QUDA_INSTALL_PATH /usr/local/cuda/lib64
setenv LD_LIBRARY_PATH $QUDA_INSTALL_PATH/lib64:$LD_LIBRARY_PATH