我使用GPU(1080 ti)训练了一个神经网络。 GPU上的训练速度远远优于使用CPU。
目前,我想使用TensorFlow服务来提供此模型。我只是想知道在服务过程中使用GPU是否会对性能产生同样的影响?
由于培训适用于批次但是推理(服务)使用异步请求,您是否建议使用GPU在使用TensorFlow服务的模型中提供服务?
答案 0 :(得分:2)
简短的回答是肯定的,训练后你在GPU上运行的速度大致相同。有一些小资格。
你在训练中对数据进行了2次传递,这一切都发生在GPU上,在前馈推断期间你做的工作量较少,因此相对于计算而言,将数据花费在GPU内存上的时间要多于在培训中。这可能是一个微小的差异。如果这是一个问题(https://github.com/tensorflow/tensorflow/issues/7679),你现在可以异步加载GPU。
您是否真的需要GPU进行推断取决于您的工作量。如果您的工作负载不是过于苛刻,那么无论如何都可能无法使用CPU,毕竟每个样本的计算工作量不到一半,因此请考虑您需要服务的每秒请求数并测试是否你重载你的CPU来实现这一目标。如果你这样做,那就赶快把GPU拿出来吧!
答案 1 :(得分:2)
您仍然需要在图表上执行大量张量操作来预测某些事情。因此GPU仍然可以为推理提供性能改进。看看这个nvidia paper,他们没有在TF上测试他们的东西,但它仍然是相关的:
我们的结果表明GPU提供了最先进的推理 性能和能效,使其成为首选平台 对于任何想要在现场部署训练有素的神经网络的人。在 特别是,Titan X的输出高出5.3到6.7倍 性能比16核Xeon E5 CPU高出3.6到4.4 提高能源效率。