possible bug in python/fedml/core/distributed/communication/trpc/utils.py
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 58/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Estancado
- Área
- distributed-systems
Línea de trabajo
Comienza con python/fedml/core/distributed/communication/trpc/utils.py y el punto de entrada federate/cross_silo/cuda_rpc_fedavg_mnist_lr_example. Reproduce el lanzamiento con una sola GPU, un servidor y dos clientes; después, inspecciona cómo set_device_map gestiona la asignación de device_list. Se considera terminado cuando el ejemplo se inicia sin el error de índice de dispositivo no válido y el mapa de dispositivos utiliza los valores de GPU configurados.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hi,
I was trying to launch federate/cross_silo/cuda_rpc_fedavg_mnist_lr_example, mapping all processes (1 server and 2 clients) to a single gpu.
it ended with error
File "/home/myhome/.local/lib/python3.10/site-packages/torch/distributed/rpc/backend_registry.py", line 235, in _validate_device_maps
raise ValueError(
ValueError: Node worker0 has target devices with invalid indices in its device map for worker2
device map = {device(type='cuda', index=0): device(type='cuda', index=2)}
device count = 1
I suspect there is a bug in python/fedml/core/distributed/communication/trpc/utils.py
# Generate Device Map for Cuda RPC
def set_device_map(options, worker_idx, device_list):
local_device = device_list[worker_idx]
for index, remote_device in enumerate(device_list):
logging.warn(f"Setting device map for client {index} as {remote_device}")
if index != worker_idx:
options.set_device_map(WORKER_NAME.format(index), {local_device: remote_device})
here device_list is a dict {0:0, 1:0, 2:0}, but enumerate iterates over its keys and then assigns the key (0,1,2) as local_device.
I tried to correct this as
for index, remote_device in enumerate(device_list):
logging.warn(f"Setting device map for client {index} as {device_list[remote_device]}")
if index != worker_idx:
options.set_device_map(WORKER_NAME.format(index), {local_device: device_list[remote_device]})
and the example worked ok.
- Lenguaje dominante
- Python
- Estrellas
- 4.1k
- Forks
- 770
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de FedML-AI/FedML
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 45/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
-
How to change ACCOUNT_IDAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 38/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
Todos los issues de FedML-AI/FedML
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
foxglove/mcap#1907 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
namespace operations
Dificultad 1/5 Menos de una hora Aptitud para principiantes 72/100
EclipseFdn/open-vsx.org#14623 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
developmentseed/titiler-cmr#261 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
andrewyng/openworker#774 ·
Los mantenedores suelen responder en 1 día
-
aggfuncAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
worldbank/blackmarblepy#160 ·