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:
- ¿Es probable que Goldman Sachs sea el primero en alcanzar la singularidad?
- Muchas empresas hablan de 'big data' y 'aprendizaje profundo', y siempre ponen estas etiquetas en sus productos. ¿Cuál es el verdadero significado detrás de esto?
- ¿Cuál es la mejor manera de aprender la optimización numérica para el aprendizaje automático y el aprendizaje profundo?
- ¿Cuáles son algunas redes neuronales diferentes que podrían usarse como algoritmos de control en cuadricópteros autónomos?
- ¿Es la verificación en el aprendizaje profundo un tema candente?
net = torch.nn.DataParallel (net, device_ids = range (torch.cuda.device_count ()))
Es sorprendente el software que existe hoy en día.