【CUDA报错】
报错内容
RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling cublasLtMatmul with transpose_mat1 1 transpose_mat2 0 m 256 n 11360 k 256 mat1_ld 256 mat2_ld 256 result_ld 256 abcType 0 computeType 68 scaleType 0
检查
在遇到这个问题时,尝试了很多方式。
首先是减小数据大小,可以尝试减小batch_size或者采样的大小,但是没有解决问题;
在单卡训练解决不了该问题,于是尝试多卡训练,但是仍存在该问题;
后续猜测可能是服务器还有其他人在使用,GPU利用率上限了,所以虽然内存够,但是轮不上自己;但是空闲卡的时候仍然存在该问题,并且发现代码并没有占满显卡内存;
最后,发现是nvcc版本不对(服务器可能存在多个cuda版本),需要换成适合自己代码环境的cuda版本,解决了问题。
补充
第二天又出现了同样的报错,上面的解决方法不管用了;发现虽然没有使用多卡运行,但是模型会在cuda:0上有一部分内存占用,那张卡刚好GPU利用率上限了(应该是这个原因);之后,指定可见卡就解决了,但是同样需要保持cuda版本一致。
2025.04.16补充
前面的问题都是跑grounding DINO这个项目出现的问题(原项目目前还没有开源训练代码),所以自己在写训练代码训练时,为了测试调试先选择了几个样本的数据集进行代码调试;因此一开始使用的单卡训练,出现了上述问题,并且按照前面的步骤解决了问题。但是为了模型后续的训练,开始转为多卡训练,但是又出现了上述问题(RuntimeError: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling cublasLtMatmul with transpose_mat1 1 transpose_mat2 0 m 256 n 1420 k 256 mat1_ld 256 mat2_ld 256 result_ld 256 abcType 0 computeType 68 scaleType 0),同时自定义CUDA内核出现error in ms_deformable_im2col_cuda: an illegal memory access was encountered这个报错,按照上述的方法根本不起作用了。
但是可以确定的是确实是项目自定义CUDA内核在多卡运行出现了问题,在GPT和deepseek呆了好几天,仍然没有解决问题。尝试了改.cu文件,但是没有解决问题,也不知道怎么修改代码。最后是浏览器搜索(detr多卡训练出现error in ms_deformable_im2col_cuda: an illegal memory access was encountered),解决了问题。
具体是在github的Grounding DINO官方问题中找到了解决方案,虽然遇到的问题不完全相同,但是也是内存的问题。解决方法是使用mmvc中的内核代替自定义内核,终于多卡跑起来了。在多个 GPU 中运行,得到CUDA error: CUBLAS_STATUS_INTERNAL_ERROR when calling cublasSgemm(非常感谢这个问题作者,要哭了,无语言表,只能点赞)
最后将项目这个backward改为:
def backward(ctx, grad_output):
(
value,
value_spatial_shapes,
value_level_start_index,
sampling_locations,
attention_weights,
) = ctx.saved_tensors
# 创建梯度 Tensor
grad_value = torch.zeros_like(value)
grad_sampling_loc = torch.zeros_like(sampling_locations)
grad_attn_weight = torch.zeros_like(attention_weights)
# 调用并 in-place 写入
_C.ms_deform_attn_backward(
value,
value_spatial_shapes,
value_level_start_index,
sampling_locations,
attention_weights,
grad_output,
grad_value,
grad_sampling_loc,
grad_attn_weight,
ctx.im2col_step
)
# 返回梯度结果
return grad_value, None, None, grad_sampling_loc, grad_attn_weight, None`
更多推荐
所有评论(0)