2017-05-23 4 views
0

J'ai formé un réseau de neurones en utilisant un GPU (1080 ti). La vitesse d'entraînement sur GPU est bien meilleure que l'utilisation du CPU.Quel est l'impact de l'utilisation d'un GPU dans l'exécution d'un modèle TensorFlow?

Actuellement, je souhaite utiliser ce modèle en utilisant TensorFlow Serving. Je suis juste intéressé de savoir si l'utilisation de GPU dans le processus de diffusion a le même impact sur les performances?

Étant donné que la formation s'applique aux lots, mais que l'inférence (serveur) utilise des requêtes asynchrones, suggérez-vous d'utiliser le GPU pour diffuser un modèle en utilisant TensorFlow?

Répondre

1

Vous avez encore besoin de faire beaucoup d'opérations de tenseurs sur le graphique pour prédire quelque chose. Ainsi, le GPU fournit toujours une amélioration des performances pour l'inférence. Jetez un oeil à ce nvidia paper, ils n'ont pas testé leurs trucs sur TF, mais il est toujours pertinent:

Nos résultats montrent que les GPU offrent des performances et l'efficacité énergétique état de l'art inférence , ce qui les rend la plate-forme de choix pour tous ceux qui souhaitent déployer un réseau de neurones formés sur le terrain. En en particulier, le Titan X offre entre 5,3 et 6,7 fois plus de performances que le processeur Xeon E5 à 16 cœurs tout en atteignant 3,6 à 4,4 fois plus d'efficacité énergétique.

1

La réponse courte est oui, vous obtiendrez à peu près la même accélération pour courir sur le GPU après l'entraînement. Avec quelques qualifications mineures. Vous exécutez 2 passages sur les données en cours d'apprentissage, ce qui se passe sur le GPU, pendant l'inférence directe, vous faites moins de travail, donc plus de temps sera consacré au transfert des données vers la mémoire du GPU par rapport aux calculs qu'à l'entraînement. C'est probablement une différence mineure cependant. Et vous pouvez maintenant charger le GPU de manière asynchrone si c'est un problème (https://github.com/tensorflow/tensorflow/issues/7679). Si vous avez réellement besoin d'un GPU pour faire des inférences, cela dépend de votre charge de travail. Si votre charge de travail n'est pas trop exigeante, vous pouvez quand même utiliser la CPU, après tout, la charge de calcul est inférieure à la moitié, par échantillon, alors considérez le nombre de requêtes par seconde dont vous aurez besoin pour tester si vous surchargez votre CPU pour y parvenir. Si vous le faites, il est temps de sortir le GPU!