在modelscope-funasr单机多卡模式微调过paraformer模型的吗 ?我用这个命令CUDA_VISIBLE_DEVICES=1,2 python -m torch.distributed.launch --nproc_per_node 2 --use_env finetune.py 调试发现显存都集中在了0卡,其余一张显卡未被利用,有大佬知道是什么原因吗?
根据您提供的信息,您正在使用ModelScope-FunASR的单机多卡模式进行Paraformer模型的微调。您提到显存都集中在了0卡,而其他显卡未被利用。
这种情况可能是由于以下原因之一导致的:
分布式训练配置问题:在使用torch.distributed.launch
时,确保您的代码正确设置了分布式训练的配置。特别是,您需要确保每个进程都能够访问到所有的GPU设备。您可以检查代码中的分布式训练设置部分,确保使用了正确的参数和命令行选项。
CUDA_VISIBLE_DEVICES环境变量设置问题:在运行脚本之前,您设置了CUDA_VISIBLE_DEVICES
环境变量来指定可见的GPU设备。请确保该环境变量正确设置为包含所有可用GPU的列表。例如,如果您有3个GPU(编号为0、1和2),则应将CUDA_VISIBLE_DEVICES
设置为0,1,2
。
硬件或驱动兼容性问题:某些情况下,特定的硬件或驱动程序版本可能会导致GPU无法正确分配或使用。请确保您的硬件和驱动程序与ModelScope-FunASR的要求兼容。
代码逻辑问题:可能存在代码中的逻辑错误导致GPU未被正确利用。请仔细检查您的代码,特别是与分布式训练相关的部分,确保没有错误或遗漏。
根据您提供的信息,出现显存集中在一张显卡上的问题可能是由于以下原因之一:
torch.nn.parallel.DistributedDataParallel
等。CUDA_VISIBLE_DEVICES=1,2
用于指定可见的GPU设备。请确保这个环境变量被正确设置,以便让程序能够看到并使用所有的GPU设备。综上所述,要解决这个问题,您可以从以上几个方面进行排查和调整。如果问题仍然存在,建议您查阅相关文档、寻求社区支持或咨询专业人士的帮助,以获取更具体的解决方案。