Skip to content

[BUG] wasm-standalone app cannot work #8439

@ya0guang

Description

@ya0guang

When @mssun and me try to rebuild wasm-standalone app, we encountered several problems. Some of them were fixed TEMPORARILY, and we failed to get over some problems.

My environment

TVM: e3e03df, default config, except USE_LLVM ON
rustc: 1.53.0
LLVM: 12.0.0
Python: 3.9.5

Problem 1: build_graph_lib.py doesn't work

An error occurs when I tried to run the script (LLVM_AR=llvm-ar python ./build_graph_lib.py -O3 ./resnet50v1.onnx ). The error message is:

Traceback (most recent call last):
  File "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/tools/./build_graph_lib.py", line 79, in <module>
    build_graph_lib(args.model_file, args.opt_level)
  File "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/tools/./build_graph_lib.py", line 47, in build_graph_lib
    mod, params = _get_mod_and_params(model_file)
  File "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/tools/./build_graph_lib.py", line 37, in _get_mod_and_params
    return relay.frontend.from_onnx(onnx_model, shape_dict)
  File "/home/ya0guang/Code/tvm/python/tvm/relay/frontend/onnx.py", line 3820, in from_onnx
    mod, params = g.from_onnx(graph, opset)
  File "/home/ya0guang/Code/tvm/python/tvm/relay/frontend/onnx.py", line 3559, in from_onnx
    assert all(
AssertionError: User specified the shape for inputs that weren't found in the graph: {'data': [1, 3, 224, 224], 'resnetv17_conv0_weight': [64, 3, 7, 7], 'resnetv17_batchnorm0_gamma': [64], 'resnetv17_batchnorm0_beta': [64], 'resnetv17_batchnorm0_running_mean': [64], 'resnetv17_batchnorm0_running_var': [64], 'resnetv17_stage1_conv0_weight': [64, 64, 1, 1], 'resnetv17_stage1_conv0_bias': [64], 'resnetv17_stage1_batchnorm0_gamma': [64], 'resnetv17_stage1_batchnorm0_beta': [64], 'resnetv17_stage1_batchnorm0_running_mean': [64], 'resnetv17_stage1_batchnorm0_running_var': [64], 'resnetv17_stage1_conv1_weight': [64, 64, 3, 3], 'resnetv17_stage1_batchnorm1_gamma': [64], 'resnetv17_stage1_batchnorm1_beta': [64], 'resnetv17_stage1_batchnorm1_running_mean': [64], 'resnetv17_stage1_batchnorm1_running_var': [64], 'resnetv17_stage1_conv2_weight': [256, 64, 1, 1], 'resnetv17_stage1_conv2_bias': [256], 'resnetv17_stage1_batchnorm2_gamma': [256], 'resnetv17_stage1_batchnorm2_beta': [256], 'resnetv17_stage1_batchnorm2_running_mean': [256], 'resnetv17_stage1_batchnorm2_running_var': [256], 'resnetv17_stage1_conv3_weight': [256, 64, 1, 1], 'resnetv17_stage1_batchnorm3_gamma': [256], 'resnetv17_stage1_batchnorm3_beta': [256], 'resnetv17_stage1_batchnorm3_running_mean': [256], 'resnetv17_stage1_batchnorm3_running_var': [256], 'resnetv17_stage1_conv4_weight': [64, 256, 1, 1], 'resnetv17_stage1_conv4_bias': [64], 'resnetv17_stage1_batchnorm4_gamma': [64], 'resnetv17_stage1_batchnorm4_beta': [64], 'resnetv17_stage1_batchnorm4_running_mean': [64], 'resnetv17_stage1_batchnorm4_running_var': [64], 'resnetv17_stage1_conv5_weight': [64, 64, 3, 3], 'resnetv17_stage1_batchnorm5_gamma': [64], 'resnetv17_stage1_batchnorm5_beta': [64], 'resnetv17_stage1_batchnorm5_running_mean': [64], 'resnetv17_stage1_batchnorm5_running_var': [64], 'resnetv17_stage1_conv6_weight': [256, 64, 1, 1], 'resnetv17_stage1_conv6_bias': [256], 'resnetv17_stage1_batchnorm6_gamma': [256], 'resnetv17_stage1_batchnorm6_beta': [256], 'resnetv17_stage1_batchnorm6_running_mean': [256], 'resnetv17_stage1_batchnorm6_running_var': [256], 'resnetv17_stage1_conv7_weight': [64, 256, 1, 1], 'resnetv17_stage1_conv7_bias': [64], 'resnetv17_stage1_batchnorm7_gamma': [64], 'resnetv17_stage1_batchnorm7_beta': [64], 'resnetv17_stage1_batchnorm7_running_mean': [64], 'resnetv17_stage1_batchnorm7_running_var': [64], 'resnetv17_stage1_conv8_weight': [64, 64, 3, 3], 'resnetv17_stage1_batchnorm8_gamma': [64], 'resnetv17_stage1_batchnorm8_beta': [64], 'resnetv17_stage1_batchnorm8_running_mean': [64], 'resnetv17_stage1_batchnorm8_running_var': [64], 'resnetv17_stage1_conv9_weight': [256, 64, 1, 1], 'resnetv17_stage1_conv9_bias': [256], 'resnetv17_stage1_batchnorm9_gamma': [256], 'resnetv17_stage1_batchnorm9_beta': [256], 'resnetv17_stage1_batchnorm9_running_mean': [256], 'resnetv17_stage1_batchnorm9_running_var': [256], 'resnetv17_stage2_conv0_weight': [128, 256, 1, 1], 'resnetv17_stage2_conv0_bias': [128], 'resnetv17_stage2_batchnorm0_gamma': [128], 'resnetv17_stage2_batchnorm0_beta': [128], 'resnetv17_stage2_batchnorm0_running_mean': [128], 'resnetv17_stage2_batchnorm0_running_var': [128], 'resnetv17_stage2_conv1_weight': [128, 128, 3, 3], 'resnetv17_stage2_batchnorm1_gamma': [128], 'resnetv17_stage2_batchnorm1_beta': [128], 'resnetv17_stage2_batchnorm1_running_mean': [128], 'resnetv17_stage2_batchnorm1_running_var': [128], 'resnetv17_stage2_conv2_weight': [512, 128, 1, 1], 'resnetv17_stage2_conv2_bias': [512], 'resnetv17_stage2_batchnorm2_gamma': [512], 'resnetv17_stage2_batchnorm2_beta': [512], 'resnetv17_stage2_batchnorm2_running_mean': [512], 'resnetv17_stage2_batchnorm2_running_var': [512], 'resnetv17_stage2_conv3_weight': [512, 256, 1, 1], 'resnetv17_stage2_batchnorm3_gamma': [512], 'resnetv17_stage2_batchnorm3_beta': [512], 'resnetv17_stage2_batchnorm3_running_mean': [512], 'resnetv17_stage2_batchnorm3_running_var': [512], 'resnetv17_stage2_conv4_weight': [128, 512, 1, 1], 'resnetv17_stage2_conv4_bias': [128], 'resnetv17_stage2_batchnorm4_gamma': [128], 'resnetv17_stage2_batchnorm4_beta': [128], 'resnetv17_stage2_batchnorm4_running_mean': [128], 'resnetv17_stage2_batchnorm4_running_var': [128], 'resnetv17_stage2_conv5_weight': [128, 128, 3, 3], 'resnetv17_stage2_batchnorm5_gamma': [128], 'resnetv17_stage2_batchnorm5_beta': [128], 'resnetv17_stage2_batchnorm5_running_mean': [128], 'resnetv17_stage2_batchnorm5_running_var': [128], 'resnetv17_stage2_conv6_weight': [512, 128, 1, 1], 'resnetv17_stage2_conv6_bias': [512], 'resnetv17_stage2_batchnorm6_gamma': [512], 'resnetv17_stage2_batchnorm6_beta': [512], 'resnetv17_stage2_batchnorm6_running_mean': [512], 'resnetv17_stage2_batchnorm6_running_var': [512], 'resnetv17_stage2_conv7_weight': [128, 512, 1, 1], 'resnetv17_stage2_conv7_bias': [128], 'resnetv17_stage2_batchnorm7_gamma': [128], 'resnetv17_stage2_batchnorm7_beta': [128], 'resnetv17_stage2_batchnorm7_running_mean': [128], 'resnetv17_stage2_batchnorm7_running_var': [128], 'resnetv17_stage2_conv8_weight': [128, 128, 3, 3], 'resnetv17_stage2_batchnorm8_gamma': [128], 'resnetv17_stage2_batchnorm8_beta': [128], 'resnetv17_stage2_batchnorm8_running_mean': [128], 'resnetv17_stage2_batchnorm8_running_var': [128], 'resnetv17_stage2_conv9_weight': [512, 128, 1, 1], 'resnetv17_stage2_conv9_bias': [512], 'resnetv17_stage2_batchnorm9_gamma': [512], 'resnetv17_stage2_batchnorm9_beta': [512], 'resnetv17_stage2_batchnorm9_running_mean': [512], 'resnetv17_stage2_batchnorm9_running_var': [512], 'resnetv17_stage2_conv10_weight': [128, 512, 1, 1], 'resnetv17_stage2_conv10_bias': [128], 'resnetv17_stage2_batchnorm10_gamma': [128], 'resnetv17_stage2_batchnorm10_beta': [128], 'resnetv17_stage2_batchnorm10_running_mean': [128], 'resnetv17_stage2_batchnorm10_running_var': [128], 'resnetv17_stage2_conv11_weight': [128, 128, 3, 3], 'resnetv17_stage2_batchnorm11_gamma': [128], 'resnetv17_stage2_batchnorm11_beta': [128], 'resnetv17_stage2_batchnorm11_running_mean': [128], 'resnetv17_stage2_batchnorm11_running_var': [128], 'resnetv17_stage2_conv12_weight': [512, 128, 1, 1], 'resnetv17_stage2_conv12_bias': [512], 'resnetv17_stage2_batchnorm12_gamma': [512], 'resnetv17_stage2_batchnorm12_beta': [512], 'resnetv17_stage2_batchnorm12_running_mean': [512], 'resnetv17_stage2_batchnorm12_running_var': [512], 'resnetv17_stage3_conv0_weight': [256, 512, 1, 1], 'resnetv17_stage3_conv0_bias': [256], 'resnetv17_stage3_batchnorm0_gamma': [256], 'resnetv17_stage3_batchnorm0_beta': [256], 'resnetv17_stage3_batchnorm0_running_mean': [256], 'resnetv17_stage3_batchnorm0_running_var': [256], 'resnetv17_stage3_conv1_weight': [256, 256, 3, 3], 'resnetv17_stage3_batchnorm1_gamma': [256], 'resnetv17_stage3_batchnorm1_beta': [256], 'resnetv17_stage3_batchnorm1_running_mean': [256], 'resnetv17_stage3_batchnorm1_running_var': [256], 'resnetv17_stage3_conv2_weight': [1024, 256, 1, 1], 'resnetv17_stage3_conv2_bias': [1024], 'resnetv17_stage3_batchnorm2_gamma': [1024], 'resnetv17_stage3_batchnorm2_beta': [1024], 'resnetv17_stage3_batchnorm2_running_mean': [1024], 'resnetv17_stage3_batchnorm2_running_var': [1024], 'resnetv17_stage3_conv3_weight': [1024, 512, 1, 1], 'resnetv17_stage3_batchnorm3_gamma': [1024], 'resnetv17_stage3_batchnorm3_beta': [1024], 'resnetv17_stage3_batchnorm3_running_mean': [1024], 'resnetv17_stage3_batchnorm3_running_var': [1024], 'resnetv17_stage3_conv4_weight': [256, 1024, 1, 1], 'resnetv17_stage3_conv4_bias': [256], 'resnetv17_stage3_batchnorm4_gamma': [256], 'resnetv17_stage3_batchnorm4_beta': [256], 'resnetv17_stage3_batchnorm4_running_mean': [256], 'resnetv17_stage3_batchnorm4_running_var': [256], 'resnetv17_stage3_conv5_weight': [256, 256, 3, 3], 'resnetv17_stage3_batchnorm5_gamma': [256], 'resnetv17_stage3_batchnorm5_beta': [256], 'resnetv17_stage3_batchnorm5_running_mean': [256], 'resnetv17_stage3_batchnorm5_running_var': [256], 'resnetv17_stage3_conv6_weight': [1024, 256, 1, 1], 'resnetv17_stage3_conv6_bias': [1024], 'resnetv17_stage3_batchnorm6_gamma': [1024], 'resnetv17_stage3_batchnorm6_beta': [1024], 'resnetv17_stage3_batchnorm6_running_mean': [1024], 'resnetv17_stage3_batchnorm6_running_var': [1024], 'resnetv17_stage3_conv7_weight': [256, 1024, 1, 1], 'resnetv17_stage3_conv7_bias': [256], 'resnetv17_stage3_batchnorm7_gamma': [256], 'resnetv17_stage3_batchnorm7_beta': [256], 'resnetv17_stage3_batchnorm7_running_mean': [256], 'resnetv17_stage3_batchnorm7_running_var': [256], 'resnetv17_stage3_conv8_weight': [256, 256, 3, 3], 'resnetv17_stage3_batchnorm8_gamma': [256], 'resnetv17_stage3_batchnorm8_beta': [256], 'resnetv17_stage3_batchnorm8_running_mean': [256], 'resnetv17_stage3_batchnorm8_running_var': [256], 'resnetv17_stage3_conv9_weight': [1024, 256, 1, 1], 'resnetv17_stage3_conv9_bias': [1024], 'resnetv17_stage3_batchnorm9_gamma': [1024], 'resnetv17_stage3_batchnorm9_beta': [1024], 'resnetv17_stage3_batchnorm9_running_mean': [1024], 'resnetv17_stage3_batchnorm9_running_var': [1024], 'resnetv17_stage3_conv10_weight': [256, 1024, 1, 1], 'resnetv17_stage3_conv10_bias': [256], 'resnetv17_stage3_batchnorm10_gamma': [256], 'resnetv17_stage3_batchnorm10_beta': [256], 'resnetv17_stage3_batchnorm10_running_mean': [256], 'resnetv17_stage3_batchnorm10_running_var': [256], 'resnetv17_stage3_conv11_weight': [256, 256, 3, 3], 'resnetv17_stage3_batchnorm11_gamma': [256], 'resnetv17_stage3_batchnorm11_beta': [256], 'resnetv17_stage3_batchnorm11_running_mean': [256], 'resnetv17_stage3_batchnorm11_running_var': [256], 'resnetv17_stage3_conv12_weight': [1024, 256, 1, 1], 'resnetv17_stage3_conv12_bias': [1024], 'resnetv17_stage3_batchnorm12_gamma': [1024], 'resnetv17_stage3_batchnorm12_beta': [1024], 'resnetv17_stage3_batchnorm12_running_mean': [1024], 'resnetv17_stage3_batchnorm12_running_var': [1024], 'resnetv17_stage3_conv13_weight': [256, 1024, 1, 1], 'resnetv17_stage3_conv13_bias': [256], 'resnetv17_stage3_batchnorm13_gamma': [256], 'resnetv17_stage3_batchnorm13_beta': [256], 'resnetv17_stage3_batchnorm13_running_mean': [256], 'resnetv17_stage3_batchnorm13_running_var': [256], 'resnetv17_stage3_conv14_weight': [256, 256, 3, 3], 'resnetv17_stage3_batchnorm14_gamma': [256], 'resnetv17_stage3_batchnorm14_beta': [256], 'resnetv17_stage3_batchnorm14_running_mean': [256], 'resnetv17_stage3_batchnorm14_running_var': [256], 'resnetv17_stage3_conv15_weight': [1024, 256, 1, 1], 'resnetv17_stage3_conv15_bias': [1024], 'resnetv17_stage3_batchnorm15_gamma': [1024], 'resnetv17_stage3_batchnorm15_beta': [1024], 'resnetv17_stage3_batchnorm15_running_mean': [1024], 'resnetv17_stage3_batchnorm15_running_var': [1024], 'resnetv17_stage3_conv16_weight': [256, 1024, 1, 1], 'resnetv17_stage3_conv16_bias': [256], 'resnetv17_stage3_batchnorm16_gamma': [256], 'resnetv17_stage3_batchnorm16_beta': [256], 'resnetv17_stage3_batchnorm16_running_mean': [256], 'resnetv17_stage3_batchnorm16_running_var': [256], 'resnetv17_stage3_conv17_weight': [256, 256, 3, 3], 'resnetv17_stage3_batchnorm17_gamma': [256], 'resnetv17_stage3_batchnorm17_beta': [256], 'resnetv17_stage3_batchnorm17_running_mean': [256], 'resnetv17_stage3_batchnorm17_running_var': [256], 'resnetv17_stage3_conv18_weight': [1024, 256, 1, 1], 'resnetv17_stage3_conv18_bias': [1024], 'resnetv17_stage3_batchnorm18_gamma': [1024], 'resnetv17_stage3_batchnorm18_beta': [1024], 'resnetv17_stage3_batchnorm18_running_mean': [1024], 'resnetv17_stage3_batchnorm18_running_var': [1024], 'resnetv17_stage4_conv0_weight': [512, 1024, 1, 1], 'resnetv17_stage4_conv0_bias': [512], 'resnetv17_stage4_batchnorm0_gamma': [512], 'resnetv17_stage4_batchnorm0_beta': [512], 'resnetv17_stage4_batchnorm0_running_mean': [512], 'resnetv17_stage4_batchnorm0_running_var': [512], 'resnetv17_stage4_conv1_weight': [512, 512, 3, 3], 'resnetv17_stage4_batchnorm1_gamma': [512], 'resnetv17_stage4_batchnorm1_beta': [512], 'resnetv17_stage4_batchnorm1_running_mean': [512], 'resnetv17_stage4_batchnorm1_running_var': [512], 'resnetv17_stage4_conv2_weight': [2048, 512, 1, 1], 'resnetv17_stage4_conv2_bias': [2048], 'resnetv17_stage4_batchnorm2_gamma': [2048], 'resnetv17_stage4_batchnorm2_beta': [2048], 'resnetv17_stage4_batchnorm2_running_mean': [2048], 'resnetv17_stage4_batchnorm2_running_var': [2048], 'resnetv17_stage4_conv3_weight': [2048, 1024, 1, 1], 'resnetv17_stage4_batchnorm3_gamma': [2048], 'resnetv17_stage4_batchnorm3_beta': [2048], 'resnetv17_stage4_batchnorm3_running_mean': [2048], 'resnetv17_stage4_batchnorm3_running_var': [2048], 'resnetv17_stage4_conv4_weight': [512, 2048, 1, 1], 'resnetv17_stage4_conv4_bias': [512], 'resnetv17_stage4_batchnorm4_gamma': [512], 'resnetv17_stage4_batchnorm4_beta': [512], 'resnetv17_stage4_batchnorm4_running_mean': [512], 'resnetv17_stage4_batchnorm4_running_var': [512], 'resnetv17_stage4_conv5_weight': [512, 512, 3, 3], 'resnetv17_stage4_batchnorm5_gamma': [512], 'resnetv17_stage4_batchnorm5_beta': [512], 'resnetv17_stage4_batchnorm5_running_mean': [512], 'resnetv17_stage4_batchnorm5_running_var': [512], 'resnetv17_stage4_conv6_weight': [2048, 512, 1, 1], 'resnetv17_stage4_conv6_bias': [2048], 'resnetv17_stage4_batchnorm6_gamma': [2048], 'resnetv17_stage4_batchnorm6_beta': [2048], 'resnetv17_stage4_batchnorm6_running_mean': [2048], 'resnetv17_stage4_batchnorm6_running_var': [2048], 'resnetv17_stage4_conv7_weight': [512, 2048, 1, 1], 'resnetv17_stage4_conv7_bias': [512], 'resnetv17_stage4_batchnorm7_gamma': [512], 'resnetv17_stage4_batchnorm7_beta': [512], 'resnetv17_stage4_batchnorm7_running_mean': [512], 'resnetv17_stage4_batchnorm7_running_var': [512], 'resnetv17_stage4_conv8_weight': [512, 512, 3, 3], 'resnetv17_stage4_batchnorm8_gamma': [512], 'resnetv17_stage4_batchnorm8_beta': [512], 'resnetv17_stage4_batchnorm8_running_mean': [512], 'resnetv17_stage4_batchnorm8_running_var': [512], 'resnetv17_stage4_conv9_weight': [2048, 512, 1, 1], 'resnetv17_stage4_conv9_bias': [2048], 'resnetv17_stage4_batchnorm9_gamma': [2048], 'resnetv17_stage4_batchnorm9_beta': [2048], 'resnetv17_stage4_batchnorm9_running_mean': [2048], 'resnetv17_stage4_batchnorm9_running_var': [2048], 'resnetv17_dense0_weight': [1000, 2048], 'resnetv17_dense0_bias': [1000]}

Hot fix

We eliminate this error by modifying the function _get_mod_and_params: adding a line before return.

def _get_mod_and_params(model_file):
    onnx_model = onnx.load(model_file)
    shape_dict = {}
    for input in onnx_model.graph.input:
        shape_dict[input.name] = [dim.dim_value for dim in input.type.tensor_type.shape.dim]

    shape_dict = {"data": shape_dict["data"]}
    return relay.frontend.from_onnx(onnx_model, shape_dict)

Problem 2: Cargo cannot build wasm-graph

The second problem is occurs while cargo trying to compile and link. (cd wasm-graph && cargo build --release)

error: linking with `rust-lld` failed: exit status: 1
  |
  = note: "rust-lld" "-flavor" "wasm" "--rsp-quoting=posix" "-z" "stack-size=1048576" "--stack-first" "--allow-undefined" "--fatal-warnings" "--no-demangle" "-L" "/home/ya0guang/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-wasi/lib" "-L" "/home/ya0guang/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-wasi/lib/self-contained" "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/target/wasm32-wasi/release/deps/wasm_graph.wasm_graph.9d8qt5z6-cgu.0.rcgu.o" "-o" "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/target/wasm32-wasi/release/deps/wasm_graph.wasm" "--export" "run" "--export" "TVMAPISetLastError" "--export" "TVMBackendAllocWorkspace" "--export" "TVMBackendFreeWorkspace" "--export" "TVMBackendParallelBarrier" "--export" "TVMBackendParallelLaunch" "--export" "TVMBackendRegisterSystemLibSymbol" "--export" "TVMGetLastError" "--export=__heap_base" "--export=__data_end" "--gc-sections" "--no-entry" "-O2" "-L" "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/target/wasm32-wasi/release/deps" "-L" "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/target/release/deps" "-L" "/home/ya0guang/Code/tvm/apps/wasm-standalone/wasm-graph/lib" "-L" "/home/ya0guang/Code/tvm/build" "-L" "/home/ya0guang/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-wasi/lib" "/tmp/rustcB2Rq3f/liblibc-dd6fd16fbeb0b6c9.rlib" "/home/ya0guang/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/wasm32-wasi/lib/libcompiler_builtins-55f71868fddeb6d1.rlib" "-l" "tvm" "--whole-archive" "-lgraph_wasm32"
  = note: rust-lld: error: unable to find library -ltvm
          

error: aborting due to previous error

error: could not compile `wasm-graph`

To learn more, run the command again with --verbose.

Actually the library libtvm.so does EXIST. However, it's a 64bit elf SO, which may not be linked to a WASM bytecode directly.

Hot fix

This error comes from a dependency in rust/tvm-sys. We comment the snippet linking the tvm library in build.rs like this:

    // if cfg!(feature = "static-linking") {
    //     println!("cargo:rustc-link-lib=static=tvm");
    //     // TODO(@jroesch): move this to tvm-build as library_path?
    //     println!(
    //         "cargo:rustc-link-search=native={}/build",
    //         build_path.display()
    //     );
    // }

    // if cfg!(feature = "dynamic-linking") {
    //     println!("cargo:rustc-link-lib=dylib=tvm");
    //     println!(
    //         "cargo:rustc-link-search=native={}/build",
    //         build_path.display()
    //     );
    // }

then it compiles. We cooment these lines because the code seems only use some data structures from the tvm-sys.

Problem 3

After the WASM file and test runtime have been successfully generated, the test program doens't work.

$ RUST_BACKTRACE=1 ./target/debug/test_graph_resnet50 -g ./wasm_graph_resnet50.wasm -i ./cat.png -l ./synset.csv 
original image dimensions: (256, 256)
resized image dimensions: (224, 224)
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: stack operand type mismatch (at offset 227760)', src/main.rs:82:45
stack backtrace:
   0: rust_begin_unwind
             at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/std/src/panicking.rs:493:5
   1: core::panicking::panic_fmt
             at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/core/src/panicking.rs:92:14
   2: core::result::unwrap_failed
             at /rustc/53cb7b09b00cbea8754ffb78e7e3cb521cb8af4b/library/core/src/result.rs:1355:5
   3: core::result::Result<T,E>::unwrap
             at /home/ya0guang/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/result.rs:1037:23
   4: test_graph_resnet50::main
             at ./src/main.rs:82:5
   5: core::ops::function::FnOnce::call_once
             at /home/ya0guang/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

It seems like the WASM module cannot be instantiated successfully.

Summary

I have no confidence that all these hot fixes are correct. If someone can fix them and let it work, we will be more than grateful!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions