You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tesla P100 GPU运行PyTorch模型报CUBLAS_STATUS_EXECUTION_FAILED错误求助

问题分析与解决方案

报错原因解析

CUBLAS_STATUS_EXECUTION_FAILED 报错源于CUDA矩阵乘法操作(cublasSgemm)执行时遇到异常,结合GPU切换后出现问题、小写化数据解决的情况,核心原因是Tesla P100(Volta架构)与T4(Turing架构)的CUDA底层实现对张量状态的敏感度差异:

  • T4的CUDA runtime和cublas库对张量中的微小异常(如隐含的NaN/Inf、非连续内存布局、或非小写字符引入的数值分布异常)容错性更强,不会触发报错;
  • P100的Volta架构对应的cublas实现对这类异常更为严格,反向传播计算梯度的矩阵乘法遇到异常张量时,直接抛出执行失败错误;
  • 小写化数据本质是消除了原始数据中导致张量数值/分布异常的因素(比如特殊字符编码带来的无效特征值、特征分布离散度过高),让张量状态回到P100的cublas可正常处理的范围。

其他可行解决方法

1. 切换回Tesla T4 GPU

Colab Pro支持重新分配GPU资源,操作步骤:

  • 点击顶部菜单栏 Runtime > Change runtime type;
  • 确认Hardware accelerator选择为GPU,保存后重启会话;
  • 若未分配到T4,通过 Runtime > Disconnect and delete runtime 断开连接后重新会话,重复几次即可大概率获取T4(Pro用户资源池优先级更高)。

2. 代码层面参数调整

  • 排查清理异常张量:预处理后添加检查逻辑,过滤或替换NaN/Inf值:
    # 检查并替换特征张量中的异常值
    features = torch.where(torch.isnan(features), torch.zeros_like(features), features)
    features = torch.where(torch.isinf(features), torch.zeros_like(features), features)
    
  • 调整CUDA后端参数:关闭cudnn自动基准测试,避免不同GPU的优化策略冲突:
    torch.backends.cudnn.benchmark = False
    
    确保张量内存连续,可在模型前向输出或loss计算前添加:
    outputs = outputs.contiguous()
    
  • 调整PyTorch版本:当前torch==1.8.0+cu111对Volta架构(P100)的兼容性存在细节问题,可尝试升级到torch==1.9.0+cu111或降级到torch==1.7.1+cu110,匹配P100的CUDA驱动支持。

内容的提问来源于stack exchange,提问作者Hemin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 19:36:18