ModelScope中,我加了export NCCL_P2P_LEVEL=NVL 这句话以后,报了这个错:RuntimeError: CUDA error: device kernel image is invalid
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,3卡上跑的
这个错误可能是由于NCCL_P2P_LEVEL设置不正确导致的。你可以尝试将NCCL_P2P_LEVEL设置为0,然后重新运行程序。如果问题仍然存在,建议检查你的CUDA和PyTorch版本是否兼容。
您在使用 ModelScope 中进行 GPU 加速计算时遇到了 CUDA 相关的错误。这个错误可能与 CUDA 的配置或环境变量设置有关。通常情况下,NCCL_P2P_LEVEL
环境变量用于控制 GPU 之间的直接内存访问的级别,但是在某些情况下可能会影响到 CUDA 运行时的行为。
针对您遇到的问题,建议您尝试以下解决方案:
检查环境变量:确保 NCCL_P2P_LEVEL
环境变量的设置是符合您的实际需求的,并且不会影响到 CUDA 运行时的正常行为。
检查 CUDA 配置:确认 CUDA 的安装和配置是否正确,包括驱动程序、CUDA Toolkit 版本等。
检查 GPU 设备:如果报错是在多卡环境下,尝试逐个排查每块 GPU 是否都能正常工作,以确定问题出现在哪一块 GPU 上。
使用 CUDA 工具进行调试:如错误信息中所述,您可以考虑通过设置 CUDA_LAUNCH_BLOCKING=1
来使 CUDA 在错误发生时立即报告,以便更准确地定位问题。
这个错误表明您的机器上有两个GPU,其中一个 GPU 没有足够的资源来运行该模型。
要解决这个问题,可以尝试以下方法:
按照您所述的情况,出现此错误可能是由于NCCL库无法正确初始化造成的。"CUDA error: device kernel image is invalid" 这样的错误通常表明某些硬件或驱动程序有问题,导致运行时无法加载设备上的内核映像。建议您先确保显卡驱动程序和CUDA版本正确,并更新至最新版;另外,可以尝试关闭防火墙及安全软件等,看是否可以解决问题。
此外,也可以尝试使用 "CUDA_LAUNCH_BLOCKING=1" 参数运行代码,以阻止可能出现的问题。这将使 CUDA 在执行任何操作之前等待内核结束执行。
scripts / seqgpt 比较小,单卡应该能跑起来,您把几个卡都试一下,看看是否有问题。——此回答整理自钉群:魔搭ModelScope开发者联盟群 ①