Abstract GPU runtime to eventually allow different GPU targets to use the same runtime interface.