Paddle 同样的模型(静态图)在cpu下第一次预测很慢(10秒以上)

34gzjxbg  于 2022-11-19  发布在  其他
关注(0)|答案(8)|浏览(437)

代码段:
with paddle.no_grad():
print('speedyspeech_inference begin', datetime.datetime.now())
mel = speedyspeech_inference(part_phone_ids, part_tone_ids)
print('pwg_inference begin', datetime.datetime.now())
temp_wav = pwg_inference(mel)
print('pwg_inference end', datetime.datetime.now())

输出:
phone_ids [Tensor(shape=[33], dtype=int64, place=CPUPlace, stop_gradient=True,
[47, 3 , 49, 51, 58, 73, 5 , 48, 26, 23, 15, 65, 24, 14, 15, 46, 38, 46, 24, 11, 18, 47, 73, 62, 56, 51, 87, 3 , 49, 16, 46, 32, 62])]
tone_ids [Tensor(shape=[33], dtype=int64, place=CPUPlace, stop_gradient=True,
[0, 3, 0, 4, 0, 4, 1, 0, 2, 0, 2, 0, 3, 0, 5, 0, 1, 0, 4, 0, 1, 0, 4, 0, 0, 4, 0, 4, 0, 2, 0, 2, 0])]
speedyspeech_inference begin 2021-10-28 15:23:37.029224
pwg_inference begin 2021-10-28 15:23:37.185222
pwg_inference end 2021-10-28 15:23:48.643371

001 done!
phone_ids [Tensor(shape=[4], dtype=int64, place=CPUPlace, stop_gradient=True,
[50, 24, 23, 8 ])]
tone_ids [Tensor(shape=[4], dtype=int64, place=CPUPlace, stop_gradient=True,
[0, 2, 0, 3])]
speedyspeech_inference begin 2021-10-28 15:23:48.650615
pwg_inference begin 2021-10-28 15:23:48.676380
pwg_inference end 2021-10-28 15:23:50.339365

002 done!

以上代码是在 aistudio 里面执行的:
CPU 2
RAM 8GB
磁盘 100GB

同样的模型在我电脑(cpu)使用 paddle_inference_c.dll 调用预测,第一次都要8秒左右,第二次就1秒
应该是cpu版本的代码问题,gpu的机器上就没问题

这是我在自己电脑上执行打印出来的性能分析图片
模型使用的
Speedyspeech with CSMSC 模型 + parallel wavegan model
https://github.com/PaddlePaddle/Parakeet/tree/develop/examples/speedyspeech/baker
https://paddlespeech.bj.bcebos.com/Parakeet/pwg_baker_ckpt_0.4.zip
使用的 pwg_baker_ckpt_0.4 转换为静态图
speedyspeech 模型都没问题, parallel wavegan 就很慢

unhi4e5o

unhi4e5o1#

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

Hi! We've received your issue and please be patient to get responded. We will arrange technicians to answer your questions as soon as possible. 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!

kulphzqa

kulphzqa2#

感谢反馈,正常情况下第一次调用预测接口时会有一些初始化流程,后续调用无初始化流程会快很多,这种情况是符合预期的。如果不符合这样的情况请提供详细对比条件和期望的结果以进一步分析。

jvidinwx

jvidinwx3#

感谢反馈,正常情况下第一次调用预测接口时会有一些初始化流程,后续调用无初始化流程会快很多,这种情况是符合预期的。如果不符合这样的情况请提供详细对比条件和期望的结果以进一步分析。

10多秒也是符合预期的哦?

kmpatx3s

kmpatx3s4#

感谢反馈,正常情况下第一次调用预测接口时会有一些初始化流程,后续调用无初始化流程会快很多,这种情况是符合预期的。如果不符合这样的情况请提供详细对比条件和期望的结果以进一步分析。

10多秒也是符合预期的哦?

符合预期的,具体可能还会随模型不同、机器资源空闲有差异。
具体使用过程中建议使用预加载的方式优化正常流程中的时间占用。

fnx2tebb

fnx2tebb5#

@kuizhiqing 你说的预加载是指?

6rvt4ljy

6rvt4ljy6#

@outman2008
@kuizhiqing 你说的预加载是指?

如果在业务流程中,可以考虑并行地加载模型,预先调用一次,相当于避免冷启动过程。

mum43rcc

mum43rcc7#

你这是一个解决办法,但是最好还是能排查下是哪里的问题,
我提供的信息很全,还是希望尽量能把原因找到优化掉
在AI Studio 上同样的代码GPU秒过,CPU第一次执行等10多秒,第二次就很快了,
你看性能分析图主要是conv2d这一块耗时比较多

piah890a

piah890a8#

@outman2008 请问如何将官网提供的pwg_baker_ckpt_0.4 转换为静态图,能不能提供一下您的转换代码?

相关问题