ultima mac cnn cuda nvidia

mac - cuda wikipedia



¿Cómo selecciono en qué GPU ejecutar un trabajo? (1)

En una computadora con múltiples GPU, ¿cómo designo en qué GPU se debe ejecutar un trabajo CUDA?

Como ejemplo, al instalar CUDA, opté por instalar NVIDIA_CUDA-<#.#>_Samples ejecutaron varias instancias de la simulación de nbody , pero todas se ejecutaron en una GPU 0; La GPU 1 estaba completamente inactiva (monitoreada usando watch -n 1 nvidia-dmi ). Verificando CUDA_VISIBLE_DEVICES usando

echo $CUDA_VISIBLE_DEVICES

Encontré que esto no fue establecido. Intenté configurarlo usando

CUDA_VISIBLE_DEVICES=1

luego ejecutando nbody nuevo pero también fue a GPU 0.

Miré la pregunta relacionada, ¿cómo elegir la GPU designada para ejecutar el programa CUDA? , pero el comando deviceQuery no está en el directorio bin de CUDA 8.0. Además de $CUDA_VISIBLE_DEVICES$ , vi que otras publicaciones se referían a la variable de entorno $CUDA_DEVICES pero no estaban establecidas y no encontré información sobre cómo usarlas.

Si bien no estaba directamente relacionado con mi pregunta, al usar nbody -device=1 pude hacer que la aplicación se ejecutara en la GPU 1, pero al usar nbody -numdevices=2 no se ejecutó en la GPU 0 y 1.

Estoy probando esto en un sistema que ejecuta el shell bash, en CentOS 6.8, con CUDA 8.0, 2 GPU GTX 1080 y el controlador NVIDIA 367.44.

Sé que cuando escribo usando CUDA, puede administrar y controlar qué recursos de CUDA usar, pero ¿cómo puedo administrar esto desde la línea de comandos al ejecutar un ejecutable compilado de CUDA?


El problema se debió a que no se configuró CUDA_VISIBLE_DEVICES variable CUDA_VISIBLE_DEVICES dentro del shell.

Para especificar el dispositivo 1 de CUDA, por ejemplo, establecería los CUDA_VISIBLE_DEVICES utilizando

export CUDA_VISIBLE_DEVICES=1

o

CUDA_VISIBLE_DEVICES=1 ./cuda_executable

El primero establece la variable para la vida del shell actual, el último solo para la vida útil de esa invocación ejecutable en particular.

Si desea especificar más de un dispositivo, utilice

export CUDA_VISIBLE_DEVICES=0,1

o

CUDA_VISIBLE_DEVICES=0,1 ./cuda_executable