Paddle.Tensor和PaddleInferTensor的困扰
收藏
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
收藏
请登录后评论
忘了说,是python调用,C++实现提供了mutable_data()和data()方法,用于设置和读取数据,但python绑定并未公开此方法
你这个太专业了,直接去飞桨github提issue