Pytorch GPU模型推理时间探讨2——显卡warm up

问题背景在上一篇文章里

  还没看过上一篇的小伙伴可以戳这里

改进

  步入正题,上文说到,每10批推理的第一批10次推理的时间都很慢,于是重新改写了一下代码,这次每个模型只进行10次推理,继续观察现象。结果以截图的形式给出:
Pytorch GPU模型推理时间探讨2——显卡warm up_第1张图片
Pytorch GPU模型推理时间探讨2——显卡warm up_第2张图片
Pytorch GPU模型推理时间探讨2——显卡warm up_第3张图片

Pytorch GPU模型推理时间探讨2——显卡warm up_第4张图片

Pytorch GPU模型推理时间探讨2——显卡warm up_第5张图片
Pytorch GPU模型推理时间探讨2——显卡warm up_第6张图片
Pytorch GPU模型推理时间探讨2——显卡warm up_第7张图片

结论

  从这些结果来看,每个模型的前两次推理都很慢,尤其是第一次。到谷歌上找了一下原因,这是因为显卡需要warm-up,就是“热身”,这样才能发挥出显卡的性能。而至于后续的推理时间的计时仍有较大偏差,还是因为异步计时的问题,这个留着后面再解决。
  关于热身,个人理解,显卡开始工作时控制单元需要对资源进行调度,例如分配warp等。这些应该都是在第一次推理的时候进行。类似的,举个栗子,在F1比赛中,每场赛车的正赛开始前,都会有一圈“暖胎圈”,各个车手依次起步,在赛道上不停画龙——连续左转右转——来对轮胎进行一定的磨损,使其与地面充分摩擦,来达到工作状态与工作温度,进一步使赛车达到最佳状态,跑出最好成绩。这就类似显卡的“warm-up”一样。

如果有说的不对的地方,还请路过的大佬评论区指正

你可能感兴趣的:(学习笔记,深度学习,人工智能)