Note: this is a general (algorithmic & CUDA) question, not related to Pytorch.
The Winograd algorithm 11 transforms normal convolution computation by reducing MUL and at the same time increasing ADD operations. The number of MUL reduced is less than the number of ADD increased. However,  CUDA programming guide 1 says both floating point MUL & ADD equally costs 4 clock cycles.
Question: How does Winograd speedup rather than slowdown convolution computation?