7,916
社区成员
发帖
与我相关
我的任务
分享QNN 中使用自定义算子 HTP Op 时,算子编译通过但运行时报 VTCM 相关错误,一般怎么处理?
VTCM 错误通常指向内存分配、栈空间、临时缓冲区或算子访问越界。先确认自定义算子声明的输入、输出和临时张量大小是否与实际计算一致;算子接口中 shape、rank、data type 不匹配,很容易在运行时触发内存错误。其次检查算子代码是否存在越界读写、未初始化变量、栈溢出或动态内存申请不当。HTP 自定义算子通常对内存布局要求更严格,建议优先使用 QNN 提供的内存描述符和工具链宏来声明缓冲区。可参考下面的检查清单:
核对算子接口中的张量数量与实际访问数量;
核对输入输出 shape、stride、data type;
减少栈上大数组,优先使用传入的临时缓冲区;
开启 HTP 详细日志,定位是 VTCM 分配失败还是访问异常。 参考文档:高通 HTP Custom Op 开发者手册与 VTCM 使用说明。