
Tenho uma pergunta aberta para você:
Configurei um servidor de segunda mão em meu escritório para treinar nossos modelos de ML nele; contém 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,00 GHz, 8 núcleos, 16 threads cada -, 128 Gbs de RAM e 128 GB de SWAP (SSD Swap).
No entanto, fiz meu primeiro teste aprendendo sobre ele e, surpreendentemente, foi incrivelmente... lento. 11 minutos para treinar, quando leva 5 minutos para treinar em minha CPU i5 de 8ª geração (1,6 GHz, 4 núcleos, 8 threads) com 8 Gb de RAM e 8 Gbs de swap.
Htop me diz que a computação paralela está ativada e os picos de carga da CPU são cerca de 3 para o i5 e 22 para o 4 E7; então você tem alguma ideia de por que existe essa lacuna de desempenho? Eu sei que a lei de Moore é um fenômeno irresistível, mas para uma CPU intermediária de 1 ano superar o desempenho de 4 Xeon E7 de sete anos, não consigo entender isso. Espero que você possa ajudar! :)
PS: Já instalei Cuda e CuDNN nele mas ainda não funciona e realizei o aprendizado apenas com CPU. Fiquei tão perplexo com os resultados que parei de trabalhar na aceleração da GPU (temos um pequeno 1050 Ti instalado no servidor) para resolver o problema. Certifiquei-me de que exatamente o mesmo código estivesse sendo executado em ambos os computadores.
Desde já, obrigado ! :)
geada
Responder1
Seu problema (como acontece com a maioria dos problemas de aprendizado de máquina) provavelmente está relacionado à largura de banda da memória.
O aprendizado de máquina não exige muito cálculo da CPU, eles fazem muitos cálculos "fáceis", mas são fortemente limitados pela largura de banda da memória. Esta é uma das razões pelas quais os processadores stream de placas gráficas são tão bons para isso. Cada processador de fluxo é relativamente limitado (em comparação com uma CPU), mas para operações mais simples, sua enorme largura de banda e grande número de processadores mais do que compensam suas limitações.
Para escolher um aleatório8ª geração i5:
Max Memory Bandwidth 41.6 GB/s
Chefe da CPUparece sugerir que a largura de banda da memória de um E7-4820 de primeira geração é de 23 GB/s (23.464 MB/s)
Uma máquina multiprocessadora precisará copiar constantemente a memória entre CPUs ou compartilhar o acesso à memória de uma CPU para outra.
A combinação de memória compartilhada e largura de banda substancialmente menor é provavelmente o que está prejudicando o sistema mais antigo.
Os Xeons mais recentes reivindicam mais de 85 GB/s de largura de banda.