专栏算法工具链FAQ EasyDNN

FAQ EasyDNN

DR_KAN2023-09-26
68
1

模型推理Timeout超时的原因有哪些?

  1. 超时时间设置太短

  2. BPU负载很高,模型推理

  3. 底层丢中断,无法获取推理中断返回,升级系统软件 libcnn_intf.so 库

  4. 应用代码存在内存泄漏:系统内存不足的情况下,分配内存会很慢,导致模型推理的过程超时

  5. vim /userdata/log/kernel/message


CPU占用率很高是什么原因?

  1. 模型有大量cpu算子,导致cpu占用高

  2. 模型hbm段中有cpu查表算子,导致cpu占用高

建议:火焰图分析一下具体哪个模块占用高


使用x3派推理时遇到问题,can not open core

不要使用sunrise账号,使用root账户,sunrise账号没权限打开bpu

此外,如有以下log,可以忽略,或者升级easydnn版本(由于板子没有keros芯片引起)


模型加载失败

  1. 模型架构与BSP架构不匹配

  2. BSP镜像kernel文件异常,请联系BSP团队修复BPU驱动


如何验证core 是否上电?

板端执行如下命令,如果能获取得到值,说明上电了。dnn默认在初始化阶段,对两个和都进行上电。

devmem 0x46020000 // core 1

devmem 0x46820000 // core 2


alignedShape VS validShape?

alignedShape标记了真实用到的内存区域,

  1. 对于case1,真实用到的内存区域就是 1x3x224x224,因为要考虑padding的数据

  2. 对于case2,真实用到的内存区域就是 1x3x223x223,后面多出来的内存也用不到,用户也可以分配1x3x223x223内存来存储用户数据

因此,用户在用接口:hbDNNGetInputTensorProperties,获取得到tensor properties的时候,对于case1无需做额外动作;对于case2,需要用户自己改一下alignedShape的信息,用于解释这块内存。

暂时无法在飞书文档外展示此内容


使用工具perf时,在某帧卡住,没有模型数据显示的问题

原因:底层 cnn_core_wait_fc_done接口未正确返回,导致一直空转。已知bug,无法修复。

解决办法:可以开两个线程及以上解决。


release时候 出现heap-use-after-free

触发场景:重复load了同一个模型,然后卸载(1.17.3修复)


如何查看板子类型:BAYES1、BAYES2?

cat /proc/cmdline

BAYES2:hobot.socver=5.2.0

BAYES1:hobot.socver=5.1.0


模型推理crash是什么原因?

可能是 tensor 数据地址非法。

算法工具链
官方教程
评论1
0/1000
  • 默认25184
    Lv.1

    模型推理 DNN_WkCor0_5 线程偶现一次 crash,可能是什么原因?由于系统Selinux权限问题,dumpstack未保存下来,仅能知道上述线程crash。所用的是1.1.77的libdnn.so

    2025-03-19
    0
    0