问题描述
由于最近使用的项目有代码较老的项目,新装了较老版本的CUDA,然后在环境变量中通过更改CUDA_PATH来切换CUDA版本。但在更改CUDA_PATH后CUDA版本仍不变(更改环境变量后重新打开了新的cmd),如下图所示我需要从版本10.0换到版本11.3:
切换前版本10.0:
切换后版本还是10.0:
问题分析
nvcc.exe存在于CUDA的bin文件夹,在安装CUDA时,CUDA的bin文件夹的路径会加入Path中。在执行命令时,会优先命中Path中靠前的地址,所以如果要切换CUDA,不单单需要将CUDA_PATH更改,还需要将Path中的bin的地址放在靠前的位置(在另一个CUDA版本的bin文件夹地址的前面)。
解决方案
将Path中CUDA的bin文件夹与libnvvp文件夹地址上移到前面。例如:
原来是10.0版本的地址靠前,所以nvcc总是会先命中10.0版本的:
将11.3版本的bin与libnvvp上移后:
然后就切换成功了,如下图: