首页 Paddle Inference 帖子详情
Paddle.Tensor和PaddleInferTensor的困扰
收藏
快速回复
Paddle Inference 问答推理 178 2
Paddle.Tensor和PaddleInferTensor的困扰
收藏
快速回复
Paddle Inference 问答推理 178 2

paddle版本2.6.1。

我有一个目标,在推理引擎中的预处理和后处理中使用GPU加速,预处理数据已经在GPU内存中,然后交给推理引擎执行预测,输出结果仍然保留在GPU中继续后处理。

当前完成了预处理部分,把数据tensor通过from_dlpack方式转换成Paddle.Tensor,然后通过paddle.inference.Tensor.share_external_data方法转换成PaddleInferTensor,推理引擎能顺利运行并获得输出数据(get_output_handle)。问题就出在下一步,输出数据仍然是PaddleInferTensor,但是无法转换回Paddle.Tensor,而to_dlpack需要的是Paddle.Tensor类型。阅读了源代码,除了使用copy_to_cpu把数据拉回CPU内存,似乎没有别的办法获取数据。

请问各位技术大拿,有什么办法解决这个问题?包括但不限于:

* 把PaddleInferTensor转换成Paddle.Tensor

* 获取PaddleInferTensor的C指针

* 提供类似copy_to_gpu或share_to_gpu等类似的方法

其实目的就一个,拿到GPU中的数据,自己修改C++源码编译的方法就不要推荐了,底层牵扯太多,遇到升级就歇菜了。

0
收藏
回复
全部评论(2)
时间顺序
j
jameshoooo
#2 回复于2024-06

忘了说,是python调用,C++实现提供了mutable_data()和data()方法,用于设置和读取数据,但python绑定并未公开此方法

0
回复
老狼Max
#3 回复于2024-06

你这个太专业了,直接去飞桨github提issue

0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户