赞
踩
还没看过上一篇的小伙伴可以戳这里
步入正题,上文说到,每10批推理的第一批10次推理的时间都很慢,于是重新改写了一下代码,这次每个模型只进行10次推理,继续观察现象。结果以截图的形式给出:
从这些结果来看,每个模型的前两次推理都很慢,尤其是第一次。到谷歌上找了一下原因,这是因为显卡需要warm-up,就是“热身”,这样才能发挥出显卡的性能。而至于后续的推理时间的计时仍有较大偏差,还是因为异步计时的问题,这个留着后面再解决。
关于热身,个人理解,显卡开始工作时控制单元需要对资源进行调度,例如分配warp等。这些应该都是在第一次推理的时候进行。类似的,举个栗子,在F1比赛中,每场赛车的正赛开始前,都会有一圈“暖胎圈”,各个车手依次起步,在赛道上不停画龙——连续左转右转——来对轮胎进行一定的磨损,使其与地面充分摩擦,来达到工作状态与工作温度,进一步使赛车达到最佳状态,跑出最好成绩。这就类似显卡的“warm-up”一样。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。