当前位置: 首页 > 面试题库 >

在使用conda tensorflow-gpu软件包之前是否仍然需要安装CUDA?

松飞翮
2023-03-14
问题内容

当我通过Conda安装tensorflow-gpu时; 它给了我以下输出:

conda install tensorflow-gpu
Collecting package metadata (current_repodata.json): done
Solving environment: done


## Package Plan ##

  environment location: /home/psychotechnopath/anaconda3/envs/DeepLearning3.6

  added / updated specs:
    - tensorflow-gpu


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _tflow_select-2.1.0        |              gpu           2 KB
    cudatoolkit-10.1.243       |       h6bb024c_0       347.4 MB
    cudnn-7.6.5                |       cuda10.1_0       179.9 MB
    cupti-10.1.168             |                0         1.4 MB
    tensorflow-2.1.0           |gpu_py36h2e5cdaa_0           4 KB
    tensorflow-base-2.1.0      |gpu_py36h6c5654b_0       155.9 MB
    tensorflow-gpu-2.1.0       |       h0d30ee6_0           3 KB
    ------------------------------------------------------------
                                           Total:       684.7 MB

The following NEW packages will be INSTALLED:

  cudatoolkit        pkgs/main/linux-64::cudatoolkit-10.1.243-h6bb024c_0
  cudnn              pkgs/main/linux-64::cudnn-7.6.5-cuda10.1_0
  cupti              pkgs/main/linux-64::cupti-10.1.168-0
  tensorflow-gpu     pkgs/main/linux-64::tensorflow-gpu-2.1.0-h0d30ee6_0

我看到安装tensorflow-
gpu会自动触发cudatoolkit和cudnn的安装。这是否意味着我不再需要手动安装CUDA和CUDNN即可使用tensorflow-
gpu?此CUDA的conda安装在哪里?

我首先以旧方式安装了CUDA和CuDNN(例如,按照以下安装说明进行操作:https ://docs.nvidia.com/cuda/cuda-
installation-guide-linux/index.html )

然后我注意到tensorflow-gpu也在安装cuda和cudnn

我现在是否已安装两个版本的CUDA / CuDNN,该如何检查?


问题答案:

我现在是否已安装两个版本的CUDA,该如何检查?

没有。

conda将安装支持其提供的CUDA加速软件包所需的最少可再发行库组件。软件包名称cudatoolkit是完整的误称。这不是什么。即使现在它的范围已从以前的范围(从原来的5个文件大大扩展了,我认为在某些时候他们也一定已经从NVIDIA获得了许可协议,因为其中一些不在/不在官方的“自由重新分发”列表AFAIK),它基本上仍然只是少数几个库。

您可以自己检查:

cat /opt/miniconda3/conda-meta/cudatoolkit-10.1.168-0.json 
{
  "build": "0",
  "build_number": 0,
  "channel": "https://repo.anaconda.com/pkgs/main/linux-64",
  "constrains": [],
  "depends": [],
  "extracted_package_dir": "/opt/miniconda3/pkgs/cudatoolkit-10.1.168-0",
  "features": "",
  "files": [
    "lib/cudatoolkit_config.yaml",
    "lib/libcublas.so",
    "lib/libcublas.so.10",
    "lib/libcublas.so.10.2.0.168",
    "lib/libcublasLt.so",
    "lib/libcublasLt.so.10",
    "lib/libcublasLt.so.10.2.0.168",
    "lib/libcudart.so",
    "lib/libcudart.so.10.1",
    "lib/libcudart.so.10.1.168",
    "lib/libcufft.so",
    "lib/libcufft.so.10",
    "lib/libcufft.so.10.1.168",
    "lib/libcufftw.so",
    "lib/libcufftw.so.10",
    "lib/libcufftw.so.10.1.168",
    "lib/libcurand.so",
    "lib/libcurand.so.10",
    "lib/libcurand.so.10.1.168",
    "lib/libcusolver.so",
    "lib/libcusolver.so.10",
    "lib/libcusolver.so.10.1.168",
    "lib/libcusparse.so",
    "lib/libcusparse.so.10",
    "lib/libcusparse.so.10.1.168",
    "lib/libdevice.10.bc",
    "lib/libnppc.so",
    "lib/libnppc.so.10",
    "lib/libnppc.so.10.1.168",
    "lib/libnppial.so",
    "lib/libnppial.so.10",
    "lib/libnppial.so.10.1.168",
    "lib/libnppicc.so",
    "lib/libnppicc.so.10",
    "lib/libnppicc.so.10.1.168",
    "lib/libnppicom.so",
    "lib/libnppicom.so.10",
    "lib/libnppicom.so.10.1.168",
    "lib/libnppidei.so",
    "lib/libnppidei.so.10",
    "lib/libnppidei.so.10.1.168",
    "lib/libnppif.so",
    "lib/libnppif.so.10",
    "lib/libnppif.so.10.1.168",
    "lib/libnppig.so",
    "lib/libnppig.so.10",
    "lib/libnppig.so.10.1.168",
    "lib/libnppim.so",
    "lib/libnppim.so.10",
    "lib/libnppim.so.10.1.168",
    "lib/libnppist.so",
    "lib/libnppist.so.10",
    "lib/libnppist.so.10.1.168",
    "lib/libnppisu.so",
    "lib/libnppisu.so.10",
    "lib/libnppisu.so.10.1.168",
    "lib/libnppitc.so",
    "lib/libnppitc.so.10",
    "lib/libnppitc.so.10.1.168",
    "lib/libnpps.so",
    "lib/libnpps.so.10",
    "lib/libnpps.so.10.1.168",
    "lib/libnvToolsExt.so",
    "lib/libnvToolsExt.so.1",
    "lib/libnvToolsExt.so.1.0.0",
    "lib/libnvblas.so",
    "lib/libnvblas.so.10",
    "lib/libnvblas.so.10.2.0.168",
    "lib/libnvgraph.so",
    "lib/libnvgraph.so.10",
    "lib/libnvgraph.so.10.1.168",
    "lib/libnvjpeg.so",
    "lib/libnvjpeg.so.10",
    "lib/libnvjpeg.so.10.1.168",
    "lib/libnvrtc-builtins.so",
    "lib/libnvrtc-builtins.so.10.1",
    "lib/libnvrtc-builtins.so.10.1.168",
    "lib/libnvrtc.so",
    "lib/libnvrtc.so.10.1",
    "lib/libnvrtc.so.10.1.168",
    "lib/libnvvm.so",
    "lib/libnvvm.so.3",
    "lib/libnvvm.so.3.3.0"
  ]

  .....

即您得到的是(记住上面的那些“文件”大部分只是符号链接)

  • CUBLAS运行时
  • CUDA运行时库
  • CUFFT运行时
  • CUrand运行时
  • 稀疏的rutime
  • CUsolver运行时
  • NPP运行时
  • nvblas运行时
  • NVTX运行时
  • NVgraph运行时
  • NVjpeg运行时
  • NVRTC / NVVM运行时

conda安装的CUDNN软件包是可再发行的二进制发行版,与NVIDIA发行的二进制发行版完全相同-正好是两个文件,一个头文件和一个库。

您仍然需要安装受支持的NVIDIA驱动程序,才能使conda安装的tensorflow正常工作。



 类似资料:
  • 问题内容: 我正在尝试由Richard Stevens在Unix Network Programming中给出的代码。但我无法获取代码进行编译。 这是源代码。 http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-f00/unpv12e/libroute/ 我没有头文件net / if_dl.h,并且net / route.h头文件不包

  • 问题内容: 当我浏览一些代码时,我注意到使用logger的方式如下, 但是在某些代码中,我是这样观察的。 当我查看log4j的源代码时,已检查了Logger本身的方法 。那为什么我们需要这些不必要的开销呢? 问题答案: 当传递给您的字符串花费时间评估时,这很有用,在这种情况下,如果未启用调试,则可以跳过此评估。 IMO使得代码的可读性大大降低,因此只有在性能有了显着提高时才应使用它。

  • 问题内容: 我尝试从/ home / iwan / my-project目录中使用npm安装Express软件包: 奇怪的是npm不在当前目录(/ home / iwan / my-project / node_modules / express)中安装Express软件包,而是在/ home / iwan / node_modules / express中安装Express软件包。 我错过了什么

  • 问题内容: 检查软件包是否在Python脚本中安装的好方法是什么?我知道从解释器很容易,但是我需要在脚本中完成。 我想我可以检查安装过程中在系统上是否创建了目录,但是我觉得有更好的方法。我试图确保已安装Skype4Py软件包,如果没有,我将安装它。 我完成支票的想法 检查典型安装路径中的目录 尝试导入软件包,如果抛出异常,则安装软件包 问题答案: 如果您的意思是python脚本,请执行以下操作:

  • 我正在尝试为Java使用谷歌协议缓冲区(我是一个关于Java的新手,只是在尝试)。 首先,我使用OSX,并使用命令安装了协议缓冲区。 命令创建了目录,我可以在该目录中找到文件。 我编写了简单的测试Java代码,只是导入,它抱怨找不到包。 因此,我只是将jar文件,并将其目录添加为类路径,并且编译得很好。

  • 问题内容: 我尝试搜索,但没有找到明确的答案。在Windows Server 2016上,没有实际安装Chrome浏览器。我下载了正确的“ chromedriver.exe”并将其放置在“ D:\ Apps \ chromedriver.exe”中。我已将完整路径添加为“ D:\ Apps \ chromedriver.exe”到我的环境PATH中。 当我尝试启动使用最新Selenium的Wind

  • 我正在尝试使用pip在中本地安装程序包。问题是该软件包(旧版本)已在系统上全局可用。即使全局python软件包目录不在my中,pip仍然拒绝安装,认为软件包要求已得到满足。这与这里描述的问题类似,只是我没有使用,因此解决方案不适用:pip-已经满足要求了吗? 如果我这样做: 它说: 但是,不在my中。PYTHONPATH中唯一的东西是。 如果我尝试去做: 它下载Numpy并编译它,然后认为我正在进

  • 我知道,即使使用Swing的线程模型,过去也认为从任何线程调用和其他一些选定的方法是安全的,但是最近在一篇评论中告诉我,情况并非如此。 谷歌发现了很多旧的讨论,说它是安全的,但最近没有。所有过去说它是安全的官方参考似乎都消失了,我发现一些人在各种论坛上讨论它是如何不再安全的。 不过,我找不到任何官方的东西来确认它是还是不是--如果它已经改变了,我真的很想看到一些东西来解释改变的逻辑。考虑到它有破坏