conda安装的cudatoolkit, cudnn与在主机上安装的cuda, cudnn有何关系?

conda安装的cudatoolkit, cudnn与在主机上安装的cuda, cudnn有何关系?

在conda创建的虚拟环境中安装tensorflow-gpu后,会自动安装cudatoolkit和cudnn。在这个虚拟环境中使用tensorflow时,如果涉及到GPU的计算,是不是会自动使用虚拟环境中安装的cudatoolkit和cudnn?与主机中安装的cuda及cudnn无关?

回答

anaconda 的 cudatoolkit 不包含完整安装cuda的全部文件,只是包含了用于 tensorflow,pytorch,xgboost 和 Cupy 等所需要的共享库文件。一般情况下会直接调用anaconda的cudatoolkit工具包。

具体而言

调用哪个 cuda 库要看生成 tensorflow / pytorch 库的时候,设置的链接库寻找目录,以 pytorch 为例,项目根目录下的 setup.py 中指定链接库的搜索目录,其中 cuda 的根目录 CUDA_HOME在 tool.setup_helpers.cuda 中有获取逻辑,大概过程是:

  1. 先取默认 cuda 安装目录 /usr/local/cuda
  2. 如默认目录不存在(例如安装原生 cuda 到其他自定义位置),那么搜索 nvcc 所在的目录
  3. 如果 nvcc 不存在,那么直接寻找 cudart 库文件目录(此时可能是通过 conda 安装的 cudatoolkit,一般直接用 conda install cudatoolkit,就是在这里搜索到 cuda 库的),库文件目录的上级目录就作为 CUDA_HOME
  4. 如果最终未能得到 CUDA_HOME,那么生成的 pytorch 将不使用 CUDA。

(以上过程的 pytorch 源码版本 '1.3.0')

详细的可去看 pytorch 源码。tensorflow 源码我没看过,不过思路应该差不多。

然后,通过 conda 安装 cudatoolkit 包含的库文件均在 miniconda3/lib 中可以找到(或者直接在 miniconda3 / pkgs / cudatoolkit-10.x.xxx /lib 中查看),

ls -al libcu*
ls -al libnpp*
ls -al libnv*

原生安装的cuda肯定是 conda-cudatoolkit 的超集,可以自己尝试这两种安装,然后肉眼比对,差别一目了然。再有不懂的,去 nvidia 官网看文档,慢慢的,就懂了。

最后,可以通过 ldd xx.so 直接查看依赖哪些库以及库的详细路径

<think>好的,我现在需要帮助用户解决在conda环境中安装CUDA 9.2PyTorch 1.5.1的问题。首先,我需要回顾用户之前的问题,确保这次回答的一致性。用户之前遇到了安装旧版本PyTorch的问题,现在转向conda安装另一个旧版本组合,可能是在处理遗留项目或特定环境需求。 首先,我应该确认CUDA 9.2PyTorch 1.5.1的兼容性。记得PyTorch的版本通常特定CUDA版本绑定,所以需要检查官方文档或历史版本信息。例如,PyTorch 1.5.1可能支持CUDA 9.2吗?可能需要查阅发布日志或旧版安装指南。假设用户的需求是可行的,但需要正确的渠道依赖管理。 接下来,用户使用conda安装,但旧版本可能不在默认的conda源中。需要指导用户添加正确的channel,比如pytorch的LTS或特定日期的channel。例如,`conda install pytorch=1.5.1 cudatoolkit=9.2 -c pytorch/lts/2020`这样的命令是否有效? 还要考虑Python版本的问题。PyTorch 1.5.1可能只支持Python 3.6或3.7,用户当前的Python版本是否兼容?可能需要建议创建新的conda环境,指定Python版本,例如3.6,以确保兼容性。 另外,用户可能需要torchvision的对应版本。例如,PyTorch 1.5.1通常搭配torchvision 0.6.1,需要一并安装。如果用户没有提到,也应该提醒他们安装torchvision,并提供正确的版本号。 安装过程中可能遇到的常见问题包括依赖冲突、找不到包版本、或者CUDA系统驱动不兼容。例如,用户系统上的NVIDIA驱动是否支持CUDA 9.2?需要检查驱动版本,因为CUDA 9.2需要至少特定版本的驱动,如果驱动太新或太旧都可能出问题。 此外,condapip混合使用可能导致环境混乱,应建议用户尽量使用conda管理所有依赖,或者在必要时使用pip并指定正确的仓库URL。 验证安装是否成功,用户可能需要运行简单的Python代码检查CUDA是否可用,以及版本是否正确。例如: import torch print(torch.__version__) print(torch.cuda.is_available()) print(torch.version.cuda) 如果用户遇到错误,比如CUDA不可用,可能需要检查系统驱动,或者conda是否正确安装cudatoolkit。另外,可能需要确认conda的channel优先级,确保从正确的源安装了包。 最后,如果用户无法通过conda安装,可能需要手动下载wheel文件,或者从其他源安装。但conda通常能处理依赖关系,所以优先使用conda命令。 总结步骤应该是: 1. 创建新的conda环境,指定Python 3.6或3.7。 2. 添加pytorch的LTS channel或其他包含旧版本的channel。 3. 安装pytorch=1.5.1cudatoolkit=9.2。 4. 安装对应的torchvision版本。 5. 验证安装,检查CUDA是否识别。 同时提醒用户旧版本可能存在的安全风险或兼容性问题,建议升级到新版本,除非必要。</think>--- ### **安装背景说明** 要在 conda 环境中安装 **CUDA 9.2** **PyTorch 1.5.1**,需明确以下兼容性关系: - **PyTorch 1.5.1** 官方支持 CUDA 9.2、10.1 10.2,但默认源已移除旧版本。 - **CUDA 9.2** 需要 NVIDIA 驱动程序版本 ≥ 396.26(通过 `nvidia-smi` 检查驱动版本)。 - **Python 版本**需匹配 PyTorch 1.5.1 的要求(Python 3.6/3.7)。 --- ### **分步安装指南** #### **1. 创建干净的 conda 环境(避免依赖冲突)** ```bash conda create -n pytorch_legacy python=3.7 # 指定 Python 3.6 或 3.7 conda activate pytorch_legacy ``` --- #### **2. 添加 conda 旧版本源** PyTorch 官方将旧版本托管在长期支持(LTS)频道中: ```bash conda config --add channels pytorch/lts/2020 ``` --- #### **3. 安装 CUDA 9.2 PyTorch 1.5.1** ```bash conda install pytorch=1.5.1 torchvision=0.6.1 cudatoolkit=9.2 -c pytorch/lts/2020 ``` - **关键参数解释**: - `pytorch=1.5.1`: 指定 PyTorch 版本。 - `torchvision=0.6.1`: PyTorch 1.5.1 对应的 torchvision 版本。 - `cudatoolkit=9.2`: 指定 CUDA 工具包版本。 - `-c pytorch/lts/2020`: 从 LTS 频道拉取旧版本。 --- #### **4. 验证安装** 运行以下 Python 代码检查环境: ```python import torch print(torch.__version__) # 应输出 1.5.1 print(torch.cuda.is_available()) # 输出 True 表示 CUDA 可用 print(torch.version.cuda) # 应显示 9.2 ``` --- ### **常见问题解决方案** | 问题现象 | 原因解决方案 | |------------------------------|------------------------------------------------------------------------------| | **`conda install` 找不到包** | 检查是否添加了 `pytorch/lts/2020` 频道,或尝试指定完整频道路径:<br>`-c https://conda.anaconda.org/pytorch/lts/2020` | | **CUDA 不可用** | 1. 确认 NVIDIA 驱动支持 CUDA 9.2(驱动版本 ≥ 396.26)<br>2. 运行 `nvidia-smi` 检查 GPU 状态 | | **Python 版本不兼容** | 创建环境时需指定 Python 3.6 或 3.7:<br>`conda create -n env_name python=3.7` | | **依赖冲突** | 使用全新 conda 环境,避免其他包(如 TensorFlow)混用 | --- ### **手动安装备选方案(conda 失效时)** 若 conda 安装失败,可直接从 PyTorch 历史版本仓库下载 `.whl` 文件: ```bash pip install torch==1.5.1+cu92 torchvision==0.6.1+cu92 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html ``` - **注意**:需确保 Python 版本为 3.6/3.7,且已安装 CUDA 9.2 驱动程序。 --- ### **系统环境要求** | 组件 | 版本要求 | |-----------------|--------------------------| | **操作系统** | Linux / Windows 10 | | **NVIDIA 驱动** | ≥ 396.26 | | **Python** | 3.6 或 3.7 | | **conda** | ≥ 4.8 | --- ### **附加建议** 1. **升级到新版**:PyTorch 1.5.1 发布于 2020 年,已停止维护,建议迁移到 PyTorch 2.0+ CUDA 11.x。 2. **容器化部署**:使用 Docker 镜像固定旧版本环境,避免污染主机: ```bash docker pull pytorch/pytorch:1.5.1-cuda9.2-cudnn7-runtime ``` 3. **离线安装**:预先下载包文件(`.tar.bz2` 或 `.whl`),通过本地路径安装: ```bash conda install /path/to/pytorch-1.5.1.tar.bz2 ``` --- 通过以上步骤,您可以在支持 CUDA 9.2 的环境中稳定运行 PyTorch 1.5.1。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值