今日又打算开个专栏,叫做待解答,有些问题去百度上问都很难描述出来,而且不属于会卡住你工作的bug类,所以决定记录下来加深印象,可能就会在某天等来那个珍贵的茅塞顿开…
同样的模型,设置batch_size=2
,放在两个相同配置的显卡,device#1
和device#6
上跑,并将device#1
设置为主设备,但是跑的过程中发现,在device#6
上占用的内存比device#1
上大许多(我的模型大概是大了三倍,最初device#1
5000+M,device#6
16000+M),且最后也是因为device#6
上的内存不够提示CUDA out of memory
的,因此疑惑一:
- 为何多设备并行的情况下,在主设备上的内存占用比其他设备小?
后来,只好设batch_size=1
分别在device#1
和device#6
上开两个模型,但是却发现,这次在device#6
的内存占用情况更小了(大概10000+M),所以又出现一个疑惑:
- 为什么并行计算的情况下,同样的
batch_size
好像占用的内存更大了?