Профайлер CUDA nvprof в 12.04

У меня есть последний набор инструментов 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 г.). Исправление все еще работает, вам просто нужно использовать обновленную библиотеку (см. Ниже).

1
задан 13 April 2017 в 15:23

1 ответ

Вероятно, это связано с неправильным набором $ LD_LIBRARY_PATH. Эта переменная среды должна включать путь к библиотеке CUDA. Пример:

setenv QUDA_INSTALL_PATH /usr/local/cuda/lib64 

setenv LD_LIBRARY_PATH $QUDA_INSTALL_PATH/lib64:$LD_LIBRARY_PATH
1
ответ дан 24 May 2018 в 23:48
  • 1
    Как я уже сказал, я уверен, что это не проблема. Я добавил некоторые детали к вопросу, чтобы показать, как я это вынес. – Logan Mayfield 10 April 2013 в 22:27
  • 2
    Может быть, это проблема с 32-битной и 64-разрядной версиями? Также вы можете попробовать использовать трюк LD_PRELOAD – ritter 10 April 2013 в 23:49
  • 3
    Пробовал $ LD_PRELOAD = / путь / в / lib nvprof myprogram и получил ту же ошибку. Поэтому, если я правильно сделал трюк, это тоже не так. – Logan Mayfield 11 April 2013 в 20:23

Другие вопросы по тегам:

Похожие вопросы: