我正在尝试在 Ubuntu 18.04 上使用 tensorflow深度学习 AMI从 Amazon 下载,其中已安装所有 CUDA 版本。但是,由于一些 $PATH 问题,让 tensorflow 1.X 与 GPU 配合使用并不容易。如果不采取任何措施,使用 TF 1.X 时会发生此运行时错误:
2020-03-25 16:31:58.162200: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'libcudart.so.10.0'; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory
但它在 TF 2.X 上可以正常工作
所以在阅读了一些帖子之后喜欢这个或这,我决定将这些命令添加到 1) 中~/.bashrc
,然后再添加到 2) 中~/.profile
:
export LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64:$LD_LIBRARY_PATH"
export PATH="/usr/local/cuda-10.0/bin:$PATH"
但没有效果(我确实重新启动了机器或使用了source ~/.bashrc
命令)。
但是,如果我将这些变量添加到/etc/environment
TensorFlow,它就会找到这些变量并完美运行!问题是,它完全破坏了机器,因为我认为它会覆盖所有其他$PATH
变量LD_LIBRARY_PATH
。我的理论是,由于/etc/environment
该变量具有最高优先级,LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda-10.0/extras/CUPTI/lib64
因此它正是 TF 1.X 所需要的。
问题:
我该如何正确添加这个变量,以便 TF 1.X 找到它的 CUDA-10.0 文件并且 TF 2.X 找到它的更高 CUDA 版本?
答案1
我自己的问题的答案就在这里:为 CUDA 设置 LD_LIBRARY_PATH和它的这个帖子但不要忘记sudo ldconfig