RuntimeError: CUDA error: invalid device ordinal CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect. For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.
时间: 2023-06-25 15:01:58 浏览: 332
CUDA Runtime API
这个错误通常是由于使用了无效的GPU设备序号导致的。请确保你的GPU设备序号是有效的,并且没有超出你系统中的GPU设备数量范围。你可以通过以下方式检查你的GPU设备数量和序号:
```python
import torch
print(torch.cuda.device_count()) # 打印GPU设备数量
print(torch.cuda.current_device()) # 打印当前使用的GPU设备序号
```
如果你确定你的GPU设备序号是有效的,但是仍然遇到此错误,请尝试使用CUDA_LAUNCH_BLOCKING环境变量来启用CUDA launch blocking模式,这将使CUDA异步错误能够在API调用时同步报告。你可以使用以下命令来启用此功能:
```bash
CUDA_LAUNCH_BLOCKING=1 python your_script.py
```
如果你使用的是PyTorch 1.7及以上版本,则可以通过设置TORCH_USE_CUDA_DSA环境变量来启用设备端断言(Device-Side Assertions),这有助于捕获CUDA kernel错误。你可以使用以下命令来启用此功能:
```bash
TORCH_USE_CUDA_DSA=1 python your_script.py
```
阅读全文