Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

能不能单GPU并行推理多个模型 #28733

Closed
xn1997 opened this issue Nov 19, 2020 · 13 comments
Closed

能不能单GPU并行推理多个模型 #28733

xn1997 opened this issue Nov 19, 2020 · 13 comments
Assignees
Labels
status/close 已关闭

Comments

@xn1997
Copy link

xn1997 commented Nov 19, 2020

请问能不能做到单GPU并行推理多个模型
目前在单个GPU上运行多个推理模型的速度很慢,尤其是原本比较快的模型会变得和慢模型一样慢,我是希望他们同时运行的速度和单独各自运行的速度差不多,互相速度不受影响。显存是够用的
不知道飞桨有没有这方面的解决方法
GPU并行这块不是很了解,所以不知道能不能实现,怎么实现:(

@paddle-bot-old
Copy link

您好,我们已经收到了您的问题,会安排技术人员在一天之内解答您的疑惑,请耐心等待。请您再次检查是否提供了清晰的问题描述、复现代码、环境&版本、报错信息等。同时,您也可以通过查看官网API文档常见问题历史IssueAI社区来寻求解答。祝您生活愉快~

Hi! We've received your issue and please be patient to get responded. The average response time is expected to be with in one day. Please make sure that you have posted enough message to demo your request. You may also check out the APIFAQGithub Issue and AI community to get the answer.Have a nice day!

@jiweibo
Copy link
Contributor

jiweibo commented Nov 19, 2020

这种场景都会变慢的。 可以尝试下nvidia的mps,可能会有一点收益

@zhwesky2010
Copy link
Contributor

@xn1997 您好,即使显存够用,框架的CPU调度、CPU与GPU间的数据拷贝开销都是很大的,多个任务同时执行肯定要慢一些。

@xn1997
Copy link
Author

xn1997 commented Nov 19, 2020

这种场景都会变慢的。 可以尝试下nvidia的mps,可能会有一点收益

谢谢,快的网络30FPS,慢的5FPS。同时运行前者6FPS,后者4.5FPS
我试着开启了MPS,发现慢的5FPS,快的网络直接不跑了一样变成0.1FPS,貌似GPU都被慢网络占用了一样
请问是我设置错了吗,我仅仅用nvidia-cuda-mps-control指令开启了MPS

@xn1997
Copy link
Author

xn1997 commented Nov 19, 2020

@xn1997 您好,即使显存够用,框架的CPU调度、CPU与GPU间的数据拷贝开销都是很大的,多个任务同时执行肯定要慢一些。

我其实只是想他们别慢太多,至少快网络不要慢太多,但现在是30FPS的网络被同步成了6FPS,两个网络运行速度一样了。

@xn1997
Copy link
Author

xn1997 commented Nov 19, 2020

这两个网络是在一个程序的不同线程里执行的😭️

@xn1997
Copy link
Author

xn1997 commented Nov 19, 2020

快网络开启MPS后直接0.1FPS,貌似是因为我用了tensorrt加速,慢网络没有用tensorrt速度影响不大,开启MPS后,快网络单独运行依然是巨慢,懵了,目前的思路只能是把慢网络也用tensorrt试试了,不知道效果怎么样

@zhouyuxixixi
Copy link

zhouyuxixixi commented Nov 27, 2020

我在我的电脑上使用C#调用dll的方式进行图像分类,尝试了单个GPU 的同时模型预测,感觉会有波动,但是感觉也还好吧,使用的是paddlepaddle2.0.0rc和paddleclas-dygraph和gpu预测库mkl。使用两个线程同时执行模型预测
下面是预测图片的时间。图片有可能看不到,同时预测,预测时间波动会比较大
image

@xn1997
Copy link
Author

xn1997 commented Nov 28, 2020

我在我的电脑上使用C#调用dll的方式进行图像分类,尝试了单个GPU 的同时模型预测,感觉会有波动,但是感觉也还好吧,使用的是paddlepaddle2.0.0rc和paddleclas-dygraph和gpu预测库mkl。使用两个线程同时执行模型预测
下面是预测图片的时间。图片有可能看不到,同时预测,预测时间波动会比较大
image

谢谢,请问你单独运行时,有没有哪个网络的GPU利用率达到满。
我的情况,大网络单独运行时显存占用不多,但利用率已经满了,小网络单独运行显存和利用率只占一部分。同时运行时小网络速度很慢,感觉是因为GPU利用率不足以同时分配给两个网络,就和串联执行差不多了,导致两个网络整体速度都有变慢。

@zhouyuxixixi
Copy link

我在我的电脑上使用C#调用dll的方式进行图像分类,尝试了单个GPU 的同时模型预测,感觉会有波动,但是感觉也还好吧,使用的是paddlepaddle2.0.0rc和paddleclas-dygraph和gpu预测库mkl。使用两个线程同时执行模型预测
下面是预测图片的时间。图片有可能看不到,同时预测,预测时间波动会比较大
image

谢谢,请问你单独运行时,有没有哪个网络的GPU利用率达到满。
我的情况,大网络单独运行时显存占用不多,但利用率已经满了,小网络单独运行显存和利用率只占一部分。同时运行时小网络速度很慢,感觉是因为GPU利用率不足以同时分配给两个网络,就和串联执行差不多了,导致两个网络整体速度都有变慢。

resnet18
image
resnet50
image
两个一起
image
看样子,我的应该没有,我的利用率很低

@xn1997
Copy link
Author

xn1997 commented Nov 28, 2020

image
看样子,我的应该没有,我的利用率很低

利用率可以这么低的嘛。你在运行前是对网络显存占用什么的做了设置吗,我这边一旦运行占用率就满了,网络对GPU的利用率占比可以设置吗:<,只了解tf可以限制显存占用,不清楚利用率能不能设置 : (

@zhouyuxixixi
Copy link

image
看样子,我的应该没有,我的利用率很低

利用率可以这么低的嘛。你在运行前是对网络显存占用什么的做了设置吗,我这边一旦运行占用率就满了,网络对GPU的利用率占比可以设置吗:<,只了解tf可以限制显存占用,不清楚利用率能不能设置 : (

不知道呀,我这个是图像分类,是按照PaddleClas来做的,先在AISTUDIO云端学习,然后在windows部署,使用C#调用dll的方式,所用的方法也都是参考文档的,只不过最后修改了paddleclas自带的clas.cpp的C++代码,让他只需要加载一次模型,只需要初始化一次GPU,你可以看看预测代码,是不是每次都加载了模型,如果每次都加载模型的话,明显的表现就是预测时间太长

@xn1997
Copy link
Author

xn1997 commented Nov 28, 2020

不知道呀,我这个是图像分类,是按照PaddleClas来做的,先在AISTUDIO云端学习,然后在windows部署,使用C#调用dll的方式,所用的方法也都是参考文档的,只不过最后修改了paddleclas自带的clas.cpp的C++代码,让他只需要加载一次模型,只需要初始化一次GPU,你可以看看预测代码,是不是每次都加载了模型,如果每次都加载模型的话,明显的表现就是预测时间太长

好的,谢谢,我再查查原因

@paddle-bot paddle-bot bot added the status/close 已关闭 label Jan 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status/close 已关闭
Projects
None yet
Development

No branches or pull requests

4 participants