es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo definir múltiples recursos gres en SLURM usando el mismo dispositivo GPU?

Estoy ejecutando trabajos de aprendizaje automático (ML) que usan muy poca memoria de GPU. Por lo tanto, podría ejecutar varios trabajos de ML en una sola GPU.

Para lograr esto, me gustaría agregar varias líneas en el archivo gres.conf que especifiquen el mismo dispositivo. Sin embargo, parece que el demonio de slurm no acepta esto, devolviendo el servicio:

fatal: la carga de configuración del complemento Gres GPU falló

¿Hay alguna opción que esté faltando para que esto funcione? ¿O tal vez una manera diferente de lograrlo con SLURM?

Es algo similar a este caso, pero este parece ser específico para algún código CUDA con compilación habilitada. Algo que parece mucho más específico que mi caso general (o al menos hasta donde yo entiendo). https://stackoverflow.com/questions/51867273/how-to-run-multiple-jobs-on-a-gpu-grid-with-cuda-using-slurm

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en TensorFlow, gpu y SLURM, puedo sugerir las siguientes soluciones para el problema mencionado:

    1. En lugar de agregar múltiples líneas en el archivo gres.conf, intente agregar múltiples valores separados por comas para el mismo dispositivo en una sola línea. Por ejemplo, si tiene una GPU con 2 GB de memoria, puede especificarlo en el archivo gres.conf como “gpu:tesla:2:1,gpu:tesla:2:1”. Esto indicará que la misma GPU puede ser compartida por múltiples trabajos, con cada trabajo usando hasta 2 GB de memoria.
    2. Si la solución anterior no funciona, puede intentar usar el complemento mcs en SLURM. Este complemento permite que múltiples trabajos compartan un único recurso, como una GPU. Para usar el complemento mcs, debe especificar la opción “–mcs=same” en su comando sbatch o srun, lo que permitirá que múltiples trabajos compartan la misma GPU.

    3. Otra opción que puede probar es usar contenedores Docker para ejecutar sus trabajos de ML. De esta manera, puede aislar cada trabajo en un contenedor separado, al que se puede asignar una cantidad específica de memoria GPU. Esto también le permitirá ejecutar múltiples trabajos en la misma GPU, y cada trabajo solo puede usar la memoria GPU asignada.

    En general, estas soluciones deberían abordar el problema de ejecutar múltiples trabajos de ML en una única GPU con un uso mínimo de memoria GPU.

Comments are closed.