torch.backends.cudnn.benchmark的用法

首先,要明白backends是什么,Pytorch的backends是其调用的底层库。torch的backends都有:

cuda
cudnn
mkl
mkldnn
openmp

代码torch.backends.cudnn.benchmark主要针对Pytorch的cudnn底层库进行设置,输入为布尔值True或者False:

  1. 设置为True,会使得cuDNN来衡量自己库里面的多个卷积算法的速度,然后选择其中最快的那个卷积算法。
    我们看官方文档描述:
    请添加图片描述
    所以,当这个参数设置为True时,启动算法的前期会比较慢,但算法跑起来以后会非常快
    根据官网论坛上一位海外网友的说法:如果输入大小是固定的,采用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.

  1. 设置为False
    则会关闭这一功能。

参考链接1:https://pytorch.org/docs/stable/backends.html
参考链接2:https://discuss.pytorch.org/t/what-does-torch-backends-cudnn-benchmark-do/5936

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木盏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值