执行conda安装PyTorch+CUDA命令后nvcc未安装的问题咨询
问题:Conda环境中PyTorch依赖CUDA但未安装nvcc
环境搭建步骤
我按以下步骤创建了包含Python 3.8、CUDA 11.8和PyTorch 2.4.1的conda环境:
$ conda create -n py38_torch241_CUDA118 python=3.8 $ conda activate py38_torch241_CUDA118 $ conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia
当前安装状态
Python和PyTorch已正常安装:
$ python --version Python 3.8.20 $ pip list | grep torch torch 2.4.1 torchaudio 2.4.1 torchvision 0.20.0
遇到的问题
检查CUDA相关工具时发现nvcc未安装:
$ nvcc Command 'nvcc' not found, but can be installed with: sudo apt install nvidia-cuda-toolkit
这导致后续依赖nvcc的Git仓库无法正常搭建。我已尝试删除所有conda包和环境后重新操作,但问题依旧。
疑问
- 是否需要执行
sudo apt install nvidia-cuda-toolkit来安装nvcc? - 为何上述conda安装命令未自动安装nvcc?
调试信息
$ conda --version conda 24.5.0 $ nvidia-smi Sat Oct 19 02:12:06 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 550.90.07 Driver Version: 550.90.07 CUDA Version: 12.4 | |-----------------------------------------+------------------------+----------------------+ | GPU Name User-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA RTX 2000 Ada Gene... Off | 00000000:01:00.0 Off | N/A | | N/A 48C P0 588W / 35W | 8MiB / 8188MiB | 0% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ +-----------------------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=========================================================================================| | 0 N/A N/A 1859 G /usr/lib/xorg/Xorg 4MiB | +-----------------------------------------------------------------------------------------+ $ which nvidia-smi /usr/bin/nvidia-smi
注:设备为NVIDIA RTX 2000 Ada Generation,nvidia-smi显示CUDA版本为12.4,该驱动是未安装conda时手动安装的。
已尝试的操作
我尝试将CUDA_HOME路径设置为conda环境目录,但问题仍未解决:
$ export CUDA_HOME=$CONDA_PREFIX $ echo $CUDA_HOME /home/User-M/miniconda3/envs/FairMOT_py38_torch241_CUDA118 $ which nvidia-smi /usr/bin/nvidia-smi $ nvcc Command 'nvcc' not found, but can be installed with: sudo apt install nvidia-cuda-toolkit
解答
1. 是否需要通过apt安装nvidia-cuda-toolkit?
不建议直接执行sudo apt install nvidia-cuda-toolkit,这会在系统级别安装CUDA Toolkit,大概率会和conda环境内的CUDA 11.8版本冲突,引发后续依赖版本匹配问题。
2. 为何conda安装命令未自动安装nvcc?
你执行的conda install pytorch-cuda=11.8仅安装了CUDA运行时库,而非完整的CUDA Toolkit(包含nvcc编译器等开发工具)。PyTorch默认只需要运行时库就能正常调用GPU,但如果要编译自定义CUDA算子或依赖nvcc的项目,就需要手动安装完整的CUDA Toolkit。
解决方法
在激活的conda环境内安装完整的CUDA 11.8 Toolkit,执行以下命令:
conda install cuda=11.8 -c nvidia
安装完成后,重新激活环境或执行source $CONDA_PREFIX/bin/activate,此时运行nvcc --version就能正常显示版本信息。
补充说明
- 你的显卡驱动版本(550.90.07)支持CUDA 12.4,向下兼容CUDA 11.8,因此环境内的CUDA 11.8可以正常工作。
- 无需手动修改
CUDA_HOME,conda安装的CUDA Toolkit会自动配置环境变量,激活环境后nvcc会被自动识别。
内容的提问来源于stack exchange,提问作者MsA
相关产品推荐
相关产品推荐

