unofficial-implement-of-openpose icon indicating copy to clipboard operation
unofficial-implement-of-openpose copied to clipboard

如何调用多GPU训练所遇到的相关问题?

Open Scheaven opened this issue 5 years ago • 1 comments

你好,我在进行多GPU训练的时候出现了以下问题: 1、通过设置os.environ["CUDA_VISIBLE_DEVICES"]="4,5,6,7"指定GPU可见的驱动编号, 但是总是第一块gpu被调用(指定的第一块,这里编号为4) 2、如果不进行指定可见的GPU,则会将所有GPU都默认加载(一共8块GPU),但是只有第一块显存被加载满,并参与运算,其他的GPU并不参与运算。 3、CPU占用也特别严重,32核都被沾满了(每个核几乎都是100%)。 4、一块GPU训练很慢,不知道是我代码的问题不是,GPU已经跑满,看着也在高位运行,但是CPU调用也是100%。一块1080Ti的GPU训练coco2017数据集超过12小时,(我修改了batch_size为16,learning_rate初始值为1e-4) 5、我使用了TensorFlow官网提供的多GPU样例,如果使用os.environ["CUDA_VISIBLE_DEVICES"]指定可见的编号,也会出现只有制定GPU第一个编号的被调用。但是如果不指定可见,则8块GPU会全部加载并全部参与运算; 多GPU设置代码截图: 123 nvidia-smi GPU调用情况展示: 456 运算情况截图: 789

另外在最后一轮结束时报错:截图如下 4444

我的理解这个错误应该是训练终止,所以报的错

Scheaven avatar Sep 09 '19 02:09 Scheaven

多GPU我代码没跑过,不是太清楚,但是cpu核心跑满是因为gt是根据标注文件训练时生成的所以比较消耗计算资源,占用核心数是可以调整的,根据你的batch大小,保证cpu能把GPU喂满。最后的报错直接忽略即可,没有影响

YangZeyu95 avatar Sep 12 '19 02:09 YangZeyu95