cudnn.benchmark = True would use cuDNN’s internal profiling to select the fastest kernels for the current workload. If you are using static shapes, this should be beneficial. However, note that cuDNN will profile each new workload, which would be the case if input shapes change. So if your model is using a new input shapes in each iteration, you would pay the profiling cost every time.