It still needs to allocate some temporary buffer: the tensor the goes from the embedding layer to the weigt.grad field.
This buffer is necessary as your weights could be used in other places and the gradients would then need to be accumulated there.