For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
时间: 2023-09-21 20:03:11 浏览: 137
当你在使用 PyTorch 进行 CUDA 计算时,有时候需要对代码进行调试。这时候,你可以将环境变量 CUDA_LAUNCH_BLOCKING 设置为 1,这样就会让程序在每次启动 CUDA 计算时都会等待计算完成后再返回。这样可以方便你在调试过程中观察 CUDA 计算的细节信息。你可以使用以下命令来设置环境变量:
```
export CUDA_LAUNCH_BLOCKING=1
```
请注意,这个环境变量只对使用 CUDA 计算的 PyTorch 代码有效。如果你的代码没有使用 CUDA 计算,那么这个环境变量不会产生任何效果。
相关问题
For debugging consider passing CUDA_LAUNCH_BLOCKING=1. Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.
To enable device-side assertions and improve debugging, you can compile your code with `TORCH_USE_CUDA_DSA`. This flag allows for better error checking on the GPU. Additionally, you can set the environment variable `CUDA_LAUNCH_BLOCKING` to `1` to make CUDA calls synchronous, which can help with debugging by providing more detailed error messages.
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.
这个错误提示意味着 CUDA kernel 错误可能在其他 API 调用时异步报告,因此下面的堆栈跟踪可能不正确。如果要进行调试,请考虑传递 CUDA_LAUNCH_BLOCKING=1。
这个错误通常出现在 CUDA 的异步执行模式下,当 CUDA kernel 发生错误时,错误信息并不会立即返回。相反,CUDA 会在后续的 API 调用中返回错误信息。如果您想要在 CUDA kernel 出错时立即返回错误信息,可以将 CUDA_LAUNCH_BLOCKING 环境变量设置为 1。这会使 CUDA 在执行 kernel 时阻塞,直到 kernel 执行完成并返回错误信息。这样可以更容易地调试 CUDA kernel 错误。
阅读全文