windows下同一个显卡配置多个CUDA工具包以及它们之间的切换

1、多版本的CUDA以及cudnn安装

2、不同版本的tensorflow在CUDA之间的切换

3、验证自己的CUDA是否安装成功

前面的一片文章里面讲到了tensorflow、NVIDIA显卡驱动、CUDA工具包、cudnn之间的一些关系,详情请参考原文:

https://blog.csdn.net/qq_27825451/article/details/89082978

tensorflow最大的问题就是版本问题,各个版本之间差异比较明显,我们有时候需要不同的tensorflow版本,而不同的版本对于CUDA toolKit的版本要求和cudnn的要求又不一样,我们肯定不能每次使用一个版本都重新安装,前面的那篇文章明确了几个基本观点:

(1)NVIDIA显卡驱动和CUDA ToolKit不是一一对应的,我们一般保持最新的驱动程序,安装其他不同版本的CUDA即可;

(2)CUDA和cudnn也不是严格的一一对应关系,但是这个官网上有着明确的对应连接,即很么版本的cuda配置什么样的cudnn;

所以如果需要在一台电脑上安装多个版本的CUDA和cudnn是完全可行的,由于Linux上面的配置教程很多,这里就不讲了,本文以windows为例来说明,

1、多版本的CUDA以及cudnn安装

由于里显得CUDA会默认捆绑NVIDIA驱动程序,所以在安装的时候不要默认安装,一定要自定义安装,只选择安装CUDA即可,其他的那些就不要安装了,我的电脑上安装的版本如下:

我们一般安装CUDA的时候就使用默认路径,安装到C盘即可,这样方便管理。

然后在NVIDIA官网上面下载CUDA对应的cudnn版本,解压之后将cudnn对应的三个文件拷贝到CUDA对应的文件夹之下,这个时候我们的环境变量应该如下所示:

现在多个版本的CUDA就安装完成了。

2、不同版本的tensorflow在CUDA之间的切换

网上有很多在Linux下面的CUDA的切换,其实都是通过环境变量的设置与配置来实现的,但是window这一点坐的很方便,

不需要切换,不需要切换,不需要切换,只要环境变量PATH中有相应的CUDA路径即可,无需手动切换了。

比如我的电脑上同事安装了

tensorflow1.9,它对应于CUDA9.0

tensorflow1.13,它对应于CUDA10.0

tensorflow2.0.0 alpha0,它对应于CUDA10.0

我可以使用任何一个版本,只要在环境变量中有对应的CUDA路径即可,

本人也是通过实验得出来的,首先我删除了CUDA10.0的环境变量,重启之后,发现tensorflow1.13和tensorflow2.0.0都不能使用了,但是tensorflow1.9还可以用;然后我又删除了CUDA9.0的环境变量,重启,这个时候tensorflow1.9也不能使用了;

接下来我又添加CUDA10.0的环境变量,重启,此时tensorflow1.13和tensorflow2.0.0又可以1使用了,然后我又通过添加CUDA9.0环境变量,重启,这时tensorflow1.9又可以使用了。

总结:windows多个不同版本的CUDA使用时需要切换,只要环境变量PATH中有相应的CUDA路径即可,无需手动切换了。tensorflow在运行的时候会自动在环境变量中寻找合适的CUDA版本,直到找到为止,如果没有,则会报错。

3、验证自己的CUDA是否安装成功

每一个版本的CUDA配置完成后,我们可以验证是否配置成功,主要使用CUDA内置的deviceQuery.exe 和 bandwithTest.exe这两个程序来验证。
首先win+R启动cmd,cd到安装目录下的 ,比如我的安装目录是(以CUDA 10.1为例):

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite

执行bandwidthTest.exedeviceQuery.exe这两个应用程序,得到下面的结果:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite>deviceQuery
deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 1070"
  CUDA Driver Version / Runtime Version          10.1 / 10.1
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 8192 MBytes (8589934592 bytes)
  (15) Multiprocessors, (128) CUDA Cores/MP:     1920 CUDA Cores
  GPU Max Clock rate:                            1785 MHz (1.78 GHz)
  Memory Clock rate:                             4004 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 2097152 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               zu bytes
  Total amount of shared memory per block:       zu bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          zu bytes
  Texture alignment:                             zu bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)
  Device supports Unified Addressing (UVA):      Yes
  Device supports Compute Preemption:            No
  Supports Cooperative Kernel Launch:            No
  Supports MultiDevice Co-op Kernel Launch:      No
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.1, CUDA Runtime Version = 10.1, NumDevs = 1, Device0 = GeForce GTX 1070
Result = PASS

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\extras\demo_suite>bandwidthTest
[CUDA Bandwidth Test] - Starting...
Running on...

 Device 0: GeForce GTX 1070
 Quick Mode

 Host to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     12180.7

 Device to Host Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     12782.8

 Device to Device Bandwidth, 1 Device(s)
 PINNED Memory Transfers
   Transfer Size (Bytes)        Bandwidth(MB/s)
   33554432                     191225.0

Result = PASS

当两个 Result=PASS 的时候,说明我们的安装配置是没有问题的。

 

  • 55
    点赞
  • 225
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Windows系统中,如果你安装了多个不同版本的CUDA,你不需要手动切换它们。只要在环境变量PATH中添加相应的CUDA路径即可。这样,当你使用TensorFlow运行时,它会自动在环境变量中寻找合适的CUDA版本,直到找到为止。如果找不到合适的CUDA版本,则会报错。所以,你可以同时安装多个CUDA版本,并在需要的时候使用不同的版本。\[3\]为了验证CUDA配置是否成功,你可以使用CUDA内置的deviceQuery.exe和bandwithTest.exe这两个程序进行验证。你可以通过win+R启动cmd,然后使用cd命令切换CUDA安装目录下的相应版本文件夹,比如CUDA 10.1的安装目录。然后运行这两个程序来验证配置是否成功。\[2\] #### 引用[.reference_title] - *1* [WindowsCUDA多版本共存](https://blog.csdn.net/m0_37605642/article/details/117932717)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [windows同一个显卡配置多个CUDA工具包以及它们之间切换](https://blog.csdn.net/qq_27825451/article/details/89135592)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值