torch.utils.backend_registration.rename_privateuse1_backend
-
torch.utils.backend_registration.rename_privateuse1_backend(backend_name)[source] -
Переименовывает устройство бэкенда privateuse1, чтобы его было удобнее использовать в качестве имени устройства в API PyTorch.
Шаги:
- (На C++) реализуйте ядра для различных операций torch и зарегистрируйте их для ключа диспетчеризации PrivateUse1.
- (На Python) вызовите torch.utils.rename_privateuse1_backend(“foo”)
Теперь вы можете использовать “foo” как обычную строку устройства в Python.
Примечание: этот API можно вызвать только один раз в рамках процесса. Попытка изменить внешний бэкенд после его установки приведёт к ошибке.
Примечание (AMP): если вы хотите обеспечить поддержку AMP на своём устройстве, можно зарегистрировать пользовательский модуль бэкенда. Бэкенд должен зарегистрировать пользовательский модуль бэкенда с помощью
torch._register_device_module("foo", BackendModule). BackendModule должен предоставлять следующие API:-
get_amp_supported_dtype() -> List[torch.dtype]получить поддерживаемые типы данных для устройства “foo” в AMP; возможно, устройство “foo” поддерживает ещё один тип данных.
Примечание (случайные числа): если вы хотите иметь возможность задавать начальное значение генератора для своего устройства, BackendModule должен предоставлять следующие API:
-
_is_in_bad_fork() -> boolВозвращаетTrue, если сейчас действует bad_fork, иначе возвращаетFalse. -
manual_seed_all(seed int) -> NoneЗадаёт начальное значение для генерации случайных чисел на ваших устройствах. -
device_count() -> intВозвращает количество доступных устройств “foo”. -
get_rng_state(device: Union[int, str, torch.device] = 'foo') -> TensorВозвращает список ByteTensor, представляющих состояния генератора случайных чисел всех устройств. -
set_rng_state(new_state: Tensor, device: Union[int, str, torch.device] = 'foo') -> NoneЗадаёт состояние генератора случайных чисел для указанного устройства “foo”.
Также есть несколько общих функций:
-
is_available() -> boolВозвращает логическое значение, указывающее, доступно ли сейчас устройство “foo”. -
current_device() -> intВозвращает индекс выбранного в данный момент устройства.
Подробнее см. в разделе https://pytorch.org/tutorials/advanced/extend_dispatcher.html#get-a-dispatch-key-for-your-backend. Пример существующей реализации см. в bdhirsh/pytorch_open_registration_example
Пример:
>>> torch.utils.rename_privateuse1_backend("foo") # This will work, assuming that you've implemented the right C++ kernels # to implement torch.ones. >>> a = torch.ones(2, device="foo")
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.utils.backend_registration.rename_privateuse1_backend.html