[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
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:
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.txtwhen 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