GPU并行推理的一个疑问

GPU是并行方面的行家,可是我发现当我利用libtorch,一个GPU同时运行多个模型进行推理时,两个模型的耗时都有大幅度的增加,这是很令人疑惑的问题。

按照CPU线程同步的思路,如果我开启多个线程进行工作,相比于单个线程的工作,其耗时是轻微增加或不增加的。

所以我的内心产生了一个疑惑,难道GPU不支持多个模型并行推理,只支持串行推理?又或者libtorch这个库本身不支持并行推理?

 

随后,我上网查找了一番:

能不能单GPU并行推理多个模型 · Issue #28733 · PaddlePaddle/Paddle · GitHub

在同一GPU上使用多个并行进程在TysFraseC++中较慢的推理时间_三行代码 (sov5.cn)

果然有人也遇到了类似的问题,结果显示,GPU推理多个模型,其耗时确实大大增加,但仍然不能说明GPU不支持并行推理。

 

GPU必然可以支持并行,那么可能是cuda的问题。那么能否做一些实验来证明,cuda确实不支持并行推理呢?

 我是如此设置实验的,该实验的实验组是一个阻塞形式的(串行)运行两个相同模型的程序,对照组则是开两个线程并行运行两个相同模型的程序,运行十次,然后计算耗时。

如果cuda不支持并行推理,那么两个程序的运行时间应当是一致的,或者说是很相近的。

实验组结果:

对照组结果:

 

end1和end2记录的是两个模型运行结束的时间。

结果显示,对照组耗时确实明显低于实验组,这证明cuda支持并行推理!但是并行效率比较低下,只比串行推理略强

posted @   澳大利亚树袋熊  阅读(1320)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示