bilibili / ailab

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

请问开发者有没有考虑移植到tensorrt上面来加速推理。

NangInShell opened this issue · comments

github上有部分开发者做了相关尝试,但目前没有看到有较完善的demo。所以想问问开发者有没有这个打算。

我花了很长时间终于调通了win和debian上的trt视频推理pipeline
等7月或8月把转换和推理代码分享一下
但是,配环境…就看你们的造化了
换个系统,换个trt版本,换个cuda版本,换个GPU,可能都不通

github上有部分开发者做了相关尝试,但目前没有看到有较完善的demo。所以想问问开发者有没有这个打算。

@manang666
我来劝退楼主了
同样的模型,一个nn.Module,一个nn.Module转换后的TRTModule,同样是FP16,效果也不一样
图1原图,图2TRT,图3pytorch。肉眼可见TRT版本更糊了,四周一圈还有暗边。测试模型:pro2x-conservative
TRT代码不会公开了,以后我们的工作流也会删除TRT相关的代码,不会为了30%的加速牺牲效果。

NarutoS2_CUGAN_88+_src
opt-trt3
opt-torch

T4和V100的TRT复现出了同样的结果

T4和V100的TRT复现出了同样的结果

确实不能牺牲质量换取速度,感谢开发者的回复,期待后续其他方面的发展。

这问题很可能和 se block 里逐层均值操作在 fp16 下越界有关,onnxruntime cuda 有同样的问题,可以在 fp32 下单独算这个算子

这问题很可能和 se block 里逐层均值操作在 fp16 下越界有关,onnxruntime cuda 有同样的问题,可以在 fp32 下单独算这个算子

@WolframRhodium 和我的猜想一致,因为经验中se层的结果影响模糊、锐化程度。最理想的办法是均值前转fp32,均值后转回fp16(pytorch原版我是这么写的,但是如果统一在fp16,pytorch版本一样没有问题),但是这样会非常麻烦,有4个se层所以整体得拆成5个子模型,外面还有套一堆整合的推理代码。(话说onnx支持某些层指定FP32其他层FP16吗)

onnx 支持混合 fp16 和 fp32,不过有些后端不一定支持……(比如从 onnx 走 trt 不支持非 fp32