Keras' 'normal' LSTM uses the GPU? I'm running Keras' LSTM (not CuDNNLSTM) but I notice my GPU is under load. I need recurrent dropout, so I can only stick with LSTM. Is the 'normal' LSTM assisted by GPU? If so, how are LSTM and CuDNNLSTM different? I presume CuDNNLSTM uses the CUDNN API (and LSTM doesn't?

Similarly, is the normal LSTM supposed to be faster running on GPU or CPU?
Not sure if you figured this out, but I've been looking into it recently, and this is what I've found:

Is the 'normal' LSTM assisted by GPU?
is the normal LSTM supposed to be faster running on GPU or CPU?

Like @pcko1 said, LSTM is assisted by GPU if you have tensorflow-gpu installed, but it does not necessarily run faster on a GPU. In my case, it actually slowed it down by ~2x, because the LSTM is relatively small and the amount of copying between CPU and GPU made the training slower. I think with a larger network, it would speed things up. I also found that LSTM only used ~25% of the GPU, while CuDNNLSTM used ~35% of the GPU, but haven't done a thorough investigation to figure out where the difference comes from.

how are LSTM and CuDNNLSTM different?

This github issue talks about how to convert CuDNNLSTM layers to LSTM layers. I found it pretty illuminating in how CuDNNLSTM has 2x weights/biases as LSTM, and how to convert from one to the other.