Error while running GPT-J 6B with revision="float16"
Hi, I am getting `RuntimeError: "LayerNormKernelImpl" not implemented for 'Half'` while running the following snippet of code on the latest master. Suspect that it is because of the `revision="float16"`.

## Code
```
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model = AutoModelForCausalLM.from_pretrained("EleutherAI/gpt-j-6B", revision="float16", torch_dtype=torch.float16)
tokenizer = AutoTokenizer.from_pretrained("EleutherAI/gpt-j-6B")
prompt = "In a shocking finding, scientists discovered a herd of unicorns living in a remote, " \
"previously unexplored valley, in the Andes Mountains. Even more surprising to the " \
"researchers was the fact that the unicorns spoke perfect English."
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
gen_tokens = model.generate(input_ids, do_sample=True, temperature=0.9, max_length=100,)
gen_text = tokenizer.batch_decode(gen_tokens)[0]
```

The error happens in `model.generate`. Stacktrace:

```
/usr/local/lib/python3.7/dist-packages/transformers/models/gptj/modeling_gptj.py in forward(self, hidden_states, layer_past, attention_mask, head_mask, use_cache, output_attentions)
    272     ):
    273         residual = hidden_states
--> 274         hidden_states = self.ln_1(hidden_states)
    275         attn_outputs = self.attn(
    276             hidden_states,
```

### Who can help

Models:

- gptj: @patrickvonplaten, @EricHallahan, @StellaAthena 

## Information

Model I am using (Bert, XLNet ...): GPT-J 6B

## To reproduce

Steps to reproduce the behavior:

Run the provided code snippet

You need hardware that supports half-precision to run the model in half-precision. If you have a GPU with float16 support, load the model to GPU. If you only have a CPU without float16 support, you must specify `torch_dtype=torch.float32` instead.<|||||>I got the same error though I use p3.2xlarge on AWS, which have half precision support.
any idea what to do?
