Stateless dropout broken on mixed_float16 with XLA
Note, the experimental API is not required to reproduce the bug. Just use `force_generator=True` instead.

```py
import tensorflow as tf

tf.keras.mixed_precision.set_global_policy('mixed_float16')

dropout = tf.keras.layers.Dropout(rate=0.5, force_generator=True)

@tf.function(jit_compile=True)
def run(x):
    return dropout(x, training=True)

print(run(tf.constant([0.1, 0.2], dtype=tf.dtypes.float32)))
``` Hi, @AndreasMadsen 

Apologize for the delay and I was able to replicate the same issue with `tf-nightly-2.13.0-dev20230216` and `Tensorflow==2.11`, for your reference I have added [gist-file](https://colab.research.google.com/gist/gaikwadrahul8/039b9344253d44c324ee07ccceffb2cf/-59678-tf-nightly.ipynb) but when I tried the same code with Pre Release `tensorflow 2.12.0rc0` and it seems like working fine as expected, for your reference I have added [gist-file-tensorflow-2.12.0rc0
](https://colab.research.google.com/gist/gaikwadrahul8/2448d5ff89748bbbf87f8911ca8ce38f/-59678-tensorflow-2-12-0rc0.ipynb) so Could you please try with `tensorflow 2.12.0rc0` from your end and please let us know whether is it working fine or not ?

If issue still persists please let us know ? or Could you please confirm if this issue is resolved for you ? Please feel free to close the issue if it is resolved ? Thank you! @gaikwadrahul8 Hi, I can confirm that `2.12.0rc0` works using the docker image on a V100 GPU. Actually running `2.12.0rc0` on our typical system will require some more work as the CUDA and CuDNN have now changed. I have issued an update request to fully check this.


Also, before closing this issue, I would like clarification as to how this works on `2.12.0.rc0` but not the nightly version. The changelog does not appear to mention that float16 support was added to XLA StatelessUniform. 

Finally, I suggest checking that there is no issue `mixed_bfloat16` too. This issue has been automatically marked as stale because it has no recent activity. It will be closed if no further activity occurs. Thank you.
 @google-ml-butler The stalling is not my responsibility and I don't see a reason why this issue should be closed. Maybe you can remove the `stat:awaiting response` label to avoid confusion. Hi, @AndreasMadsen 

I'm really sorry, The **google-ml-butler** bot is not working as expected and our team is working on it, I'll remove **stalled** and **stat:awaiting response** labels manually now. Thank you! Hi, @AndreasMadsen 

I was able to replicate the same issue with `tf-nightly` and `tensorflow==2.12.0rc0` and It seems like, it's working as expected and in new release of `TF2.12 `this issue will be resolved, for your reference I have added [gist-file ](https://colab.research.google.com/gist/gaikwadrahul8/696769f161928a97c4272729e86e84fa/-59678-test.ipynb). Thank you! @gaikwadrahul8 Sorry, you were able to replicate the issue `tf-nightly` and `tensorflow==2.12.0rc0`? How is that "working as expected"?

The desired result is that you can **not** replicate the issue on `tf-nightly` and `2.12rcX`. Maybe that is what you meant.

Great to hear that it will be fixed on 2.12. I'm just confused about the first comment. Hi, @AndreasMadsen 

Apologize for the delay and I have tested the same code with `tf-nightly `and `tensorflow==2.12.0rc0` and It seems like it's working as expected(without any erros) for your reference here is [gist-file](https://colab.research.google.com/gist/gaikwadrahul8/696769f161928a97c4272729e86e84fa/-59678-test.ipynb) so you can use either `tf-nightly` or `tensorflow==2.12.0rc0` at the moment and we don't support all the `ops` with XLA at the moment, our developer team is working on it and it's in progress so your issue will be fixed in upcoming stable version `TF2.12 `. 

If issue still persists with `tf-nightly` or `tensorflow==2.12.0rc0` please let us know or Could you please confirm if this issue is resolved for you ? Please feel free to close the issue if it is resolved ? Thank you! Thanks for the help, I truly appreciate it. Are you satisfied with the resolution of your issue?
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=Yes&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/59678">Yes</a>
<a href="https://docs.google.com/forms/d/e/1FAIpQLSfaP12TRhd9xSxjXZjcZFNXPGk4kc1-qMdv3gc6bEP90vY1ew/viewform?entry.85265664=No&entry.2137816233=https://github.com/tensorflow/tensorflow/issues/59678">No</a>

<details><summary>Click to expand!</summary> 
 
 ### Issue Type

Bug

### Have you reproduced the bug with TF nightly?

Yes

### Source

source

### Tensorflow Version

2.13.0.dev20230213

### Custom Code

Yes

### OS Platform and Distribution

Colab

### Mobile device

_No response_

### Python version

_No response_

### Bazel version

_No response_

### GCC/Compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current Behaviour?

Stateless/stateful (not legacy) dropout fails with `mixed_float16` and XLA, because the stateless-uniform-random operation does not exist for half types.

Note that without Stateless/stateful (not legacy) dropout, a warning is generated saying that seeds are not respected.

The error reproduces consistently on Colab, with TF 2.11 and the latest nightly.

### Standalone code to reproduce the issue

```py
import tensorflow as tf
tf.keras.mixed_precision.set_global_policy('mixed_float16')
tf.keras.backend.experimental.enable_tf_random_generator()

dropout = tf.keras.layers.Dropout(rate=0.5)

@tf.function(jit_compile=True)
def run(x):
    return dropout(x, training=True)

print(run(tf.constant([0.1, 0.2], dtype=tf.dtypes.float32)))
```

https://colab.research.google.com/drive/1F9V0ayyNIpbIQcjjtk7IN6w3EQai5Fk9?usp=sharing

### Relevant log output

```shell
nvalidArgumentError: Detected unsupported operations when trying to compile graph __inference_run_448[_XlaMustCompile=true,config_proto=3175580994766145631,executor_type=11160318154034397263] on XLA_CPU_JIT: StatelessRandomUniformV2 (No registered 'StatelessRandomUniformV2' OpKernel for XLA_CPU_JIT devices compatible with node {{node dropout_3/stateless_dropout/stateless_random_uniform/StatelessRandomUniformV2}}
	 (OpKernel was found, but attributes didn't match) Requested Attributes: Tshape=DT_INT32, dtype=DT_HALF){{node dropout_3/stateless_dropout/stateless_random_uniform/StatelessRandomUniformV2}}
The op is created at: 
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
  return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
  exec(code, run_globals)
File "/usr/local/lib/python3.8/dist-packages/ipykernel_launcher.py", line 16, in <module>
  app.launch_new_instance()
File "/usr/local/lib/python3.8/dist-packages/traitlets/config/application.py", line 992, in launch_instance
  app.start()
File "/usr/local/lib/python3.8/dist-packages/ipykernel/kernelapp.py", line 612, in start
  self.io_loop.start()
File "/usr/local/lib/python3.8/dist-packages/tornado/platform/asyncio.py", line 149, in start
  self.asyncio_loop.run_forever()
File "/usr/lib/python3.8/asyncio/base_events.py", line 570, in run_forever
  self._run_once()
File "/usr/lib/python3.8/asyncio/base_events.py", line 1859, in _run_once
  handle._run()
File "/usr/lib/python3.8/asyncio/events.py", line 81, in _run
  self._context.run(self._callback, *self._args)
File "/usr/local/lib/python3.8/dist-packages/tornado/ioloop.py", line 690, in <lambda>
  lambda f: self._run_callback(functools.partial(callback, future))
File "/usr/local/lib/python3.8/dist-packages/tornado/ioloop.py", line 743, in _run_callback
  ret = callback()
File "/usr/local/lib/python3.8/dist-packages/tornado/gen.py", line 787, in inner
  self.run()
File "/usr/local/lib/python3.8/dist-packages/tornado/gen.py", line 748, in run
  yielded = self.gen.send(value)
File "/usr/local/lib/python3.8/dist-packages/ipykernel/kernelbase.py", line 365, in process_one
  yield gen.maybe_future(dispatch(*args))
File "/usr/local/lib/python3.8/dist-packages/tornado/gen.py", line 209, in wrapper
  yielded = next(result)
File "/usr/local/lib/python3.8/dist-packages/ipykernel/kernelbase.py", line 268, in dispatch_shell
  yield gen.maybe_future(handler(stream, idents, msg))
File "/usr/local/lib/python3.8/dist-packages/tornado/gen.py", line 209, in wrapper
  yielded = next(result)
File "/usr/local/lib/python3.8/dist-packages/ipykernel/kernelbase.py", line 543, in execute_request
  self.do_execute(
File "/usr/local/lib/python3.8/dist-packages/tornado/gen.py", line 209, in wrapper
  yielded = next(result)
File "/usr/local/lib/python3.8/dist-packages/ipykernel/ipkernel.py", line 306, in do_execute
  res = shell.run_cell(code, store_history=store_history, silent=silent)
File "/usr/local/lib/python3.8/dist-packages/ipykernel/zmqshell.py", line 536, in run_cell
  return super(ZMQInteractiveShell, self).run_cell(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 2854, in run_cell
  result = self._run_cell(
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 2881, in _run_cell
  return runner(coro)
File "/usr/local/lib/python3.8/dist-packages/IPython/core/async_helpers.py", line 68, in _pseudo_sync_runner
  coro.send(None)
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 3057, in run_cell_async
  has_raised = await self.run_ast_nodes(code_ast.body, cell_name,
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 3249, in run_ast_nodes
  if (await self.run_code(code, result,  async_=asy)):
File "/usr/local/lib/python3.8/dist-packages/IPython/core/interactiveshell.py", line 3326, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-14-7ae9614dfdd0>", line 11, in <module>
  print(run(tf.constant([0.1, 0.2], dtype=tf.dtypes.float32)))
File "<ipython-input-11-7ae9614dfdd0>", line 9, in run
  return dropout(x, training=True)
File "/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py", line 65, in error_handler
  return fn(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/keras/engine/base_layer.py", line 1132, in __call__
  _name_scope_unnester(self._name_scope_on_declaration)
File "/usr/local/lib/python3.8/dist-packages/keras/utils/traceback_utils.py", line 96, in error_handler
  return fn(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/keras/layers/regularization/dropout.py", line 120, in call
  output = control_flow_util.smart_cond(
File "/usr/local/lib/python3.8/dist-packages/keras/utils/control_flow_util.py", line 108, in smart_cond
  return tf.__internal__.smart_cond.smart_cond(
File "/usr/local/lib/python3.8/dist-packages/keras/layers/regularization/dropout.py", line 116, in dropped_inputs
  return self._random_generator.dropout(
File "/usr/local/lib/python3.8/dist-packages/keras/backend.py", line 2156, in dropout
  if self._rng_type == self.RNG_STATEFUL: [Op:__inference_run_448]
```
</details>