子虚乌有 发表于 2022-8-26 09:50

请教下深度学习小问题

本帖最后由 子虚乌有 于 2022-8-26 10:20 编辑

我有很多个小的深度学习模型给项目提供服务(还是tf 1.x的古老模型),
需求类似在线的即时响应,接收客户端通过web发来的请求数据,然后判断下该用哪个模型,推算一下再把结果返回给客户端。
模型都很小几十m 100m不等,几十个吧。请求是并发的,峰值也算是几十个并发吧
响应时间要求比较高。所以要尽量节省模型计算的时间。
服务器就是个普通的8c 32g志强服务器,gpu是个3090ti(还没发钱买呢,计划中)

想请教一下。
首先用cpu还是gpu?
单个我知道肯定gpu快,但是多个小模型
gpu的话能支持并行多个模型的计算吗?多线程还是多进程?


tsubasa9 发表于 2022-8-26 10:00

判断用哪个模型是什么步骤
是根据模型运行结果判断么
如果需要同时多个模型输出,为啥不把所有模型都放一起
一般并行用模型不推荐,因为一个模型可能就把所有cuda核心用完了

子虚乌有 发表于 2022-8-26 10:05

tsubasa9 发表于 2022-8-26 10:00
判断用哪个模型是什么步骤
是根据模型运行结果判断么
如果需要同时多个模型输出,为啥不把所有模型都放一起 ...

目前没实现呢。初步想法是不同的rest endpointl对应不同的模型。
客户端就发http post就行了。

咋把一堆不想干的模型弄成一个?感觉很难

tsubasa9 发表于 2022-8-26 10:08

那你判断这一步就是cpu了,再根据判断结果把模型算一遍不就行了
为啥需要同时计算多个模型结果

子虚乌有 发表于 2022-8-26 10:15

tsubasa9 发表于 2022-8-26 10:08
那你判断这一步就是cpu了,再根据判断结果把模型算一遍不就行了
为啥需要同时计算多个模型结果 ...

慢。。。目前就是cpu单线程,原来也够用。现在用的人多了。
一个要10秒呢。人多排几分钟很正常。
10秒20秒我还能异步整个进度条。
几分钟肯定就有人找我了。

a9okalypse 发表于 2022-8-26 11:00

我用torch.distributed跑过16个模型ensemble,每张卡同时跑2个应该是可以的,肯定比cpu快

noahhhh 发表于 2022-8-26 11:16

要专业卡?游戏卡阉割了并行的特性

—— 来自 S1Fun

a9okalypse 发表于 2022-8-26 11:18

noahhhh 发表于 2022-8-26 11:16
要专业卡?游戏卡阉割了并行的特性

—— 来自 S1Fun

啊这,有这个可能,我是租的a100

千本blur 发表于 2022-8-26 11:28

本帖最后由 千本blur 于 2022-8-26 11:32 编辑

你首先应该把这些模型进行离线部署,用onnx喂给tensorrt。

进一步提升性能的话一个是测一下perf把CPU用起来,觉得自己行的话还可以看看MM1模型里有没有现成能套的公式

游戏卡跑深度学习太冤种了,还不如拿来挖矿呢,高低整块A30吧。


子虚乌有 发表于 2022-8-26 11:32

千本blur 发表于 2022-8-26 11:28
你首先应该把这些模型进行离线部署,用onnx喂给tensorrt。

进一步提升性能的话一个是测一下perf把CPU用起 ...

太高端了。我得好好消化下,每个术语都不懂

qratosone 发表于 2022-8-26 12:43

corenel 发表于 2022-8-26 13:22

不想转换模型到ONNX或者TensorRT的话,可以考虑LS推荐的TensorFlow Serving,或者NVIDIA自家的Triton Inference Server来负责调度

R.I.P 发表于 2022-8-26 13:30

响应时间要求具体多少,如果不是很严格其实直接queue起来跑就完了

3090Ti跑跑DL也不差的。model常驻显存的话IO基本就只有新来的input了,看你说的模型大小和数量,3090ti单卡应该肯定能放下

191634 发表于 2022-8-26 13:31

千本blur 发表于 2022-8-26 11:28
你首先应该把这些模型进行离线部署,用onnx喂给tensorrt。

进一步提升性能的话一个是测一下perf把CPU用起 ...

穷逼炼丹佬正拿着3080干活

191634 发表于 2022-8-26 13:33

本帖最后由 191634 于 2022-8-26 15:41 编辑

不过为啥要90ti,显存我记得90和90ti都是24g,差的那点性能该跑不动还是跑不动。TensorRT能提升运行效率,但是我记得TensorFlow已经集成了TensorRT,没必要靠ONNX转换吧,又不是detectron2之类的。可能老版本没有?

子虚乌有 发表于 2022-8-26 14:43

191634 发表于 2022-8-26 13:33
不过为啥要90ti,显存我记得90和90ti都是24g,差的那点性能该跑不动还是跑不动。TensorRT能提升运行效率, ...

显卡只是计划申请的,其实现在毛都没有。

模型本身一个50m到100m,20个总共也就1个多g不到2g
每次客户端进来的数据也就10几m吧,转换成矩阵我不知道估计也差不太多。

cpu算一个模型是10秒,gpu我刚刚借同事的机器试了试算一次是0.7秒的样子。
但是单进程反复load模型反复计算我印象中是越算越慢的。

子虚乌有 发表于 2022-8-26 14:46

R.I.P 发表于 2022-8-26 13:30
响应时间要求具体多少,如果不是很严格其实直接queue起来跑就完了

3090Ti跑跑DL也不差的。model常驻显存的 ...

肯定能放下但是咋放呀。就是
for 循环
   modelList.Append(load_model(modelFile))
就行了?

大沢佑香 发表于 2022-8-26 16:02

tensorRT正解
v100/a100请

子虚乌有 发表于 2022-8-27 09:35

本帖最后由 子虚乌有 于 2022-8-27 18:30 编辑

基本搞定了,没用啥高大上的技术。就是普通的多线程
页: [1]
查看完整版本: 请教下深度学习小问题