如何减少GPU推理时间并提高其利用率?

时间:2019-12-06 06:13:42

标签: python tensorflow gpu nvidia

我们使用TensorFlow模型动物园的Faster RCNN对1280 * 720 RGB图像进行了推断,对COCO数据集进行了训练,并得到了一些结果

  • 测试案例1:

    使用tf.Session(graph=tf.Graph())

    创建了一个tf会话
      

    批处理大小= 4,GPU使用率= 100%(默认)

         

    推断4张图像所需的时间= 0.32秒

  • 测试案例2:

      

    然后我们使用gpu_options将每个TF会话的GPU使用率限制为一小部分

    gpu_options = tf.GPUOptions(per_process_gpu_memory_fraction=0.40) tf.Session(graph=tf.Graph(), config=tf.ConfigProto(gpu_options=gpu_options))

      

    对于批次大小为2的产品,推理时间为0.16秒,这是可以理解的,因为这是线性的。

  • 测试案例3:

    将2个推理实例作为两个不同的python进程。在这里,两个批次的大小均为2。

    推理速度大大降低,最终值为0.32秒,与一个进程在批处理大小为4的情况下进行推理的情况相同。

      

    批处理大小= 2,GPU使用率= 40%,进程= 2

         

    花费的时间= 0.32秒

因此,在案例1和案例3中,花费的时间是相同的。

Q.1是否有任何方法可以减少花费的时间?

Q.2瓶颈在哪里?同样在第一种情况下,似乎并没有利用整个GPU内存。因此,我们曾认为,如果将推理分为两部分,则可以更有效地利用资源。我们所了解的哪里出问题了?

0 个答案:

没有答案