Can';由于CUDA问题,无法使tensorflow gpu在R中工作
我正在尝试开始使用Keras,我有一个新型的Nvidia GPU,但我似乎无法启动它,尽管我使用的是新安装的Ubuntu(20.04) 在我的第一次尝试中,我注意到Ubuntu检测到了我的图形卡,所以我通过进入“附加驱动程序”安装了它。然后我使用以下命令安装了Keras和Tensorflow,没有产生任何错误Can';由于CUDA问题,无法使tensorflow gpu在R中工作,r,tensorflow,keras,R,Tensorflow,Keras,我正在尝试开始使用Keras,我有一个新型的Nvidia GPU,但我似乎无法启动它,尽管我使用的是新安装的Ubuntu(20.04) 在我的第一次尝试中,我注意到Ubuntu检测到了我的图形卡,所以我通过进入“附加驱动程序”安装了它。然后我使用以下命令安装了Keras和Tensorflow,没有产生任何错误 install.packages("keras") library(keras) install_keras(tensorflow = "gpu"
install.packages("keras")
library(keras)
install_keras(tensorflow = "gpu")
然而,当我试图建立一个Keras模型时
model <- keras_model_sequential() %>%
layer_dense(units = 16, activation = "relu", input_shape = c(10000)) %>%
layer_dense(units = 16, activation = "relu") %>%
layer_dense(units = 1, activation = "sigmoid")
您可能会注意到,此错误消息提到了cuda-11.2
,但是,当我使用系统默认的cuda-10.1
时,我收到了一条几乎相同的错误消息,我想这是驱动程序附带的
我做了很多事情,包括使用Nvidia的文档直接从Nvidia的网站下载并尝试安装cuDNN,以及将cuda添加到PATH
和LD_LIBRARY_PATH
,但都没有成功
最后,我删除了我的r-networkite
conda环境,这样我就可以从头开始重新安装Tensorflow,但要针对cuda 11.2而不是默认的10.1
我遵循了上面的说明,但我用11.2替换了10.1的每个实例,用libcudnn.so.8替换了libcudnn.so.7,因为这是可用的最新版本,也是我下载到系统中的版本,这让我看到了上面的错误消息,与我使用10.1时得到的错误消息几乎相同,这是我电脑的默认设置
另外,当我再次尝试在R中使用Tensorflow时,我注意到了一些奇怪的事情。我使用install\u keras(tensorflow=“gpu”)
安装了它,没有明显的问题,但是当我调用以下命令时:
imdb <- dataset_imdb(num_words = 10000)
但它不能在其他地方使用其他文件
2021-01-14 09:04:53.227139: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/arta/.local/share/r-miniconda/envs/r-reticulate/lib:/usr/lib/R/lib:/usr/local/cuda-11.2/lib64:::/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server:/usr/local/cuda-11.2/lib64
我现在该怎么办?为什么我不能让gpu加速工作?我的计划是按照那篇博文中的说明,从Ubuntu中清除所有Nvidia软件,然后再次尝试使用10.1,因为这似乎是最稳定的版本。多亏了@RobertCrovella,我卸载了CUDA、cuDNN等。因为版本不匹配,我用cuDNN 8.0重新安装了CUDA 11.0版
> tensorflow::tf_gpu_configured()
...
tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 8779 MB memory) -> physical GPU (device: 0, name: GeForce RTX 3080, pci bus id: 0000:09:00.0, compute capability: 8.6)
GPU device name: /device:GPU:0[1] TRUE
我是否正确理解,如果我将cuda 11.0和cuDNN 8.0安装到cuda 11.0,那么所有这些错误都会消失 我已经安装了cuda 11.2,并找到了cuDNN 8到cuda 11.1。我用python3(3.8 Ubuntu20.04.1 LTS默认值)pip3和tensorflow等安装了它们。在python中rip似乎可以工作,但在R中它坏了。
我已经创建了到现有版本的符号链接,并且一个R代码到达了应该使用gpu的位置,但是由于核心转储而被中止。您的TF希望使用CUDA 11.0。你有CUDA 11.2。您不能将CUDA 11.2用作CUDA 11的替代品。0@RobertCrovella如果我要清除所有与Nvidia CUDA相关的软件和图形卡驱动程序并重新启动,为了与libcudnn和Tensorflow的最佳兼容性,您建议我使用哪个版本的CUDA?最好将其作为评论发布,而不是回答。
2021-01-14 09:00:06.766462: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.11.0
2021-01-14 09:04:53.227139: W tensorflow/stream_executor/platform/default/dso_loader.cc:60] Could not load dynamic library 'libcusolver.so.10'; dlerror: libcusolver.so.10: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/arta/.local/share/r-miniconda/envs/r-reticulate/lib:/usr/lib/R/lib:/usr/local/cuda-11.2/lib64:::/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/default-java/lib/server:/usr/local/cuda-11.2/lib64
> tensorflow::tf_gpu_configured()
...
tensorflow/core/common_runtime/gpu/gpu_device.cc:1406] Created TensorFlow device (/device:GPU:0 with 8779 MB memory) -> physical GPU (device: 0, name: GeForce RTX 3080, pci bus id: 0000:09:00.0, compute capability: 8.6)
GPU device name: /device:GPU:0[1] TRUE