type
status
date
slug
summary
tags
category
icon
password
Error imformation: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.
正常情况下你看到这个报错信息的时候,前面还有会有一大堆Blocking的报错。
问题分析与解决
这里一般是因为索引溢出导致的。如果用Python的run或者debugger,或者pycharm之类的IDE的,这个返回的栈的信息大概率是错误的,所以解决这个问题最关键的地方在于定位出在哪里溢出的!
这个时候在运行的主进程前加入环境设置:
让CUDA的调用信息返回回来。就能定位出是哪个变量索引溢出了。然后调整即可。
在本人遇到的情况,是Transformer位置编码一直报错溢出,一调用就溢出,然后去检查CUDA的调用信息发现是词嵌入的时候就报错了,因为单词表的长度小于我的编码索引,重新更新了单词表长,生成词嵌入后,问题解决。
- Author:Kecilimu
- URL:https://kecilimu-notion.vercel.app//article/20241003154007
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!