当我直接使用TensorFlow运行代码时,一切正常。
但是,当我在屏幕窗口中运行它时,我得到以下错误。
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
我试过这个命令:
source /etc/profile
但它不起作用。
因为我使用ssh连接到服务器,屏幕是必要的。
我该怎么修呢?
当我直接使用TensorFlow运行代码时,一切正常。
但是,当我在屏幕窗口中运行它时,我得到以下错误。
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
我试过这个命令:
source /etc/profile
但它不起作用。
因为我使用ssh连接到服务器,屏幕是必要的。
我该怎么修呢?
4条答案
按热度按时间zyfwsgd61#
应遵循的步骤:
查找libcuda.so.1:
然后在terminal中使用以下命令添加到**$LD_LIBRARY_PATH**,在我的示例中为
/usr/local/cuda-10.0/compat
:yshpjwxd2#
背景
libcuda.so.1
是与CUDA驱动程序交互的库(与CUDA的“运行时API”相反,您需要libcudart.so.*
。现在,很可能在没有正确安装 * 驱动程序 * 的情况下正确安装了CUDA Toolkit。此错误可能是在这种情况下构建(非静态链接)CUDA应用程序的结果。
或者,也可能是库搜索路径配置错误-因为通常情况下,
libcuda.so.*
应该安装在该路径的某个目录中!那么,搜索路径上有什么呢?正如here所解释的,它是:
$LD_LIBRARY_PATH
中的目录/etc/ld.so.conf
中的目录/lib
/usr/lib
一个典型的场景是
/etc/ld.so.conf
添加,比如说,/usr/lib/x86_64-linux-gnu
;并且libcuda.so.*
在那里。底线
下面是你应该做的:
1.请确保已正确安装CUDA驱动程序(最新版本)。如果尚未安装,请下载并安装,问题已解决。
1.找到
libcuda.so.1
文件(例如使用locate
)。如果它被放置在某个奇怪的地方,不在库搜索路径中-按照步骤1操作。1.如果你想让驱动程序库安装在一个奇怪的地方,那么就把这个路径添加到你的用户的
$LD_LIBRARY_PATH
中。e5nszbig3#
尝试将
libcuda.so.1
路径放入LD_LIBRARY_PATH
环境变量。示例:
euoag5mw4#
根据我的条件,我在docker容器环境下开发,我做了以下步骤:
1.确认你的docker container已经运行了nvidia gpu
1.找到libcuda.so.1:
sudo find /usr/ -name 'libcuda.so.*'
1.然后在terminal中使用以下命令添加到
$LD_LIBRARY_PATH
,在我的示例中是/usr/local/cuda-11.5/compat
:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.5/compat