Trainer and Accelerate

What are the differences and if Trainer can do multiple GPU work, why need Accelerate?

Accelerate use only for custom code? (add or remove something)