#cuda #nvidia
#cuda #nvidia
Вопрос:
Я компилирую исходный код с помощью p&f95 (компилятор Fortran).
Если я использую cuda 10.0, он успешно компилирует исходный код.
Однако, если я использую cuda 10.1, он завершается с ошибкой, показывая, что «не удается найти libcublasLt.so ‘.
Когда я сканирую каталог cuda-10.0/ lib64, cuda-10.1 / lib64, в обоих нет файла, начинающегося с ‘libcublasLt’.
Как я могу решить эту проблему?
Ответ №1:
libcublasLt.so
это библиотека, предоставляющая реализацию cublasLt API, которая определена здесь. Это просто отдельный общий объект из libcublas.so
В прошлом (например, CUDA 10.0 и предыдущие версии) большинство библиотек CUDA были установлены в /usr/local/cuda/lib64
(или аналогичных) по умолчанию (в Linux). Примерно на таймфрейме CUDA 10.1 было решено, что некоторые библиотеки будут установлены в разных местах. CUDA 10.1 также является тем местом, где были представлены cublasLt API и библиотека. Это повлияло на некоторые библиотеки cublas и обсуждается в заметках о выпуске CUDA 10.1 здесь (как введение библиотеки cublasLt, так и изменение расположения библиотек).
Итак, здесь есть 2 возможности (для CUDA 10.1, CUDA 10.2):
-
libcublasLt.so есть на вашем компьютере, но он просто не там, где вы ожидали его найти.
-
libcublasLt.so отсутствует на вашем компьютере. Это означает, что вы работаете с версией CUDA, предшествующей внедрению cublasLt API (т. Е. 10.0 или более ранней версии), или у вас произошла ошибка при установке.
Итак, предполагая, что вы работаете с CUDA 10.1 или CUDA 10.2, первым шагом является поиск / определение того, есть libcublasLt.so
на вашем компьютере или нет. Для этого вы можете использовать утилиту Linux, такую как find
или locate
. У них должны быть man
доступные для вас страницы.
Если вы можете его найти, то вам нужно указать путь к нему через спецификацию компоновщика (например -L/path/to/libcublasLt.so/
Если вы не можете его найти, значит, вы либо работаете с более старой версией CUDA (10.0 или более ранней), либо вам необходимо переустановить CUDA.
Я полагаю, что к тому времени, когда вы перейдете на CUDA 11.0, пакеты CUDA вернут cublas
библиотеки обратно в /usr/local/cuda/lib64
другие библиотеки. YMMV.
Комментарии:
1. Это означает, что 10.0 не имеет libcublasLt.so вообще ?
2. Хм… Я понимаю ваш второй момент » libcublasLt.so отсутствует на вашем компьютере. Это означает, что вы работаете с версией CUDA, предшествующей внедрению cublasLt API (т. Е. 10.0 или более ранней версии) «, поскольку в 10.0 его нет. Дело в том, что мне это нужно для компиляции библиотеки, но я не могу найти файл для 10.0.
3. Да, вы правы, это моя ошибка. cublasLt API был представлен с CUDA 10.1 (смотрите здесь ) и недоступен с CUDA 10.0 (смотрите здесь ). (Я удалил свой предыдущий комментарий, поскольку он неверен / вводит в заблуждение).