问题现象描述
从日志存放路径(默认为“$HOME/ascend/log”)下获取运行应用程序的日志,日志中的报错示例如下:
device:0 chn 0, input buffer is invalid, make sure it has been allocated with hi_mpi_dvpp_malloc or acldvppMalloc.
device:0 chn 0, output buffer is invalid, make sure it has been allocated with hi_mpi_dvpp_malloc or acldvppMalloc.
原因分析
根据日志提示,是因为没有使用指定的接口申请内存,导致内存地址校验出错。
由于DVPP媒体数据处理功能对存放输入、输出数据的内存有更高的要求(例如,内存首地址128字节对齐),因此需调用专用的内存申请接口,如下:
- 调用媒体数据处理V1版本的接口对图片进行抠图、缩放等操作时,调用acldvppMalloc接口申请内存。
- 调用媒体数据处理V2版本的接口对图片进行抠图、缩放等操作时,调用hi_mpi_dvpp_malloc接口申请内存。
解决措施
检查代码,确认在DVPP媒

文章讲述了在处理DVPP媒体数据时遇到的设备错误,即输入和输出缓冲区无效,原因在于未使用指定接口如acldvppMalloc或hi_mpi_dvpp_malloc申请内存。解决方案是检查代码并确保在DVPP功能中正确使用这些专用接口。同时,建议将DVPP处理的输出直接用于模型推理以减少拷贝,提高性能,并且对于其他非DVPP功能,推荐使用aclrtMalloc接口申请内存,以避免占用DVPP的专用地址空间。
最低0.47元/天 解锁文章
660

被折叠的 条评论
为什么被折叠?



