C++部署 pytorch 模型问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
allegory
V2EX    程序员

C++部署 pytorch 模型问题

  allegory 2024-04-10 18:23:45 +08:00 1665 次点击
这是一个创建于 578 天前的主题,其中的信息可能已经有所发展或是发生改变。

目前采用的是使用 libtorch 加载 TorchScript 文件,然后 forward(input)完整这个过程,但问题来了:

  1. torch script 文件是使用 python 代码将 pt 文件转换过来的,我已经在代码中指定了 cuda 设备编号为 4 ,部署上去后也在 c++代码中把所有的 tensor 、model 全部转移到 cuda:4 上去了,运行的时候还是会报错说有 hidden tensor 在 cuda:0 上,搞不懂
  2. 我有 8 个 CUDA 设备,怎么样将它们全部利用起来跑我的数据?(又如何解决设备不一致的问题?)
  3. 如何采用多线程跑 CUDA 任务

其实对于上面的问题不一定,得到答案不是最重要的,重要的是有没有前辈有这方面经验能多指教一下呢,torch 官方这方面的文档基本等于没有。(翻了又翻,文档全部是一些函数签名,没啥价值)

前辈们都是哪儿去找这方面的参考资料,可以分享一些吗,十分感谢

7 条回复    2024-09-26 16:49:17 +08:00
allegory
    1
allegory  
OP
   2024-04-10 18:45:59 +08:00
NVIDIA Driver Version: 545.23.08
CUDA Version: 12.3.107
PyTorch Version: 2.2.2+cu121
cuDNN Version: 8902
显卡驱动 环境啥的应该没问题
ysc3839
    2
ysc3839  
   2024-04-10 21:25:16 +08:00 via Android   1
TorchScript 导出的不是只有 model 吗?怎么设置设备编号的?
正常应该是使用 torch::Device 来设置的吧,torch::jit::load 之后要 .to(device)
rpWQTyfsAjMCKgPA
    3
rpWQTyfsAjMCKgPA  
   2024-04-11 00:37:21 +08:00 via iPhone   1
GPU device 跟模型导出没有关系,跟 inference 时的设定有关。模型导出显然应该是设备无关的,你导出模型时写个 cuda:4 ,那模型拿到只有一个 GPU 的机器上难道就不能跑了?
Muniesa
    4
Muniesa  
   2024-04-11 00:59:55 +08:00 via Android   1
第一个问题,不要在模型类代码中指定 cuda 设备,正确的做法是加载完模型后,使用 model.to("cuda:4")来指定。
2 和 3 建议用 triton inference server ,不需要你来处理多卡,当然你得先把代码按上面的改了。
WoodsGao
    5
WoodsGao  
   2024-04-11 15:20:48 +08:00   1
导出模型之前先 model.to("cpu")
load 的时候几张卡就 load 几回,每个 model 分别 to(每个 device)
allegory
    6
allegory  
OP
   2024-04-12 00:19:21 +08:00 via iPhone
感谢评论区各位大哥,不一一艾特了。
目前问题已经基本得到解决,设备不一致的问题主要是导出的时候用了 trace 而加载使用的时候用了 script ;至于后面两个问题,我也得到了解决,就是将数据多 to(device)几次放到了不同的 gpu 上。
crazyliu
    7
crazyliu  
   2024-09-26 16:49:17 +08:00   1
看你原来那个贴子删掉了,只能在这里回复你了,需要内推可以看看我这个贴子 t/1073632
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2678 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 24ms UTC 14:34 PVG 22:34 LAX 06:34 JFK 09:34
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86