
Tengo una pregunta abierta para ti:
Configuré un servidor de segunda mano en mi oficina para entrenar nuestros modelos de ML en él; contiene 4 Xeon E7 4820 (https://ark.intel.com/products/53675/Intel-Xeon-Processor-E7-4820-18M-Cache-2_00-GHz-5_86-GTs-Intel-QPI) - 2,00GHz, 8 núcleos, 16 hilos cada uno -, 128Gbs de RAM y 128GB de SWAP (SSD Swap).
Sin embargo, hice mi primera prueba de aprendizaje y, sorprendentemente, fue sorprendentemente... lento. 11 minutos para entrenar, cuando se necesitan 5 minutos para entrenar en mi CPU i5 de octava generación (1,6 GHz, 4 núcleos, 8 subprocesos) con 8 Gb de RAM y 8 Gbs de intercambio.
Htop me dice que la computación paralela está activada y que los picos de carga de la CPU son aproximadamente 3 para el i5 y 22 para el 4 E7; Entonces, ¿tiene alguna idea de por qué existe tal brecha de rendimiento? Sé que la ley de Moore es un fenómeno irresistible, pero para que una CPU de gama media de 1 año supere a 4 Xeon E7 de siete años, no puedo entender esto. ¡Espero que puedas ayudar! :)
PD: ya instalé Cuda y CuDNN pero aún no funciona y realicé el aprendizaje solo con la CPU. Quedé tan desconcertado por los resultados que dejé de trabajar en la aceleración de la GPU (tenemos una pequeña 1050 Ti que instalé en el servidor) para trabajar en el problema. Me aseguré de que también se esté ejecutando exactamente el mismo código en ambas computadoras.
Gracias de antemano ! :)
escarcha
Respuesta1
Su problema (como ocurre con la mayoría de los problemas de aprendizaje automático) probablemente tenga que ver con el ancho de banda de la memoria.
El aprendizaje automático no requiere mucho cálculo de la CPU, realiza muchos cálculos "fáciles", pero está muy limitado por el ancho de banda de la memoria. Esta es una de las razones por las que los procesadores de flujo de tarjetas gráficas son tan buenos. Cada procesador de flujo es relativamente limitado (en comparación con una CPU), pero para operaciones más simples, su enorme ancho de banda y su gran número de procesadores compensan con creces sus limitaciones.
Para elegir al azari5 de octava generación:
Max Memory Bandwidth 41.6 GB/s
jefe de CPUparece sugerir que el ancho de banda de memoria de un E7-4820 de primera generación es de 23GB/s (23,464 MB/s)
Una máquina multiprocesador deberá copiar constantemente memoria entre CPU o compartir el acceso a la memoria de una CPU a otra.
Para empezar, la combinación de memoria compartida y un ancho de banda sustancialmente menor es probablemente lo que está perjudicando al sistema más antiguo.
Los Xeon más nuevos reclaman un ancho de banda de más de 85 GB/s.