Support for GPUs

The ability to support GPUs to support faster training and execution.