Replace device parsing by `GetVirtualDevice()` function call. (#9709)
This PR avoids parsing `SPMD:0` every time by calling
`GetVirtualDevice()` instead of the parsing function. It also avoids
calling the parsing function inside `GetVirtualDevice()`, creating a new
instance directly.
**Key Changes:**
1. `GetVirtualDevice()` simply creates a new `BackendDevice` of `SPMD`
type
2. Replaced the multiple calls to `ParseDeviceString("SPMD:0")` by
`GetVirtualDevice()`