[KL730] Backend Compiler Crash in AddDummyBnForSplitNode during BIE conversion for Skeleton GCN

I am currently converting a skeleton-based action recognition model (LIAGCN) for the KL730. While the initial optimization stages complete successfully, the process fails during the BIE conversion with a hard assertion error in the compiler.


Error Stack Trace:

Stack trace (most recent call last):
#16   Object "", at 0xffffffffffffffff, in 
#15   Object "/workspace/libs_V2/compiler/compile", at 0x62d1e7ce6f6d, in _start
#14   Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f15d22ec082, in __libc_start_main
#13   Source "/projects_src/kneron-piano_v2/compiler/bin/compile.cc", line 82, in main
#12   Source "/projects_src/kneron-piano_v2/compiler/lib/common/public/compile_impl.h", line 62, in Compile(...)
#11   Source "/projects_src/kneron-piano_v2/compiler/lib/wagner/backend/compile.cc", line 311, in CompileImpl
#10   Source "/projects_src/kneron-piano_v2/compiler/lib/common/backend/compile_utils.cc", line 582, in GraphCompiler::OptimizeGraph()
#9  | Source "/projects_src/kneron-piano_v2/compiler/lib/common/frontend/graph_opt_fe.cc", line 58, in GraphOptFE(...)
#8  | Source "/projects_src/kneron-piano_v2/compiler/lib/common/frontend/optimization.cc", line 876, in OptimizeGraph(...)
#7  | Source "/projects_src/kneron-piano_v2/compiler/lib/common/frontend/optimization.cc", line 339, in AddDummyBnForSplitNode
#6    Source "/projects_src/kneron-piano_v2/compiler/lib/common/frontend/graph_modify.cc", line 298, in GraphModifier::InsertNewHeadBetween(...)
#5    Source "/projects_src/kneron-piano_v2/compiler/lib/common/frontend/graph_modify.cc", line 306, in GraphModifier::InsertBetween(...)
#4    Source "/projects_src/kneron-piano_v2/piano/lib/piano/graph/node_utils.cc", line 422, in GetOutLinkIdx(Node const*, Node const*, unsigned long)
#3    Object "/lib/x86_64-linux-gnu/libc.so.6", at 0x7f15d22fbfd5, in __assert_fail


Tagged:

Comments

  • Hi Nimesh,

    Please check if your onnx model's operators are all supported by KL730 device: Hardware Supported Operators - Document Center

    If there were unsupported operators, please either change them to supported operators, or cut them off and add them back in your postprocess function.

    If they were all supported, please provide the following files and information:

    • Optimized onnx model
    • Script that was used to convert the model
    • One input data (We recommend you to use 100 input data during quantization, but for testing purposes, we only need 1 for now)
    • Toolchain version

    Thank you!

  • Hi Nimesh,

    I used a generic python conversion script for testing purposes to convert your optimized onnx model, and it can be converted to NEF file successfully. Please note that the preprocess function is temporary for testing model conversion, so you will need to replace that with your own preprocess, and add on your own postprocess if necessary. We also recommend you to use around 100 input data to improve model accuracy.

    Also, we recommend you to keep the parameters for ktc.ModelConfig and km.analysis as simple as possible first, such as getting rid of output_dir.

    What is your Kneron Toolchain's version? You can check it by the command cat /workspace/version.txt when you're running docker.

  • i am using kneron/toolchain:v0.25.0_3


  • Hi Nimesh,

    We recommend you to use the newest toolchain version, since the toolchain v0.25.0 is outdated and I used version 0.31.1 when I ran the generic conversion script.

    You can update your toolchain by using this command: docker pull kneron/toolchain:latest

Sign In or Register to comment.