Estou executando uma rede neural de aprendizado profundo que foi treinada por uma GPU. Agora eu quero implantar isso em vários hosts para inferência. A questão é: quais são as condições para decidir se devo usar GPUs ou CPUs como inferência?
Adicionando mais detalhes dos comentários abaixo.
Eu sou novo nisso, então a orientação é apreciada.
Memória : GPU é K80
Estrutura : Cuda e cuDNN
Tamanho dos dados por carga de trabalho : 20G
Nós de computação para consumir : um por trabalho, embora deseje considerar uma opção de escala
Custo : posso comprar uma opção de GPU se os motivos fizerem sentido
Implantação : Executando em servidores bare metal hospedados, não na nuvem.
No momento, estou executando na CPU simplesmente porque o aplicativo funciona bem. Mas, fora desse motivo, não sei por que alguém consideraria a GPU.
fonte
Respostas:
@Dan @SmallChess, eu não concordo completamente. É verdade que, para o treinamento, grande parte da paralalização pode ser explorada pelas GPUs, resultando em um treinamento muito mais rápido. Para a inferência, essa paralalização pode ser bem menor, mas a CNN ainda obterá uma vantagem disso, resultando em inferência mais rápida. Agora você só precisa se perguntar: a inferência mais rápida é importante? Eu quero essas dependências extras (uma boa GPU, os arquivos corretos instalados etc.)?
Se a velocidade não for um problema, vá para a CPU. No entanto, observe que as GPUs podem torná-lo uma ordem de magnitude mais rápida na minha experiência.
fonte
A inferência de execução em uma GPU em vez da CPU fornecerá quase a mesma velocidade que no treinamento, menos um pouco de sobrecarga de memória.
No entanto, como você disse, o aplicativo funciona bem na CPU. Se você chegar ao ponto em que a velocidade de inferência é um gargalo no aplicativo, a atualização para uma GPU aliviará esse gargalo.
fonte
Você usaria apenas a GPU para treinamento, porque o aprendizado profundo exige um cálculo maciço para chegar a uma solução ideal. No entanto, você não precisa de máquinas GPU para implantação .
Vejamos o novo iPhone X da Apple como exemplo. O novo iPhone X possui um algoritmo avançado de aprendizado de máquina para detecção facial. Os funcionários da Apple devem ter um cluster de máquinas para treinamento e validação. Mas o seu iPhone X não precisa de uma GPU apenas para executar o modelo.
fonte