Windows10 下 CUDA 新旧多版本共存

前言

为了运行一个 Tensorflow1.6.0 的项目,CPU 跑了三个多小时才完成一个 epoch,还得用 GPU。但这个版本的 TF 只能在 10 以下的 CUDA 平台,但是以前的 Pytorch 也要继续啊。所以需要在本地 Windows 下安装多个版本 CUDA,其实有两种方式让 CUDA 共存。一种是英伟达的工具包安装,还一种是 CUDA 的动态链接库通过 conda 安装。

由于是 Windows,配置 CUDA 多版本环境变量可能还会出现 "此环境变量太大,此对话框允许将值设置为最长 2047 个字符" 和安装后运行项目 "If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info" 等报错,接下来就开始一一介绍了。

安装

动态链接库方式

相比英伟达官方提供的 CUDA Toolkit,这种方式显得特别轻便。因为前者是一个完整的工具安装包,其中还提供了英伟达驱动程序(可以不勾选)和开发 CUDA 程序的工具。而对于使用深度学习框架的话,训练使用 GPU 确实只需要使用 CUDA 的动态链接库就可以,而且只需要用 conda 安装就可以。

创建环境并激活

这里还是用 conda 创建一个新环境专门用于一个版本的 CUDA,要几个就创建几个,然后激活并进入,当然也要看看当前 conda 支持哪些 cuda 和 cudnn。

ini 复制代码
conda create -n tensorflow-cu python=3.6
conda activate tensorflow-cu

查看支持的 cuda

sql 复制代码
conda search cudatoolkit --info

查看支持的 cudnn

安装 cuda 和 cudnn

ini 复制代码
conda install cudatoolkit=9.01
conda install cudnn=7.1.4

工具包方式

这种方法就是先明确自己需要安装的版本,然后去英伟达官网下载安装包。我上面也有文章介绍,不过在以前基础上再加一低版本,需要注意的就是不要勾选驱动程序,然后切换版本要配置环境变量。

流程安装

切记只勾选 CUDA,切记

重新选择位置

安装完毕后,他会自动在环境变量里新增 CUDA_PATH_V9_0 和 NVCUDASAMPLES9_0_ROOT,并且 CUDA_PATH 和 NVCUDASAMPLES 也会替换成最后安装的版本,但当前依然还是之前的 CUDA11,这个时候还要去 Path 里设置一下。

要让版本切换到 v9,需要手动添加 CUDA9 的 development 下 bin 和 libnvvp,并放 v11 前面,但是保存时报 "此环境变量太大"。这个是因为 Patch 变量的值只有 2047 字符大小,解决方法可以修改注册表,在 Path 里删除没用的环境变量和用外边的变量做一个引入。就是 bin 和 libvvp 都是 CUDA9 下,只需要引入这个就可以节省更多字符占用了。

perl 复制代码
%CUDA_PATH_V11_4%\bin
%CUDA_PATH_V11_4%\libnvvp

虽然可以保存了,但是想切换 CUDA 版本要再次打开 Path,发现这个弹窗变成了一行,而不是像之前那样按变量展开。这是因为刚刚为了让 V9 版本在前面,我把他顶到了最上面,而最顶上如果有变量方式的引入,Path 就会变成一行,我们只需要把一个其他绝对位置的变量放在顶部就可以解决了。

其他

当切换后安装 tensorflow-gpu 开始训练时,出现 "Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info",因为当前显卡 GTX 750Ti,显存太小,可以将批次 batch_size 调小解决。

相关推荐
2603_965148115 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
jufeng13077 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 8 篇】
python·ai agent·配置系统
circuitsosk7 小时前
跨境电商智能化实战:AI如何赋能客服自动回复、广告智能投放与供应链预测
大数据·人工智能·python·langchain·智能客服
2601_956319888 小时前
2026年零基础学量化:从看懂示例到写清条件和动作
人工智能·python
过期的秋刀鱼!8 小时前
LangChain-D1-模型的工作流程
人工智能·python·langchain
萤火工厂目视化设计8 小时前
智能制造与企业文化目视化浪潮下:中小工厂的机遇与挑战
python·制造
DeepVisionary9 小时前
从GPT-5.6 Sol的Ultrafast模式看推理速度竞赛:750 token/秒背后,Cerebras的晶圆级生意
python·自动化
ZzT9 小时前
把 AI Coding 工作流做成插件:资产、契约与运行时的三层拆分
aigc·openai·ai编程
leisoo809710 小时前
财报数据怎么排雷本地化Python构建财务异常预警系统
人工智能·python·算法
小柯南敲键盘10 小时前
跨马翻译:跨境电商批量图片翻译与视频字幕一站式工具
人工智能·python·音视频