专栏算法工具链运行官方的C++推理代码例子报错

运行官方的C++推理代码例子报错

已解决
晚风欢迎使用2023-01-10
103
14

用户您好,请详细描述您所遇到的问题。

1.硬件获取渠道:公司

2.当前系统镜像版本:Ubuntu 20.04 Desktop操作系统

3.当前天工开物版本:2.4.2

4.问题定位:

问题1:

在开发机编译完成后,板端运行报错:

root@ubuntu:/app# ai_inference/temp/user_app

[BPU_PLAT]BPU Platform Version(1.3.1)!

[HBRT] set log level as 0. version = 3.14.5

[DNN] Runtime version = 1.9.7_(3.14.5 HBRT)

malloc(): invalid size (unsorted)

Aborted

问题2:

在开发机调试代码,报错提示找不到头文件:

/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++ -fdiagnostics-color=always -g /open_explorer/ddk/samples/ai_toolchain/horizon_runtime_sample/code/10_run_c/main.cc -o /open_explorer/ddk/samples/ai_toolchain/horizon_runtime_sample/code/10_run_c/main -I /root/.horizon/ddk/xj3_aarch64/dnn/include/dnn/

/open_explorer/ddk/samples/ai_toolchain/horizon_runtime_sample/code/10_run_c/main.cc:3:24: fatal error: dnn/hb_dnn.h: No such file or directory

#include "dnn/hb_dnn.h"

5.开发的demo/案例:

例子地址

https://developer.horizon.ai/api/v1/fileData/doc/ddk_doc/navigation/ai_toolchain/docs_cn/horizon_ai_toolchain_user_guide/application_development.html#engineer-implementation

6.需要提供的解决方案:

解决报错问题,完整运行官方demo

算法工具链
评论4
0/1000
  • 费小财
    Lv.5

    您好,

    从错误看实在好不到头文件,你看看有没有头文件的

    2023-01-11
    0
    10
    • 晚风欢迎使用回复费小财:

      有的

      [root@21115b5d0ea5 10_run_c]# ls ~/.horizon/ddk/xj3_aarch64/dnn/include/dnn/

      hb_dnn_ext.h hb_dnn.h hb_dnn_status.h hb_sys.h plugin

      2023-01-11
      0
    • 费小财回复晚风欢迎使用:

      那就是编译的头文件的目录引用不对了

      你们的示例与官方的 改动了啥:?

      2023-01-11
      0
    • 晚风欢迎使用回复费小财:

      问题2解决了,我重新定位了一下问题1:

      报错发生在55行:hbSysAllocCachedMem(&mem, out_aligned_size);

      报错信息:

      [BPU_PLAT]BPU Platform Version(1.3.1)!

      [HBRT] set log level as 0. version = 3.14.5

      [DNN] Runtime version = 1.9.7_(3.14.5 HBRT)

      malloc(): invalid size (unsorted)

      2023-01-11
      0
    • 费小财回复晚风欢迎使用:

      你检查过size设置的是多少吗,看上去是size的尺寸不支持的,aligned的size是4k还是4000的

      2023-01-11
      0
    • 晚风欢迎使用回复费小财:
      这是官方示例我没动,左边有提示out_aligned_size是4000,我尝试把他改成1000仍然报错。
      mobilenet的输出是1*1000*1*1的,输入是224 * 224 * 3,

      以下分别是input和output的信息:

      2023-01-11
      0
    • 费小财回复晚风欢迎使用:

      有完整的日志信息吗?或者出错的日志的吗

      2023-01-11
      0
    • 晚风欢迎使用回复费小财:

      这就是控制台的全部输出信息了,我目前只是运行了一下main.cpp单文件,完整的日志信息从哪获取

      root@ubuntu:/app/ai_inference/10_run_c# ./user_app

      [BPU_PLAT]BPU Platform Version(1.3.1)!

      [HBRT] set log level as 0. version = 3.14.5

      [DNN] Runtime version = 1.9.7_(3.14.5 HBRT)

      malloc(): invalid size (unsorted)

      Aborted

      2023-01-11
      0
    • 费小财回复晚风欢迎使用:

      aborted应该会有coredump的,你可以找下/userdata/log/coredump找下对应的文件

      另外这类错误基本就是尺寸不对,buffer地址申请的尺寸跟你填充的数据不对导致的越界错误

      可以找找对应点的buffer是否存在类似的问题

      2023-01-11
      0
    • 晚风欢迎使用回复费小财:

      userdata下没有log目录:

      root@ubuntu:/app/ai_inference/10_run_c# cat /userdata/log/coredump

      cat: /userdata/log/coredump: No such file or directory

      2023-01-11
      0
    • 费小财回复晚风欢迎使用:

      coredump也只是帮忙定位到具体的行数

      这个函数内部错误能知道是啥原因吗?就2给参数,感觉就是第二个参数有点问题的

      2023-01-11
      0
  • 新手村
    Lv.4

    关于问题1,有可能是版本不匹配导致的,你的开发板的版本是多少?麻烦用cat /etc/version看一下

    2023-01-11
    0
    0
  • 新手村
    Lv.4

    关于问题2,开发机调试环境建议用docker的方式搭建,你这边是docker搭建的还是本地直接搭建的?

    2023-01-11
    0
    0
  • 颜值即正义
    Lv.2
    2023-04-24
    0
    0