PyTorch 1.0 CTC loss is faster.
You’re pretty safe if you use CuDNN loss (you can use print (evaluated_loss.grad_fn) to check if it says something with cudnn or something with native), but there appears to be a bug I haven’t quite hunted down yet when you use the native implementation and inputs of varying length.
I don’t suggest to use my WarpCTC bindings, Sean also has PyTorch 1.0 bindings (I think in a branch, @jinserk contributed to them).
Not that PyTorch’s CTC loss isn’t a drop-in replacement for WarpCTC. There is “infinite losses are not clipped / produce NaN gradients” and “PyTorch uses a different scaling when you use the ‘mean’ reduction option”.
I hope to fix the bug mentioned above this year (it’s somewhere in the issue list, but it might be closed)…
Best regards
Thomas