E:\Anaconda3-2024.10-1\envs\yolov12\python.exe E:\PyCharm\project\YOLOV12\yolov12\yolov12-main\test.py Traceback (most recent call last): File "E:\PyCharm\project\YOLOV12\yolov12\yolov12-main\test.py", line 2, in <module> print(f"GPU计算能力: {torch.cuda.get_device_capability(0)}") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda3-2024.10-1\envs\yolov12\Lib\site-packages\torch\cuda\__init__.py", line 560, in get_device_capability prop = get_device_properties(device) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda3-2024.10-1\envs\yolov12\Lib\site-packages\torch\cuda\__init__.py", line 576, in get_device_properties _lazy_init() # will define _get_device_properties ^^^^^^^^^^^^ File "E:\Anaconda3-2024.10-1\envs\yolov12\Lib\site-packages\torch\cuda\__init__.py", line 363, in _lazy_init raise AssertionError("Torch not compiled with CUDA enabled") AssertionError: Torch not compiled with CUDA enabled
时间: 2025-05-26 19:52:48 浏览: 28
<think>好的,我现在需要解决用户遇到的PyTorch AssertionError: Torch notcompiled withCUDAenabled错误,同时确保与NVIDIAGeForceRTX5060 GPU兼容的问题。根据用户提供的引用内容和之前的回答,我需要综合这些信息来找到解决方案。
首先,用户提到他们遇到了Torch未启用CUDA的错误,这可能是因为安装了CPU版本的PyTorch,而不是GPU版本。引用[1]指出这个问题,并建议检查安装的版本是否正确。另外,引用[3]提到CUDA版本不兼容可能导致类似错误,比如没有合适的内核镜像可用。用户之前的问题是关于PyTorch版本和RTX5060的兼容性,所以需要确保PyTorch版本支持该GPU的计算能力。接下来,我需要确认RTX5060的计算能力。根据之前的回答,RTX5060属于Ada Lovelace架构,计算能力是8.9。用户需要安装支持sm_89架构的PyTorch版本。而用户当前的PyTorch版本是2.7.0+cu126,可能需要检查该版本是否包含对sm_89的支持。然后,引用[2]提到驱动版本过旧的问题,用户需要确保NVIDIA驱动足够新。RTX5060可能需要较新的驱动版本才能正常工作,比如535.129.03或更高。此外,CUDA工具链版本也需要与PyTorch版本匹配,比如cu126对应CUDA12.6,这需要对应的驱动支持。
用户还提到之前通过重新安装PyTorch-nightly和调整版本解决了问题,如引用[4]所述。这可能意味着用户需要安装特定版本的PyTorch,尤其是支持CUDA12.x的版本,同时注意torchvision等依赖的版本兼容性。现在,我需要将这些信息整合成一个解决方案,分步骤指导用户检查驱动、安装正确的PyTorch版本、验证CUDA是否可用,并在必要时手动编译PyTorch。同时,确保用户正确设置环境变量以指定计算能力,避免兼容性问题。
可能的步骤包括:验证驱动版本,安装支持CUDA的PyTorch版本,检查CUDA是否启用,设置TORCH_CUDA_ARCH_LIST环境变量,以及处理可能的依赖冲突。此外,需要提醒用户关于虚拟环境的使用,以避免版本冲突。
最后,生成相关问题,帮助用户进一步排查可能遇到的问题,如驱动升级方法、虚拟环境使用、编译PyTorch的注意事项等。</think>### PyTorch CUDA 支持与 RTX 5060 兼容性解决方案
#### 1. **验证 PyTorch CUDA 安装状态**
- **核心问题**:
`AssertionError: Torch not compiled with CUDA enabled` 表明当前安装的 PyTorch 是 CPU 版本[^1]。需通过以下命令验证:
```python
import torch
print(torch.cuda.is_available()) # 输出应为 True
print(torch.version.cuda) # 应显示 CUDA 版本(如 12.6)
```
若输出为 `False`,需重新安装 GPU 版本的 PyTorch。
- **快速诊断**:
运行 `nvidia-smi` 确认驱动版本和 GPU 状态,若驱动版本过旧(如低于 $535.129.03$),需升级[^2]。
#### 2. **安装 GPU 版 PyTorch**
- **RTX 5060 的适配要求**:
- **计算能力**:$8.9$(对应 Ada Lovelace 架构)
- **CUDA 版本**:需 ≥ $12.1$(推荐 $12.6$)
- **驱动版本**:≥ $535.129.03$
- **安装命令**(适配 CUDA 12.6):
```bash
# 使用官方推荐命令安装
pip install torch==2.3.0+cu121 torchvision==0.18.0+cu121 torchaudio==2.3.0 --index-url https://download.pytorch.org/whl/cu121
```
若需最新版本,可替换为 `torch==2.7.0+cu126`(需确认支持 `sm_89`)。
- **关键验证**:
安装后运行以下代码:
```python
import torch
print(torch.cuda.get_device_capability(0)) # 应输出 (8,9)
print(torch.cuda.get_arch_list()) # 列表中需包含 sm_89
```
#### 3. **处理驱动与 CUDA 工具链兼容性**
- **驱动升级步骤**:
1. 访问 [NVIDIA 驱动下载页](https://www.nvidia.com/Download/index.aspx) 选择 RTX 5060 适配的最新驱动
2. 卸载旧驱动:
```bash
sudo apt purge nvidia-*
```
3. 安装新驱动后重启系统
- **CUDA 工具链检查**:
```bash
nvcc --version # 应显示 CUDA 12.6
nvidia-smi # 右上角显示的 CUDA 版本需与 PyTorch 的 CUDA 版本一致
```
#### 4. **强制指定 GPU 计算能力**
- **环境变量配置**:
若 PyTorch 未自动识别 `sm_89`,需在运行代码前设置:
```bash
export TORCH_CUDA_ARCH_LIST="8.9"
```
或在 Python 脚本中动态设置:
```python
import os
os.environ["TORCH_CUDA_ARCH_LIST"] = "8.9"
```
#### 5. **高级方案:源码编译 PyTorch**
- **适用场景**:
官方预编译版本未包含 `sm_89` 支持时,需手动编译:
```bash
git clone --recursive https://github.com/pytorch/pytorch
cd pytorch
export TORCH_CUDA_ARCH_LIST="8.9"
python setup.py install
```
- **编译要求**:
- CUDA Toolkit ≥ $12.6$
- `gcc` ≥ $11.3$
- 至少 50GB 磁盘空间
#### 6. **依赖冲突处理**
- **虚拟环境隔离**:
使用 `conda` 或 `venv` 创建干净环境:
```bash
conda create -n pytorch_env python=3.10
conda activate pytorch_env
```
避免全局安装导致版本冲突[^4]。
---
### 验证流程示例
```python
import torch
# 检查 CUDA 可用性
assert torch.cuda.is_available(), "CUDA 不可用,请检查安装!"
# 输出设备信息
print(f"PyTorch 版本: {torch.__version__}")
print(f"CUDA 版本: {torch.version.cuda}")
print(f"GPU 名称: {torch.cuda.get_device_name(0)}")
print(f"计算能力: {torch.cuda.get_device_capability(0)}")
```
---
### 相关问题
1. **如何在不重启系统的情况下加载新安装的 NVIDIA 驱动?**
- 使用 `sudo modprobe -r nvidia_drm nvidia` 卸载驱动模块后重新加载[^2]
2. **虚拟环境中安装 PyTorch 后仍报 CUDA 错误的可能原因?**
- 系统级 CUDA 工具链与虚拟环境中的 PyTorch 版本不匹配,需检查 `LD_LIBRARY_PATH` 环境变量
3. **RTX 5060 支持哪些 CUDA 特性?**
- 支持 CUDA 12 的混合精度计算(FP16/FP32 Tensor Core)和稀疏矩阵加速[^1]
4. **Windows 系统下如何设置 TORCH_CUDA_ARCH_LIST?**
- 在 PowerShell 中执行 `$env:TORCH_CUDA_ARCH_LIST="8.9"`,或在系统环境变量中添加
5. **源码编译 PyTorch 时出现 `ninja: build stopped: subcommand failed` 错误怎么办?**
- 检查 CUDA 路径是否正确,确保 `CUDA_HOME` 环境变量指向 CUDA 安装目录
---
[^1]: NVIDIA CUDA GPU 计算能力列表: https://developer.nvidia.com/cuda-gpus
[^2]: PyTorch 官方安装指南: https://pytorch.org/get-started/locally/
[^3]: CUDA 版本兼容性说明: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
[^4]: Conda 虚拟环境管理: https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html
阅读全文
相关推荐









