我正在尝试在同一GPU上运行多个并行推理。为此,我在不同的过程中多次加载了图形,因为我处于实时系统中,因此无法批量输入。 仅一名工作人员的平均推理时间约为0.02秒,而多名工作人员的平均推理时间则大于0.03,与过程数成正比增长。我将每个进程的GPU内存分数设置为0.02,并允许增长为false,超过此限制的任何值都不会提高推理速度。
从理论上讲,如果GPU能够并行化,则该过程应该是工作者数量的快多少倍,或者至少是紧密的。不幸的是,在我增加工人数量时,推理时间变慢了。分割数据集的速度提高了1.5-2倍,整体速度得到了提升,但平均推理时间仍然较慢。
GPU或CPU没有任何硬件限制或瓶颈,如下图https://imgur.com/a/H8cmrfc
所示。可以在以下位置查看基准: https://imgur.com/a/K5zHK0Z
现在,我在想也许CUDA不允许并行化或我的代码有问题。任何人都知道可能是什么问题吗?
Os平台:Linux 16.04 从源码安装Tensorflow C ++ Tensorflow版本1.12 CUDA / cudnn版本9.2 / 7.1 GPU Nvidia GeForce GTX 1080 Ti