mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-21 05:34:18 +08:00
Summary: All python files containing non-ASCII characters should be correctly annotated with `# -*- coding: utf-8 -*-` comment Delete number of superfluous UTF-8 characters, most commonly UTF-8 opening closing quotation mark U+2019 (’) instead of ascii apostrophe ', for example `Module’s`->`Module's` Pull Request resolved: https://github.com/pytorch/pytorch/pull/55346 Reviewed By: samestep Differential Revision: D27582044 Pulled By: malfet fbshipit-source-id: c1cd89655915858ff3a41f675cdfffff795a8e44
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
def _parse_remote_device(remote_device: str):
|
|
r"""
|
|
Parses the remote device.
|
|
|
|
Args:
|
|
remote_device (str): Device on the destination worker where we'd like to place this module.
|
|
The format should be "<workername>/<device>", where the device field can be parsed as torch.device type.
|
|
E.g., "trainer0/cpu", "trainer0", "ps0/cuda:0".
|
|
In addition, the device field can be optional and the default value is "cpu".
|
|
|
|
Returns:
|
|
A workername and a device.
|
|
"""
|
|
fields = remote_device.split("/")
|
|
if len(fields) == 2:
|
|
[on, device] = fields
|
|
elif len(fields) == 1:
|
|
on = fields[0]
|
|
device = "cpu"
|
|
else:
|
|
raise RuntimeError(
|
|
"Could not parse remote_device: {}. The valid format is '<workername>/<device>'".format(
|
|
remote_device
|
|
)
|
|
)
|
|
|
|
# Since the workername in the input remote device won't be validated until the created remote module is executed,
|
|
# only do some very basic sanity check on workername at the module creation time.
|
|
# As currently there is no regex to describe the format of workername, just check whether the workername is empty.
|
|
if not on:
|
|
raise RuntimeError(
|
|
"The workername in remote_device '{}' cannot be empty. The valid format is '<workername>/<device>'".format(
|
|
remote_device
|
|
)
|
|
)
|
|
|
|
return on, device
|