Saltar al contenido

¿Cómo ejecutar la inferencia de tensorflow para múltiples modelos en GPU en paralelo?

Hola usuario de nuestra página web, tenemos la respuesta a tu búsqueda, deslízate y la encontrarás un poco más abajo.

Solución:

ESTÁ BIEN. Creo que he encontrado la solución ahora.

Uso tensorflow 2 y existen esencialmente 2 métodos para administrar el uso de memoria de la GPU.

  1. establecer el crecimiento de la memoria en true
  2. establecer el límite de memoria en algún número

Puede usar ambos métodos, ignorar todos los mensajes de advertencia sobre cosas sin memoria. Todavía no sé qué significa exactamente, pero el modelo sigue funcionando y eso es lo que me importa. Medí el tiempo exacto que usa el modelo para ejecutarse y es mucho mejor que ejecutarlo en la CPU. Si ejecuto ambos procesos al mismo tiempo, la velocidad disminuye un poco, pero sigue siendo mucho mejor que ejecutar en la CPU.

Para el enfoque de crecimiento de la memoria, mi GPU es de 3 GB, por lo que el primer proceso intenta asignar todo y luego el segundo proceso dice que no tiene memoria. Pero todavía funciona.

Para el enfoque del límite de memoria, establecí el límite en algún número, por ejemplo, 1024 MB. Ambos procesos funcionan.

Entonces, ¿cuál es el número mínimo correcto que puede establecer?

Intenté reducir el límite de memoria hasta que descubrí que mi modelo funciona bien con un límite de 64 MB. La velocidad de predicción sigue siendo la misma que cuando configuré el límite de memoria en 1024 MB. Cuando configuré el límite de memoria en 32 MB, noté una caída de velocidad del 50 %. Cuando configuro 16 MB, el modelo se niega a ejecutar porque no tiene suficiente memoria para almacenar el tensor de imagen. Esto significa que mi modelo requiere un mínimo de 64 MB, que es muy poco teniendo en cuenta que tengo 3 GB de sobra. Esto también me permite ejecutar el modelo mientras juego algunos videojuegos.

Conclusión: Elegí usar el enfoque de límite de memoria con un límite de 64 MB. Puede consultar cómo usar el límite de memoria aquí: https://www.tensorflow.org/guide/gpu

Le sugiero que intente cambiar el límite de memoria para ver el mínimo que necesita para su modelo. Verá que la velocidad cae o el modelo se niega a funcionar cuando la memoria no es suficiente.

Además de configurar la fracción de memoria gpu, debe habilitar MPS en CUDA para obtener una mejor velocidad si está ejecutando más de un modelo en GPU simultáneamente. De lo contrario, la velocidad de inferencia será más lenta en comparación con el modelo único que se ejecuta en GPU.

sudo nvidia-smi -i 0 -c EXCLUSIVE_PROCESS
sudo nvidia-cuda-mps-control -d

Aquí 0 es tu número de GPU
Después de terminar, detenga el demonio MPS.

echo quit | sudo nvidia-cuda-mps-control

Te mostramos comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *