Функция is_nccl_available
Функция distributed.is_nccl_available проверяет,
доступен ли бэкенд NCCL в текущей сборке PyTorch.
NCCL (NVIDIA Collective Communications Library) - это библиотека
для высокоскоростной коммуникации между GPU,
которая активно используется при распределённом обучении
на нескольких видеокартах NVIDIA.
Функция не принимает никаких параметров и возвращает
логическое значение True или False.
Синтаксис
torch.distributed.is_nccl_available()
Пример
Давайте проверим, доступен ли NCCL в системе:
import torch
import torch.distributed as dist
res = dist.is_nccl_available()
print(res)
Результат выполнения кода:
True
Пример
Перед инициализацией группы процессов можно проверить доступность и выбрать подходящий бэкенд:
import torch
import torch.distributed as dist
if dist.is_nccl_available():
backend = 'nccl'
elif dist.is_gloo_available():
backend = 'gloo'
else:
backend = 'mpi'
print(f"Selected backend: {backend}")
Результат выполнения кода:
"Selected backend: nccl"
Пример
Функция часто используется с distributed.is_available
для полной проверки возможности распределённого обучения на GPU:
import torch
import torch.distributed as dist
if dist.is_available() and dist.is_nccl_available():
print("NCCL is ready for distributed training")
else:
print("NCCL is not available")
Результат выполнения кода:
"NCCL is ready for distributed training"
Смотрите также
-
функцию
is_available,
которая проверяет доступность распределённого пакета в целом -
функцию
is_gloo_available,
которая проверяет доступность бэкенда Gloo -
функцию
init_process_group,
которая инициализирует распределённую группу процессов -
функцию
is_initialized,
которая проверяет, инициализирована ли группа процессов