很多时候GPU的利用率很低,但是CPU的利用率却很高,让人怀疑是不是运行在CPU上
1.首先一个排除使用CPU的可能,应该使用
data.to(device)
把数据送入GPU中
2.解决了上面的问题后,应该调整dataloader中num_worker和batch_size的数值,使得两者相互匹配,否则模型的速度瓶颈不在于GPU的使用,而是在IO读取太慢。
数据没办法把及时送入GPU,使得GPU在等待数据,GPU的利用率就会很低,所以应该适当调大num_worker,提高IO速度
同时,应该调整batch_size,batch_size太大会导致OOM,太小的话,运行速度又太慢
3.所以两者的关系应该根据运行的情况进行适当调整