cudnn.benchmark = True

在很多情况下我们能看到代码有这样一行:

1 torch.backends.cudnn.benchmark = true

而且大家都说这样可以增加程序的运行效果,那到底有没有这样的效果,或者什么情况下应该这样做呢?

解决办法:

总的来说,大部分情况下,设置这个flag可以让内置的cuDNN的auto-tunner自动寻找最适合当前配置的高效算法,来达到优化运行效率的问题。

一般来讲,应遵循以下准则:

1. 如果网络输入的数据维度或类型变化不大,设置torch.backbends.cudnn.benchmark = True 可以增加运行效率。

2. 如果网络输入的数据在每次iteration都变化的话,会导致cnDNN每次都寻找一遍最优配置,这样反而会降低运行效率。

这样一说,迷惑就解答了。

posted @ 2021-11-11 11:06  重大的小鸿  阅读(847)  评论(0编辑  收藏  举报