首页 > 其他分享 >【异常错误】RuntimeError: CUDA error: device-side assert triggered 遇到这种错误怎么办? CUDA_LAUNCH_BLOCKIN=1

【异常错误】RuntimeError: CUDA error: device-side assert triggered 遇到这种错误怎么办? CUDA_LAUNCH_BLOCKIN=1

时间:2024-10-11 23:17:41浏览次数:8  
标签:BLOCKIN srcSelectDimSize 错误 ATen 699 failed CUDA 283 cuda

遇到的错误:

运行的时候突然就这样了 

/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [56,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [57,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [58,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [59,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [60,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [61,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [62,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
/pytorch/aten/src/ATen/native/cuda/Indexing.cu:699: indexSelectLargeIndex: block: [283,0,0], thread: [63,0,0] Assertion `srcIndex < srcSelectDimSize` failed.
[train epoch 0] total loss: 12.206; view1 loss: 3.442; view2 loss: 1.780; cross loss: 6.983:   6%|████████▋                                                                                                                                 | 152/2412 [04:11<1:02:21,  1.66s/it]
Traceback (most recent call last):
  File "pretrain_cgip.py", line 233, in <module>
    main(args)
  File "pretrain_cgip.py", line 203, in main
    train_dict = train_one_epoch(
  File "/mnt/d/Chorm_Download/CGIP-master/CGIP-master/model/train/dual_model_utils.py", line 44, in train_one_epoch
    X_v2_a1, _ = branch2(view2_aug1)  # the space of view 2: aug 1
  File "/home/mapengsen/anaconda3/envs/ldm/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1102, in _call_impl
    return forward_call(*input, **kwargs)
  File "/mnt/d/Chorm_Download/CGIP-master/CGIP-master/model/deepergcn.py", line 174, in forward
    h_graph = self.pool(h, batch)
  File "/home/mapengsen/anaconda3/envs/ldm/lib/python3.8/site-packages/torch_geometric/nn/glob/glob.py", line 51, in global_mean_pool
    size = int(batch.max().item() + 1) if size is None else size
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.

这种错误一般直接看不出出来到底是哪里错误了,不知道错误的原因是因为CPU和gpu的异步执行:

cuda编程默认使用异步执行,大概是因为CPU和GPU的内存是分开的。用户想要将数据从GPU搬运到CPU,必须发起一个kernel launch。因此,当程序执行正确时,GPU异步与同步执行的结果应该是等价的。

但是如果涉及到异常处理,例如cuda代码里面报错了,则CPU在某次后续的kernel launch的时候才能发现,报错信息和位置就会非常奇怪。因此,处理cuda错误的第一件事,就是设置CUDA_LAUNCH_BLOCKING=1重新再跑一遍。

解决办法:

需要设置环境变量才可以以debug的方式(同步执行)运行,报出真正的错误。网上很多说直接 CUDA_LAUNCH_BLOCKIN=1 python XXX.py 的是错误的

正确做法:

export CUDA_LAUNCH_BLOCKING=1

python XXX.py

找到真正的错误,然后再解决相应的错误

https://zhuanlan.zhihu.com/p/667225351

标签:BLOCKIN,srcSelectDimSize,错误,ATen,699,failed,CUDA,283,cuda
From: https://blog.csdn.net/weixin_43135178/article/details/142812114

相关文章

  • 63.《连不上网络 代码56错误 网络电缆被拔出 问题大概率解决》
    前天心血来潮打算更新一下win11新版本也就是23h2我也一直用的是windows最新版本的也是Windows忠实粉丝一重启突然右下角没了wlan标志了连不上网尝试了各种方法什么ip地址dns域名修改什么网络适配器修改一个搞软件的搞起网络了差点就删了网络适配器重新安装了千......
  • 域名解析错误是不是被限制了?
    在我们畅游互联网的过程中,有时会遭遇域名解析错误的情况,这无疑会给我们的上网体验带来困扰。而很多人在遇到域名解析错误时,不禁会疑惑:这是不是意味着被限制了呢?首先,域名解析错误并不一定意味着被限制。域名解析是将域名转换为对应的IP地址的过程,就如同在电话簿中查找电话号码一......
  • mysql8: 主从复制,从库跳过错误
    一,主从复制,从库报错,因为主库上执行了一条针对从库上不存在数据库的sql 二,解决:1,执行下面的sql即可,stopreplica;SETGLOBALSQL_SLAVE_SKIP_COUNTER=1;startreplica;需要注意以前的stopslave/startslave不可用了2,也可以用下面的sql:MASTER_HOST:主库ip,MASTER_USER:......
  • 帝国cms网站首页错误代码
    如果帝国CMS网站首页出现了错误代码,你可以根据不同的错误类型来处理:HTTP状态码例如404NotFound表示页面未找到,可能是首页文件丢失或链接错误。500InternalServerError表示服务器内部错误,通常与程序代码或服务器配置有关。PHP错误如果页面显示了具体的PHP错误信息......
  • 网站连接数据库配置错误
    当遇到网站连接数据库配置错误的问题时,可以按照以下步骤进行检查和解决:检查数据库连接字符串:确认数据库服务器地址、端口、用户名和密码是否正确。检查数据库名称是否正确。确认数据库服务状态:确保数据库服务正在运行。检查防火墙设置,确保应用服务器可以访问数据库服......
  • 网站提示数据库连接错误
    遇到网站提示数据库连接错误时,可以按照以下步骤进行排查和解决:检查数据库服务器状态:确认数据库服务是否正常运行。检查数据库服务器是否有足够的资源(如内存、磁盘空间)。检查网络连接:确认应用服务器与数据库服务器之间的网络连接是否正常。检查防火墙设置,确保应用服务......
  • Result Maps collection already contains value for xxx.xxx.dao.BaseResultMap错误
    重复引入jar包问题解决方法,在pom文件中排除这个jar包原:<dependency><groupId>com.hedu</groupId><artifactId>sweet-template-webapp</artifactId><version>1.0</version></dependency>排除后:&......
  • 网站显示数据库连接错误
    网站显示数据库连接错误通常是由以下几个原因造成的:配置问题:数据库连接字符串可能配置不正确,例如用户名、密码、主机地址或端口错误。网络问题:应用程序与数据库之间的网络连接可能存在故障,导致无法建立连接。数据库服务未运行:数据库服务器可能没有启动,或者由于某些原因......
  • 网站打开数据库错误怎么办?
    当遇到网站打开时出现数据库错误的情况,可以按照以下步骤进行排查和解决:检查数据库连接配置:确认数据库服务器地址、端口、用户名和密码是否正确。检查数据库名称是否正确。确认数据库服务状态:使用命令行工具或管理界面检查数据库服务是否正常运行。如果服务未启动,尝试......
  • 洛谷题单指南-字符串-P2580 于是他错误的点名开始了
    原题链接:https://www.luogu.com.cn/problem/P2580题意解读:给n个字符串,再依次处理m个字符串,对于每个字符串,如果在前面n个字符串中输出OK,如果不在n个字符串中输出WRONG,如果在n个字符串中且不止一次查询过输出REPEAT。解题思路:1、set/map方法很简单直接,用set存下前n个字符串,map......