专栏算法工具链使用J6M bev推理卡死问题

使用J6M bev推理卡死问题

已解决
杨士杰2025-08-20
83
11

使用板卡 

root@hobot:~# hb_version
board name:
J6M_SIP_Matrix_V1.1

release version:
@24cc136f9475 release 20250330-191206

hsm version:
Hsm V10.0.1(18b5f76f),Build:19:25:10,Dec 10 2024

sbl version:
SBL Build time = 12/11/2024_16:53:35
SBL Commoit Info = 19525ed 2024-12-10 20:57:15

ddr version:
ddrc_sw_v:1.0.0 Dec 6 2024 - 18:27:21 08e643b clean
ddrp_sw_v:1.0.0 Mar 30 2025 - 18:47:26 5ea78b30f clean

mcu version:
MCU Board type = Debugunknown board
MCU Build time = 03/28/2025_21:38:04
MCU Commoit Info =

spl version:
U-Boot SPL 2022.04 (Mar 30 2025 - 18:47:27 +0800)

bl31 version:
v2.8(release):LNX-PL4.0-WB-20241015-8-gfd2940309, Built : 12:39:59, Dec 11 2024

optee version:
optee revision 3.19 (5ea78b30)

uboot version:
U-Boot 2022.04 (Mar 30 2025 - 18:47:27 +0800)

linux version:
Linux version 6.1.112-rt43 (zd@24cc136f9475) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205, GNU ld (Arm GNU Toolchain 12.2.Rel1 (Build arm-12.24)) 2.39.0.20221210) #1 SMP PREEMPT_RT Sun Mar 30 19:09:41 CST 2025 tztek_version: [B24CF85J6MD_A2_MA_250327_4.00.00_Release]

bpu version:
0.0.0

vdsp version:
version =
compile_time =
git_hash_id =

 

现象,在实车运行过程中偶发bev模型推理卡死,

正常耗时是25ms作用,中间偶发一帧耗时1.2s 然后卡死

 

推理代码这样写的



    HB_CHECK_SUCCESS(
        hbDNNInferV2(&d->task_handle_, ctx.output_tensors[0].data(),
                     ctx.input_tensors.data(), ctx.dnn_handle),
        FMT_STRING("[{}] Cannot do inference"), inferer_name());

 

    // submit task

    hbUCPSchedParam ctrl_param;
    HB_UCP_INITIALIZE_SCHED_PARAM(&ctrl_param);
    ctrl_param.backend = HB_UCP_BPU_CORE_ANY;
    HB_CHECK_SUCCESS(hbUCPSubmitTask(d->task_handle_, &ctrl_param),
                     FMT_STRING("[{}] Cannot submit task done"),
                     inferer_name());
    HB_CHECK_SUCCESS(hbUCPWaitTaskDone(d->task_handle_, 0),
                     FMT_STRING("[{}] Cannot wait task done"), inferer_name());


    HB_CHECK_SUCCESS(hbUCPReleaseTask(d->task_handle_),
                     FMT_STRING("[{}] Cannot release task"), inferer_name());
    d->task_handle_ = nullptr;
算法工具链
征程6
评论8
0/1000
  • PhoenixOwner
    Lv.3

    有dmesg的log输出么?以及cat /log/bpu0/message的输出

    2025-08-21
    0
    1
    • 杨士杰回复PhoenixOwner:

      我们只有 /log/bpu/message

      2025-08-22
      0
  • 颜值即正义
    Lv.2

    除了上面提到的dmesg信息很重要,还要确认一下几个信息:

    1. WaitTaskDone 配置timeout 为1s,确认是否发生timeout

    2. 发生timeout后,后续帧是否能恢复推理

    3. 发生问题后,可以在板上使用hrt_model_exec 工具单独在perf 推理一个模型,看是否能正常推理(如果可以台架复现的话)

    4. 提供该bev模型编译的hbdk4版本信息,以及推理ucp的版本信息

    5. 提供底软中firmware的版本信息,查看方式:

    echo 1 > /sys/devices/system/bpu/bpu0/power_enable

    cat /log/bpu/message|grep "FW Version"

    2025-08-21
    0
    1
    • 杨士杰回复颜值即正义:

      版本信息回复失败 1025和1018两个

      2025-08-22
      0
  • 杨士杰
    Lv.1

    点错了

    2025-08-22
    0
    0
  • 杨士杰
    Lv.1
    还没解决
    回复不了消息
    2025-08-22
    0
    0
  • 杨士杰
    Lv.1

    1. WaitTaskDone 配置timeout 为0

    2025-08-22
    0
    0
  • 杨士杰
    Lv.1

    使用的oe v3.0.22使用的oe v3.0.22

    2025-08-22
    0
    0
  • 杨士杰
    Lv.1

    发的信息多点就发送失败

    2025-08-22
    0
    0
  • 杨士杰
    Lv.1

    另外问一下 如果有两个进程同时时候bpu推理的话会怎样

    2025-08-22
    0
    1
    • PhoenixOwner回复杨士杰:

      同时推理是可以的,如果优先级不同,不论FW接收的先后顺序,高优任务会抢占低优任务,低优任务被阻塞;如果优先级相同,则按照接收的先后顺序执行。

      2025-08-22
      0