We-IOT / chatglm3_6b_finetune

基于chatglm3-6b模型的lora方法的微调
GNU General Public License v3.0
76 stars 13 forks source link

推理出的错误 #7

Open CloverZhou opened 8 months ago

CloverZhou commented 8 months ago

请问以下情况怎么处理,麻烦大佬看一下: RuntimeError: CUDA error: device-side assert triggered 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. 1 2 3 4 5

We-IOT commented 8 months ago

最好把 pip -r reques.txt,把几个重要的库和环境按照官方文档的要求,对齐。

这个错误RuntimeError: CUDA error: device-side assert triggered通常表示在GPU上运行的CUDA代码中发生了某种断言错误。这种错误可能由于各种原因,例如索引超出数组范围,数据类型不匹配等。

错误消息中提到的CUDA_LAUNCH_BLOCKING=1TORCH_USE_CUDA_DSA是两个调试选项。让我们详细解释一下:

  1. CUDA_LAUNCH_BLOCKING=1:CUDA操作默认是异步的,这意味着当你调用一个CUDA函数时,它可能不会立即执行,而是被放入一个队列中等待执行。如果设置CUDA_LAUNCH_BLOCKING=1,CUDA操作将变为同步,即函数调用将等待操作完成才返回。这有助于准确地确定导致错误的代码位置,因为错误将在触发它的函数调用处立即报告,而不是在稍后的某个时间点。
  2. TORCH_USE_CUDA_DSA:这是一个编译选项,用于在编译PyTorch时启用设备端断言。设备端断言是CUDA代码中的断言,它们在GPU上运行。启用此选项将允许你在设备端代码中放置断言,并在运行时检查它们。如果设备端断言失败,将立即报告错误,并可能提供更详细的错误信息。

为了解决这个问题,你可以尝试以下步骤:

  1. 设置CUDA_LAUNCH_BLOCKING=1:在运行你的代码之前,设置环境变量CUDA_LAUNCH_BLOCKING=1。这将使CUDA操作变为同步,并帮助你更准确地定位错误。

在Linux或MacOS上,你可以在终端中使用以下命令设置环境变量:

export CUDA_LAUNCH_BLOCKING=1

在Windows上,你可以在命令提示符中使用以下命令:

set CUDA_LAUNCH_BLOCKING=1

然后运行你的代码。

  1. 检查代码:仔细检查你的代码,特别是与CUDA和GPU操作相关的部分。确保索引没有超出数组范围,数据类型匹配,以及其他可能导致断言失败的常见问题。
  2. 更新库和驱动程序:确保你使用的PyTorch库和CUDA驱动程序是最新版本。有时,库中的错误或驱动程序问题可能会导致此类错误。更新到最新版本可能会解决问题。
  3. 获取更多信息:如果上述步骤无法解决问题,你可以考虑在编译PyTorch时启用TORCH_USE_CUDA_DSA选项(如果你从源代码编译PyTorch)。这将允许你在设备端代码中放置断言,并提供更多关于错误的详细信息。但是,请注意,这可能需要一些额外的努力来设置和编译PyTorch。
  4. 寻求帮助:如果你仍然无法解决问题,可以在相关的开发者论坛、社区或PyTorch的官方GitHub存储库中寻求帮助。提供尽可能多的错误信息和相关代码片段,以便其他人能够更好地理解问题并提供帮助。
userdrew1 commented 8 months ago

RuntimeError: CUDA error: device-side assert triggered Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.

12915494174 commented 7 months ago

RuntimeError: CUDA error: device-side assert triggered Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.

你好有解决这个问题吗,我也遇到了。

sleep-zzw-bot commented 6 months ago

RuntimeError: CUDA error: device-side assert triggered Compile with TORCH_USE_CUDA_DSA to enable device-side assertions.

请问你解决了吗,我也遇到这个问题了

Jasaxion commented 6 months ago

请问以下情况怎么处理,麻烦大佬看一下: RuntimeError: CUDA error: device-side assert triggered 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. 1 2 3 4 5

遇到同样的问题,有解决吗?