两个同版本torch的conda环境中torch.cuda.is_available返回结果不同的原因
问题原因分析
- CUDA依赖环境变量未配置:PyPI版的Torch 1.6.0依赖系统已安装的对应CUDA Toolkit,且需要环境变量正确指向CUDA的核心目录。其中一个环境激活时,终端自动加载了
PATH、LD_LIBRARY_PATH等变量指向CUDA的bin和lib文件夹;另一个环境未配置这些变量,导致Torch无法找到CUDA驱动文件。 - CUDA版本与Torch不兼容:Torch 1.6.0仅支持CUDA 10.1和10.2版本。如果其中一个环境启动时,终端默认关联的CUDA版本不在此范围内(比如用了CUDA 11.x),就会导致
torch.cuda.is_available()返回False。 - 安装时自动选择了CPU-only版本:PyPI安装Torch时,会根据当前系统的CUDA环境自动判断是否安装带CUDA支持的版本。若安装某环境时系统无CUDA环境,Torch会默认安装纯CPU版本——虽然
conda list显示版本号都是1.6.0,但底层缺少CUDA支持组件。可以在环境中执行print(torch.version.cuda)验证,返回None的就是CPU版。 - 显卡驱动版本不达标:Torch 1.6.0对显卡驱动版本有要求(如搭配CUDA 10.1需要驱动≥418.39)。两个环境可能因终端配置、虚拟化等原因调用了不同版本的显卡驱动,驱动版本不足的环境会导致CUDA不可用。
内容的提问来源于stack exchange,提问作者user3731622
相关产品推荐
相关产品推荐

