前提:主机ubuntu20.04系统,设置多用户访问和cuda配置,记录一些设置过程和存在的问题
使用GUI添加新用户,一个管理员账户和其他标准账户
cuda配置
在管理员用户下配置全局共享的cuda计算工具(省的其他用户重新安装配置一次),按照正常安装过程安装cuda 11(安装至/usr/local/)和cudnn 8.1,cudnn正常复制到对应目录,在添加环境变量的时候,修改.bashrc文件:
gedit ~/.bashrc
#添加路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
# 保存退出,激活
source ~/.bashrc
切换到其他用户下,同样修改该用户的.bashrc,(用户自行配置cuda的时候可重新指定),按照上述路径添加环境变量,但使用pycharm运行tensorflow出现问题(pytorch好像不会出现该问题),找不到相应的库文件。具体为直接使用pycharm run .py文件,按照默认configurations运行,tensorflow无法找到:
Could not load dynamic library 'libcudart.so.11.0'; dlerror: libcudart.so.11.0: cannot open shared object file: No such file or directory
......
dynamic library libcudart.so.11.0
dynamic library libcublas.so.11
dynamic library libcublasLt.so.11
dynamic library libcusparse.so.11
dynamic library libcudnn.so.8
.......
这些文件都位于/usr.local/cuda/lib64路径下,一个解决方法是修改run的config文件的环境变量:
增加LD_LIBRARY_PATH 项,值为/usr/local/cuda/lib64,也就是刚刚报错的库文件路径。但是直接在命令行输入命令运行并不会出现上述问题,虽然没有本质的影响,但没搞清楚为啥,如:python mian.py 能够正常运行(同样是虚拟环境),猜测是bashrc环境变量的问题,pycharm继承系统环境失效。
第二个解决方法是真-全局配置;这里涉及环境变量作用域的问题,如 https://www.jianshu.com/p/464507128800,https://blog.csdn.net/smile_from_2015/article/details/80058351。
所以就直接修改全局配置:/etc/profile,增加cuda路径到PATH,增加LD_LIBRARY_PATH: