Dado el mismo tamaño de lote, ¿hay algún beneficio en transferir la capacitación CNN de una sola GPU a múltiples GPU (para un tamaño de lote de 128 en 4 GPU, cada GPU procesará 32 muestras)?

Sí definitivamente. Estoy ejecutando un punto de referencia por el bien de esta pregunta, y aquí están los números. Estas pruebas implican entrenar un googlenet en una época del conjunto de datos CIFAR-10 con el tamaño de lote 128 en un sistema con 2 GPU Titan X y 1 GPU GTX 1080. Al procesar todo el lote en una GPU Titan X, el tiempo transcurrido es de 5 minutos y 25 segundos. Al distribuir el lote a través de las 3 GPU, el tiempo transcurrido es de 2 minutos y 23 segundos.

Esta es una aceleración casi lineal con respecto al número de GPU. Por supuesto, hay algo de sobrecarga de comunicación, pero todavía vale la pena paralelizar la capacitación en entornos como este si tiene el hardware.

Por cierto, si no fuera el año 2017, responder a esta pregunta con un punto de referencia no habría sido un asunto casual que se podría ejecutar durante ~ 10 minutos en segundo plano mientras se hacen otras cosas. Pero ahora vivimos en un mundo donde puede obtener paralelismo de datos para un modelo CNN dado con solo una línea de código pytorch:

net = torch.nn.DataParallel (net, device_ids = range (torch.cuda.device_count ()))

Es sorprendente el software que existe hoy en día.

More Interesting

¿Por qué están recibiendo tanta atención Machine Learning + Big Data?

Cómo lidiar con múltiples resultados mutuamente dependientes en el aprendizaje automático

¿Cuál es el mejor enfoque para la ubicación geográfica del dispositivo de clúster por cliente?

¿Cómo puedo explicar el hecho de que el aprendizaje por transferencia ofrece un mejor rendimiento que el entrenamiento estándar?

¿Cómo se puede determinar si un elemento no es apto para ninguna clasificación de acuerdo con el algoritmo Naive Bayes?

¿Qué significa "tomar la media geométrica de la distribución predictiva producida por las redes de abandono exponencialmente numerosas" en redes neuronales profundas?

Cómo depurar sus proyectos de ciencia de datos y aprendizaje automático

¿Se utiliza el álgebra abstracta y el análisis real en el aprendizaje automático? Si es así, ¿cómo se usan?

¿Cuáles son los métodos de implementación con calidad de producción para los modelos de aprendizaje automático?

¿Qué se entiende exactamente por pesos compartidos en una red neuronal convolucional?

¿Qué tan lejos estamos de usar el reconocimiento de voz como interfaz de usuario en un teléfono para cerca del 100% de todas las funciones (sin entradas de teclado o deslizamiento)?

¿Por qué las personas usan Keras en el back-end de TensorFlow y no solo en TensorFlow?

¿Cuáles son las ventajas y desventajas de la traducción automática estadística y basada en reglas?

¿Cuáles son los problemas interesantes en la 'automatización de big data'?

¿Se puede usar la detección de características / descripción de características para la clasificación de imágenes con redes neuronales artificiales?