作用
针对你当前的硬件,找到最合适的算法。(注意,很多代码里会有import torch.backends.cudnn as cudann
,所以其实torch.backends.cudnn.benchmark
和cudnn.benchmark
是一回事)
使用注意事项
It enables benchmark mode in cudnn.
benchmark mode is good whenever your input sizes for your network do not vary. This way, cudnn will look for the optimal set of algorithms for that particular configuration (which takes some time). This usually leads to faster runtime.
But if your input sizes changes at each iteration, then cudnn will benchmark every time a new size appears, possibly leading to worse runtime performances.
翻译过来就是:当你网络的输入大小不变时,torch.backends.cudnn.benchmark = True
可以让你的网络跑得更快。但是如果你网络的输入大小在变化,torch.backends.cudnn.benchmark = True
反而会让你的网络跑得更慢,因为每次改变输入大小都会计算一次。
避免波动影响速度
torch.backends.cudnn.deterministic = True
参考链接
https://discuss.pytorch.org/t/what-does-torch-backends-cudnn-benchmark-do/5936/2