У меня есть исполняемый файл, который работает в данной системе, с Nvidia Cuda версии 8.
В более новой системе, работающей в настоящее время с последними CentOS 7.6 и Cuda 10.1, я получаю
error while loading shared libraries: libnvblas.so.8.0: cannot open shared object file
так что одно быстрое решение - сделать
ln -s /usr/lib64/libnvblas.so /usr/lib64/libnvblas.so.8.0
ln -s /usr/local/cuda/lib64/libcudart.so /usr/local/cuda/lib64/libcudart.so.8.0
{it errors on only these two}
Теперь в cuda 8 соглашение об именах файлов и файлов отличалось от того, что есть сейчас, но, например, в cuda 10.1 именно это указано в /usr/local/cuda/lib64/
lrwxrwxrwx 17 libcudart.so -> libcudart.so.10.1
lrwxrwxrwx 21 libcudart.so.10.1 -> libcudart.so.10.1.105
-rwxr-xr-x 504480 libcudart.s0.10.1.105
-rw-r--r-- 888488 libcudart_static.a
- что есть или есть? правильное или правильное соглашение о схеме нумерации .so ? Из того, что я понял, нужно просто ВСЕГДА ссылка против
whatever.so
, где эта ссылка будет указывать на последнюю версию?
- Что касается ошибки, с которой я сталкиваюсь, то какова причина этого? Как можно скомпилировать и ссылаться именно на такую версию .so? так что я знаю, как этого избежать сам