[INFO] fetching crate tract-nnef 0.14.1... [INFO] testing tract-nnef-0.14.1 against try#ce59db7a1b1b012fb2793c4641c1bdecad7a128b for pr-85530 [INFO] extracting crate tract-nnef 0.14.1 into /workspace/builds/worker-6/source [INFO] validating manifest of crates.io crate tract-nnef 0.14.1 on toolchain ce59db7a1b1b012fb2793c4641c1bdecad7a128b [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate tract-nnef 0.14.1 [INFO] finished tweaking crates.io crate tract-nnef 0.14.1 [INFO] tweaked toml for crates.io crate tract-nnef 0.14.1 written to /workspace/builds/worker-6/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 16a9dff59493a16adf437320b54c771d0fb2eaa34a7c5147653931770ea9aff0 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "16a9dff59493a16adf437320b54c771d0fb2eaa34a7c5147653931770ea9aff0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "16a9dff59493a16adf437320b54c771d0fb2eaa34a7c5147653931770ea9aff0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "16a9dff59493a16adf437320b54c771d0fb2eaa34a7c5147653931770ea9aff0", kill_on_drop: false }` [INFO] [stdout] 16a9dff59493a16adf437320b54c771d0fb2eaa34a7c5147653931770ea9aff0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5b37d5c9f002c0a4965368233da7da2c784cbc920b27db113f9005adb4b5a9f9 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "5b37d5c9f002c0a4965368233da7da2c784cbc920b27db113f9005adb4b5a9f9", kill_on_drop: false }` [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling proc-macro2 v1.0.27 [INFO] [stderr] Compiling unicode-xid v0.2.2 [INFO] [stderr] Compiling syn v1.0.72 [INFO] [stderr] Compiling libc v0.2.95 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Compiling ucd-trie v0.1.3 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Compiling serde_derive v1.0.126 [INFO] [stderr] Compiling memchr v2.4.0 [INFO] [stderr] Compiling serde v1.0.126 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Compiling regex-syntax v0.6.25 [INFO] [stderr] Compiling anymap v0.12.1 [INFO] [stderr] Compiling tinyvec_macros v0.1.0 [INFO] [stderr] Compiling once_cell v1.7.2 [INFO] [stderr] Compiling unicode-segmentation v1.7.1 [INFO] [stderr] Compiling percent-encoding v2.1.0 [INFO] [stderr] Compiling anyhow v1.0.40 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling smallvec v1.6.1 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Compiling bitflags v1.2.1 [INFO] [stderr] Compiling log v0.4.14 [INFO] [stderr] Compiling cc v1.0.68 [INFO] [stderr] Compiling radium v0.5.3 [INFO] [stderr] Compiling half v1.7.1 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Compiling lazy_static v1.4.0 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Compiling funty v1.1.0 [INFO] [stderr] Compiling adler v1.0.2 [INFO] [stderr] Compiling paste v1.0.5 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Compiling tap v1.0.1 [INFO] [stderr] Compiling wyz v0.2.0 [INFO] [stderr] Compiling arrayvec v0.5.2 [INFO] [stderr] Compiling downcast-rs v1.2.0 [INFO] [stderr] Compiling dyn-clone v1.0.4 [INFO] [stderr] Compiling byteorder v1.4.3 [INFO] [stderr] Compiling itertools v0.10.0 [INFO] [stderr] Compiling tinyvec v1.2.0 [INFO] [stderr] Compiling pest v2.1.3 [INFO] [stderr] Compiling matrixmultiply v0.3.1 [INFO] [stderr] Compiling walkdir v2.3.2 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling num-bigint v0.4.0 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Compiling bit-set v0.5.2 [INFO] [stderr] Compiling nom v6.1.2 [INFO] [stderr] Compiling bitvec v0.19.5 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling quote v1.0.9 [INFO] [stderr] Compiling unicode-normalization v0.1.19 [INFO] [stderr] Compiling time v0.1.44 [INFO] [stderr] Compiling filetime v0.2.14 [INFO] [stderr] Compiling xattr v0.2.2 [INFO] [stderr] Compiling pest_meta v2.1.3 [INFO] [stderr] Compiling tar v0.4.35 [INFO] [stderr] Compiling flate2 v1.0.20 [INFO] [stderr] Compiling proc-quote-impl v0.3.2 [INFO] [stderr] Compiling num-complex v0.4.0 [INFO] [stderr] Compiling regex v1.5.4 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling ndarray v0.15.3 [INFO] [stderr] Compiling proc-quote v0.3.2 [INFO] [stderr] Compiling pest_generator v2.1.3 [INFO] [stderr] Compiling pest_derive v2.1.0 [INFO] [stderr] Compiling liquid-derive v0.22.0 [INFO] [stderr] Compiling enum-ordinalize v3.1.10 [INFO] [stderr] Compiling derive-new v0.5.9 [INFO] [stderr] Compiling educe v0.4.16 [INFO] [stderr] Compiling tract-data v0.14.1 [INFO] [stderr] Compiling kstring v1.0.1 [INFO] [stderr] Compiling liquid-core v0.22.0 [INFO] [stderr] Compiling liquid-lib v0.22.0 [INFO] [stderr] Compiling liquid v0.22.0 [INFO] [stderr] Compiling tract-linalg v0.14.1 [INFO] [stderr] Compiling tract-core v0.14.1 [INFO] [stderr] Compiling tract-nnef v0.14.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2m 11s [INFO] running `Command { std: "docker" "inspect" "5b37d5c9f002c0a4965368233da7da2c784cbc920b27db113f9005adb4b5a9f9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b37d5c9f002c0a4965368233da7da2c784cbc920b27db113f9005adb4b5a9f9", kill_on_drop: false }` [INFO] [stdout] 5b37d5c9f002c0a4965368233da7da2c784cbc920b27db113f9005adb4b5a9f9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 38dd6b65271c8198e238b91cf40b31ba57b4095ffc5b1886b65101d16f391a9b [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "38dd6b65271c8198e238b91cf40b31ba57b4095ffc5b1886b65101d16f391a9b", kill_on_drop: false }` [INFO] [stderr] Compiling tract-nnef v0.14.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 7.94s [INFO] running `Command { std: "docker" "inspect" "38dd6b65271c8198e238b91cf40b31ba57b4095ffc5b1886b65101d16f391a9b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "38dd6b65271c8198e238b91cf40b31ba57b4095ffc5b1886b65101d16f391a9b", kill_on_drop: false }` [INFO] [stdout] 38dd6b65271c8198e238b91cf40b31ba57b4095ffc5b1886b65101d16f391a9b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+ce59db7a1b1b012fb2793c4641c1bdecad7a128b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b9f55a1183f59d7495e47779b9a4afd3fa26a898aa1c8fe23aa3d044fda37d48 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "b9f55a1183f59d7495e47779b9a4afd3fa26a898aa1c8fe23aa3d044fda37d48", kill_on_drop: false }` [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.12s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/tract_nnef-b49e763ddf8365c9) [INFO] [stdout] [INFO] [stdout] running 28 tests [INFO] [stdout] test ast::parse::test::test_fragment_decl_fizz ... ok [INFO] [stdout] test ast::parse::test::test_batch_normalization ... ok [INFO] [stdout] test ast::parse::test::test_fragment_decl_logarithmic_quantize ... ok [INFO] [stdout] test ast::parse::test::test_body ... ok [INFO] [stdout] test ast::parse::test::test_freeze ... ignored [INFO] [stdout] test ast::parse::test::test_fragment_local_response_normalization ... ok [INFO] [stdout] test ast::parse::test::test_identifier ... ok [INFO] [stdout] test ast::parse::test::test_fragment_reshape ... ok [INFO] [stdout] test ast::parse::test::test_fragments ... ok [INFO] [stdout] test ast::parse::test::test_document ... ok [INFO] [stdout] test ast::parse::test::test_avg_roi_align ... ok [INFO] [stdout] test ast::parse::test::test_invocation ... ok [INFO] [stdout] test ast::parse::test::test_graph_def ... ok [INFO] [stdout] test ast::parse::test::test_fragment_decl_external ... ok [INFO] [stdout] test ast::parse::test::test_lvalue ... ok [INFO] [stdout] test ast::parse::test::test_type_spec ... ok [INFO] [stdout] test ast::parse::test::test_version ... ok [INFO] [stdout] test ast::parse::test::test_string ... ok [INFO] [stdout] test tensors::test::header_is_128_bytes ... ok [INFO] [stdout] test ast::parse::test::test_spaced ... ok [INFO] [stdout] test ast::parse::test::test_spacing ... ok [INFO] [stdout] test ast::parse::test::test_comprehenion ... ok [INFO] [stdout] test ast::parse::test::test_fragment_conv ... ok [INFO] [stdout] test ast::parse::test::test_arguments ... ok [INFO] [stdout] test ast::parse::test::test_numeric ... ok [INFO] [stdout] test ast::parse::test::test_min_max_linear_quantize ... ok [INFO] [stdout] test ast::parse::test::test_rvalue ... ok [INFO] [stdout] test ast::parse::test::test_assignment ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 27 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Running tests/parse.rs (/opt/rustwide/target/debug/deps/parse-3e33f9136ac9ecf7) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test parse_stdlib ... ok [INFO] [stdout] test parse_alexnet ... ok [INFO] [stdout] test parse_dump_parse_alexnet ... ok [INFO] [stdout] test parse_dump_parse_stdlib ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- parse_dump_parse_stdlib stdout ---- [INFO] [stdout] fragment abs( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment add( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment add_n( [INFO] [stdout] x: tensor[] [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x[0] + add_n(x[1:])) if (length_of(x) > 0) else constant(shape = [1], value = [0.0]); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment all_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment and( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment any_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment area_downsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] dims = (2 + length_of(factor)); [INFO] [stdout] output = box(input, size = ([1, 1] + factor), stride = ([1, 1] + factor), padding = ([(0, 0)] * dims), normalize = true); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment argmax_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (index: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment argmax_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment argmin_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment avg_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = box(input, size = size, border = border, padding = padding, stride = stride, dilation = dilation, normalize = true); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment avg_roi_align( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[], [INFO] [stdout] sampling_rate: integer[], [INFO] [stdout] resize_method: string = "symmetric" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] size = [ fori in range_of(output_size) yield (output_size[i] * sampling_rate[i])]; [INFO] [stdout] resized = roi_resample(input, rois, batch_index, output_size = size, method = resize_method); [INFO] [stdout] output = avg_pool(resized, size = sampling_rate, stride = sampling_rate); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment avg_roi_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment batch_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] mean: tensor, [INFO] [stdout] variance: tensor, [INFO] [stdout] offset: tensor, [INFO] [stdout] scale: tensor, [INFO] [stdout] epsilon: scalar [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = (offset + ((scale * (input - mean)) / sqrt((variance + epsilon)))); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment box( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] normalize: logical = false [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment ceil( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment clamp( [INFO] [stdout] x: tensor, [INFO] [stdout] a: tensor, [INFO] [stdout] b: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = max(min(x, b), a); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment concat( [INFO] [stdout] values: tensor[], [INFO] [stdout] axis: integer [INFO] [stdout] ) -> (value: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment constant( [INFO] [stdout] shape: integer[], [INFO] [stdout] value: ?[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment conv( [INFO] [stdout] input: tensor, [INFO] [stdout] filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment copy( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment copy_n( [INFO] [stdout] x: tensor, [INFO] [stdout] times: integer [INFO] [stdout] ) -> (y: tensor[]) [INFO] [stdout] { [INFO] [stdout] y = ([x] * times); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment cos( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment debox( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [], [INFO] [stdout] normalize: logical = false [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment deconv( [INFO] [stdout] input: tensor, [INFO] [stdout] filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment desample( [INFO] [stdout] input: tensor, [INFO] [stdout] index: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment div( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment elu( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = select((x < 0.0), (exp(x) - 1.0), x); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment eq( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment exp( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment external( [INFO] [stdout] shape: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment floor( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment ge( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment gt( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment l1_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = sum_reduce(abs(input), axes = axes); [INFO] [stdout] output = (input / max((sigma + bias), epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment l2_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = sqrt(sum_reduce(sqr(input), axes = axes)); [INFO] [stdout] output = (input / max((sigma + bias), epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment le( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment leaky_relu( [INFO] [stdout] x: tensor, [INFO] [stdout] alpha: scalar [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = prelu(x, alpha = alpha); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment linear( [INFO] [stdout] input: tensor, [INFO] [stdout] filter: tensor, [INFO] [stdout] bias: tensor = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = (matmul(input, filter, transposeB = true) + bias); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment linear_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] min: tensor, [INFO] [stdout] max: tensor, [INFO] [stdout] bits: integer [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = min_max_linear_quantize(x, min = min, max = max, bits = bits, signed = false, symmetric = false); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_contrast_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] centered = local_mean_normalization(input, size = size); [INFO] [stdout] output = local_variance_normalization(centered, size = size, bias = bias, epsilon = epsilon); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_mean_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] mean = box(input, size = size, normalize = true); [INFO] [stdout] output = sub(input, mean); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_response_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] alpha: scalar = 1.0, [INFO] [stdout] beta: scalar = 0.5, [INFO] [stdout] bias: scalar = 1.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = (bias + (alpha * box(sqr(input), size = size, normalize = true))); [INFO] [stdout] output = (input / (sigma ^ beta)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment local_variance_normalization( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] bias: scalar = 0.0, [INFO] [stdout] epsilon: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] sigma = sqrt(box(sqr(input), size = size, normalize = true)); [INFO] [stdout] output = (input / max((sigma + bias), epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment log( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment log2( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (log(x) / log(2.0)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment logarithmic_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] max: tensor, [INFO] [stdout] bits: integer [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] m = ceil(log2(max)); [INFO] [stdout] r = scalar(((2 ^ bits) - 1)); [INFO] [stdout] q = round(clamp(log2(abs(x)), (m - r), m)); [INFO] [stdout] y = (sign(x) * (2.0 ^ q)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment lt( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment matmul( [INFO] [stdout] A: tensor, [INFO] [stdout] B: tensor, [INFO] [stdout] transposeA: logical = false, [INFO] [stdout] transposeB: logical = false [INFO] [stdout] ) -> (C: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment max( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] { [INFO] [stdout] z = select((x > y), x, y); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] ( output, index ) = max_pool_with_index(input, size = size, border = border, padding = padding, stride = stride, dilation = dilation); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_pool_with_index( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor, index: tensor) [INFO] [stdout] { [INFO] [stdout] index = argmax_pool(input, size = size, border = border, padding = padding, stride = stride, dilation = dilation); [INFO] [stdout] output = sample(input, index, size = size, border = border, padding = padding, stride = stride, dilation = dilation); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment max_roi_align( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[], [INFO] [stdout] sampling_rate: integer[], [INFO] [stdout] resize_method: string = "symmetric" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] size = [ fori in range_of(output_size) yield (output_size[i] * sampling_rate[i])]; [INFO] [stdout] resized = roi_resample(input, rois, batch_index, output_size = size, method = resize_method); [INFO] [stdout] output = max_pool(resized, size = sampling_rate, stride = sampling_rate); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment max_roi_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment mean_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = sum_reduce(input, axes = axes, normalize = true); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment min( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] { [INFO] [stdout] z = select((x < y), x, y); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment min_max_linear_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] min: tensor, [INFO] [stdout] max: tensor, [INFO] [stdout] bits: integer, [INFO] [stdout] signed: logical, [INFO] [stdout] symmetric: logical [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] r = scalar((((2 ^ bits) - 1) - integer((signed && symmetric)))); [INFO] [stdout] z = clamp(x, min, max); [INFO] [stdout] p = scalar(((2 ^ (bits - 1)) - integer(symmetric)) if signed else 0); [INFO] [stdout] q = (round((((z - min) / (max - min)) * r)) - p); [INFO] [stdout] y = ((((q + p) / r) * (max - min)) + min); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment min_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment moments( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (mean: tensor, variance: tensor) [INFO] [stdout] { [INFO] [stdout] mean = mean_reduce(input, axes = axes); [INFO] [stdout] variance = mean_reduce(sqr((input - mean)), axes = axes); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment mul( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment multilinear_upsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[], [INFO] [stdout] method: string = "symmetric", [INFO] [stdout] border: string = "replicate" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment ne( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment nearest_downsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] dims = (2 + length_of(factor)); [INFO] [stdout] output = box(input, size = ([1] * dims), stride = ([1, 1] + factor), padding = ([(0, 0)] * dims)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment nearest_upsample( [INFO] [stdout] input: tensor, [INFO] [stdout] factor: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] dims = (2 + length_of(factor)); [INFO] [stdout] output = debox(input, size = ([1, 1] + factor), stride = ([1, 1] + factor), padding = ([(0, 0)] * dims)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment neg( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment not( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment or( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment pad( [INFO] [stdout] input: tensor, [INFO] [stdout] padding: (integer, integer)[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] value: scalar = 0.0 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment pow( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment prelu( [INFO] [stdout] x: tensor, [INFO] [stdout] alpha: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = select((x < 0.0), (alpha * x), x); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment rcp( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment relu( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = max(x, 0.0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment reshape( [INFO] [stdout] input: tensor, [INFO] [stdout] shape: integer[], [INFO] [stdout] axis_start: integer = 0, [INFO] [stdout] axis_count: integer = -1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment rms_pool( [INFO] [stdout] input: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] output = sqrt(avg_pool(sqr(input), size = size, border = border, padding = padding, stride = stride, dilation = dilation)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment roi_resample( [INFO] [stdout] input: tensor, [INFO] [stdout] rois: tensor, [INFO] [stdout] batch_index: tensor, [INFO] [stdout] output_size: integer[], [INFO] [stdout] method: string = "symmetric" [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment round( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment rsqr( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ -2.0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment rsqrt( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ -0.5); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sample( [INFO] [stdout] input: tensor, [INFO] [stdout] index: tensor, [INFO] [stdout] size: integer[], [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment select( [INFO] [stdout] condition: tensor, [INFO] [stdout] true_value: tensor, [INFO] [stdout] false_value: tensor [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment separable_conv( [INFO] [stdout] input: tensor, [INFO] [stdout] plane_filter: tensor, [INFO] [stdout] point_filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] filtered = conv(input, plane_filter, border = border, padding = padding, stride = stride, dilation = dilation, groups = 0); [INFO] [stdout] output = conv(filtered, point_filter, bias, groups = groups); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment separable_deconv( [INFO] [stdout] input: tensor, [INFO] [stdout] plane_filter: tensor, [INFO] [stdout] point_filter: tensor, [INFO] [stdout] bias: tensor = 0.0, [INFO] [stdout] border: string = "constant", [INFO] [stdout] padding: (integer, integer)[] = [], [INFO] [stdout] stride: integer[] = [], [INFO] [stdout] dilation: integer[] = [], [INFO] [stdout] output_shape: integer[] = [], [INFO] [stdout] groups: integer = 1 [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] { [INFO] [stdout] filtered = deconv(input, point_filter, groups = groups); [INFO] [stdout] output = deconv(filtered, plane_filter, bias, border = border, padding = padding, stride = stride, dilation = dilation, output_shape = output_shape, groups = 0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sigmoid( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (1.0 / (1.0 + exp(-x))); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sign( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment sin( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment slice( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] begin: integer[], [INFO] [stdout] end: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment softabs( [INFO] [stdout] x: tensor, [INFO] [stdout] epsilon: scalar [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = sqrt((sqr(x) + epsilon)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment softmax( [INFO] [stdout] x: tensor, [INFO] [stdout] axes: integer[] = [1] [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] m = max_reduce(x, axes = axes); [INFO] [stdout] e = exp((x - m)); [INFO] [stdout] y = (e / sum_reduce(e, axes = axes)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment softplus( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = log((exp(x) + 1.0)); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment split( [INFO] [stdout] value: tensor, [INFO] [stdout] axis: integer, [INFO] [stdout] ratios: integer[] [INFO] [stdout] ) -> (values: tensor[]) [INFO] [stdout] ; [INFO] [stdout] fragment sqr( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ 2.0); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment sqrt( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = (x ^ 0.5); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment squeeze( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment stack( [INFO] [stdout] values: tensor[], [INFO] [stdout] axis: integer [INFO] [stdout] ) -> (value: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment sub( [INFO] [stdout] x: tensor, [INFO] [stdout] y: tensor [INFO] [stdout] ) -> (z: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment sum_reduce( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[], [INFO] [stdout] normalize: logical = false [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment tanh( [INFO] [stdout] x: tensor [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] y = ((exp(x) - exp(-x)) / (exp(x) + exp(-x))); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] fragment tile( [INFO] [stdout] input: tensor, [INFO] [stdout] repeats: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment transpose( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment unsqueeze( [INFO] [stdout] input: tensor, [INFO] [stdout] axes: integer[] [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment unstack( [INFO] [stdout] value: tensor, [INFO] [stdout] axis: integer [INFO] [stdout] ) -> (values: tensor[]) [INFO] [stdout] ; [INFO] [stdout] fragment update( [INFO] [stdout] variable: tensor, [INFO] [stdout] value: tensor [INFO] [stdout] ) -> (result: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment variable( [INFO] [stdout] shape: integer[], [INFO] [stdout] label: string [INFO] [stdout] ) -> (output: tensor) [INFO] [stdout] ; [INFO] [stdout] fragment zero_point_linear_quantize( [INFO] [stdout] x: tensor, [INFO] [stdout] zero_point: integer, [INFO] [stdout] scale: scalar, [INFO] [stdout] bits: integer, [INFO] [stdout] signed: logical, [INFO] [stdout] symmetric: logical [INFO] [stdout] ) -> (y: tensor) [INFO] [stdout] { [INFO] [stdout] z = (round((x / scale)) + scalar(zero_point)); [INFO] [stdout] r = scalar(((2 ^ (bits - 1)) - 1) if signed else ((2 ^ bits) - 1)); [INFO] [stdout] q = clamp(z, 0.0 if !signed else -r if symmetric else -(r - 1.0), r); [INFO] [stdout] y = ((q - scalar(zero_point)) * scale); [INFO] [stdout] } [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] thread 'parse_dump_parse_stdlib' panicked at 'assertion failed: `(left == right)` [INFO] [stdout] left: `FragmentDef { decl: FragmentDecl { id: "external", generic_decl: Some(Some(Scalar)), parameters: [Parameter { id: "shape", spec: Array(Single(Integer)), lit: None }], results: [Result_ { id: "output", spec: Tensor(Any) }] }, body: None }`, [INFO] [stdout] right: `FragmentDef { decl: FragmentDecl { id: "abs", generic_decl: None, parameters: [Parameter { id: "x", spec: Tensor(Scalar), lit: None }], results: [Result_ { id: "y", spec: Tensor(Scalar) }] }, body: None }`', tests/parse.rs:42:9 [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x55ba835d17f0 - std[77c0456e0eb29f0c]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5 [INFO] [stdout] 1: 0x55ba835d17f0 - std[77c0456e0eb29f0c]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 [INFO] [stdout] 2: 0x55ba835d17f0 - std[77c0456e0eb29f0c]::sys_common::backtrace::_print_fmt [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys_common/backtrace.rs:67:5 [INFO] [stdout] 3: 0x55ba835d17f0 - ::fmt [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys_common/backtrace.rs:46:22 [INFO] [stdout] 4: 0x55ba835f416c - core[ee1ca6415511a9c4]::fmt::write [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/core/src/fmt/mod.rs:1110:17 [INFO] [stdout] 5: 0x55ba835ce605 - as std[77c0456e0eb29f0c]::io::Write>::write_fmt [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/io/mod.rs:1584:15 [INFO] [stdout] 6: 0x55ba835d397b - std[77c0456e0eb29f0c]::sys_common::backtrace::_print [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys_common/backtrace.rs:49:5 [INFO] [stdout] 7: 0x55ba835d397b - std[77c0456e0eb29f0c]::sys_common::backtrace::print [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys_common/backtrace.rs:36:9 [INFO] [stdout] 8: 0x55ba835d397b - std[77c0456e0eb29f0c]::panicking::default_hook::{closure#1} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:208:50 [INFO] [stdout] 9: 0x55ba835d348c - std[77c0456e0eb29f0c]::panicking::default_hook [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:222:9 [INFO] [stdout] 10: 0x55ba835d4021 - std[77c0456e0eb29f0c]::panicking::rust_panic_with_hook [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:622:17 [INFO] [stdout] 11: 0x55ba835d3b27 - std[77c0456e0eb29f0c]::panicking::begin_panic_handler::{closure#0} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:519:13 [INFO] [stdout] 12: 0x55ba835d1cec - std[77c0456e0eb29f0c]::sys_common::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys_common/backtrace.rs:141:18 [INFO] [stdout] 13: 0x55ba835d3a89 - rust_begin_unwind [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:515:5 [INFO] [stdout] 14: 0x55ba834ca531 - core[ee1ca6415511a9c4]::panicking::panic_fmt [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/core/src/panicking.rs:92:14 [INFO] [stdout] 15: 0x55ba835f2a88 - core[ee1ca6415511a9c4]::panicking::assert_failed_inner [INFO] [stdout] 16: 0x55ba834cf3ea - core[ee1ca6415511a9c4]::panicking::assert_failed::<&tract_nnef[310214fddb2fc622]::ast::FragmentDef, &tract_nnef[310214fddb2fc622]::ast::FragmentDef> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/core/src/panicking.rs:117:5 [INFO] [stdout] 17: 0x55ba834d3852 - parse[e47d22800d35b890]::parse_dump_parse_stdlib [INFO] [stdout] at /opt/rustwide/workdir/tests/parse.rs:42:9 [INFO] [stdout] 18: 0x55ba834d314a - parse[e47d22800d35b890]::parse_dump_parse_stdlib::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/parse.rs:30:1 [INFO] [stdout] 19: 0x55ba834d2aee - >::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 20: 0x55ba834fa213 - >::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 21: 0x55ba834fa213 - test[eeb9024d9ac7bc83]::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/test/src/lib.rs:577:5 [INFO] [stdout] 22: 0x55ba834f8cdc - + core[ee1ca6415511a9c4]::marker::Send> as core[ee1ca6415511a9c4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/alloc/src/boxed.rs:1575:9 [INFO] [stdout] 23: 0x55ba834f8cdc - + core[ee1ca6415511a9c4]::marker::Send>> as core[ee1ca6415511a9c4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panic.rs:346:9 [INFO] [stdout] 24: 0x55ba834f8cdc - std[77c0456e0eb29f0c]::panicking::try::do_call:: + core[ee1ca6415511a9c4]::marker::Send>>, ()> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:401:40 [INFO] [stdout] 25: 0x55ba834f8cdc - std[77c0456e0eb29f0c]::panicking::try::<(), std[77c0456e0eb29f0c]::panic::AssertUnwindSafe + core[ee1ca6415511a9c4]::marker::Send>>> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:365:19 [INFO] [stdout] 26: 0x55ba834f8cdc - std[77c0456e0eb29f0c]::panic::catch_unwind:: + core[ee1ca6415511a9c4]::marker::Send>>, ()> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panic.rs:433:14 [INFO] [stdout] 27: 0x55ba834f8cdc - test[eeb9024d9ac7bc83]::run_test_in_process [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/test/src/lib.rs:600:18 [INFO] [stdout] 28: 0x55ba834f8cdc - test[eeb9024d9ac7bc83]::run_test::run_test_inner::{closure#0} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/test/src/lib.rs:492:39 [INFO] [stdout] 29: 0x55ba834d89a2 - test[eeb9024d9ac7bc83]::run_test::run_test_inner::{closure#1} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/test/src/lib.rs:519:37 [INFO] [stdout] 30: 0x55ba834d89a2 - std[77c0456e0eb29f0c]::sys_common::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys_common/backtrace.rs:125:18 [INFO] [stdout] 31: 0x55ba834d9288 - ::spawn_unchecked::::{closure#0}::{closure#0} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/thread/mod.rs:481:17 [INFO] [stdout] 32: 0x55ba834d9288 - ::spawn_unchecked::{closure#0}::{closure#0}> as core[ee1ca6415511a9c4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panic.rs:346:9 [INFO] [stdout] 33: 0x55ba834d9288 - std[77c0456e0eb29f0c]::panicking::try::do_call::::spawn_unchecked::{closure#0}::{closure#0}>, ()> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:401:40 [INFO] [stdout] 34: 0x55ba834d9288 - std[77c0456e0eb29f0c]::panicking::try::<(), std[77c0456e0eb29f0c]::panic::AssertUnwindSafe<::spawn_unchecked::{closure#0}::{closure#0}>> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panicking.rs:365:19 [INFO] [stdout] 35: 0x55ba834d9288 - std[77c0456e0eb29f0c]::panic::catch_unwind::::spawn_unchecked::{closure#0}::{closure#0}>, ()> [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/panic.rs:433:14 [INFO] [stdout] 36: 0x55ba834d9288 - ::spawn_unchecked::::{closure#0} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/thread/mod.rs:480:30 [INFO] [stdout] 37: 0x55ba834d9288 - <::spawn_unchecked::{closure#0} as core[ee1ca6415511a9c4]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/core/src/ops/function.rs:227:5 [INFO] [stdout] 38: 0x55ba835d8ad7 - > as core[ee1ca6415511a9c4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/alloc/src/boxed.rs:1575:9 [INFO] [stdout] 39: 0x55ba835d8ad7 - >> as core[ee1ca6415511a9c4]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/alloc/src/boxed.rs:1575:9 [INFO] [stdout] 40: 0x55ba835d8ad7 - ::new::thread_start [INFO] [stdout] at /rustc/ce59db7a1b1b012fb2793c4641c1bdecad7a128b/library/std/src/sys/unix/thread.rs:71:17 [INFO] [stdout] 41: 0x7fa2bffb7609 - start_thread [INFO] [stdout] 42: 0x7fa2bfd89293 - clone [INFO] [stdout] 43: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] parse_dump_parse_stdlib [INFO] [stdout] [INFO] [stdout] test result: FAILED. 3 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.27s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--test parse' [INFO] running `Command { std: "docker" "inspect" "b9f55a1183f59d7495e47779b9a4afd3fa26a898aa1c8fe23aa3d044fda37d48", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b9f55a1183f59d7495e47779b9a4afd3fa26a898aa1c8fe23aa3d044fda37d48", kill_on_drop: false }` [INFO] [stdout] b9f55a1183f59d7495e47779b9a4afd3fa26a898aa1c8fe23aa3d044fda37d48