mmclassification测试时卡死

在使用mmclassification进行模型测试时,遇到卡死问题,经排查发现是由于GPU id=4性能问题导致的临时结果收集失败。通过屏蔽该GPU并调整CUDA_VISIBLE_DEVICES环境变量,解决了卡死问题。此现象可能普遍存在于mmlab库中的分布式计算场景。
摘要由CSDN通过智能技术生成

mmclassification测试时卡死

服务器:6张1080ti
系统:Ubuntu16.04
cuda:10.2
pytorch:1.8.2
mmcv-full:1.8.0+cu102
mmclassification:20220511

描述:在使用mmclassification,测试模型准确率时,发生卡死情况,从进度条看,数据全部正向推理完成,但是一直不输出最后的准确率;

解决方式

通过阅读源码,插入print语句,发现mmclassification中分布式计算需要通过collect_results_cpu函数把所有的结果收集起来,每个gpu会把结果写到临时文件夹.dist_test下,然后在rank=0时,再重新load到内存里,
通过这种方式把分散的计算结果统一起来。

进一步调试发现gpu-id=4时,无法正常保存临时结果,导致程序卡死。

通过CUDA_VISIBLE_DEVICES环境变量,把id=4的gpu屏蔽掉,只用其他5块就正常了。

总结

估计mmlab的其他工程都有类似逻辑,如果服务器gpu质量不好,均可能产生此类问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值