charles-r-earp / autograph

A machine learning library for Rust.
Apache License 2.0
315 stars 17 forks source link

Tests fail on Mac OS Monterey, Rust 1.57 #46

Closed rjzak closed 2 years ago

rjzak commented 2 years ago

Tests fail to finish on M1 Mac

$ cargo test device_new --features device_tests
running 1 test
test device::tests::device_new has been running for over 60 seconds
error: test failed, to rerun pass '--lib'
Caused by:
  process didn't exit successfully: `/Users/rjzak/Downloads/autograph/target/debug/deps/autograph-868587c6365604da device_new` (signal: 9, SIGKILL: kill)

$ cargo test --features "full device_tests"
test device::buffer::tests::device_buffer_copy_from_slice has been running for over 60 seconds
test device::buffer::tests::device_buffer_serde has been running for over 60 seconds
test device::buffer::tests::fill_bf16 has been running for over 60 seconds
test device::buffer::tests::fill_f16 has been running for over 60 seconds
test device::buffer::tests::fill_f32 has been running for over 60 seconds
test device::buffer::tests::fill_f64 has been running for over 60 seconds
test device::buffer::tests::fill_i16 has been running for over 60 seconds
test device::buffer::tests::fill_i32 has been running for over 60 seconds
error: test failed, to rerun pass '--lib'
Caused by:
  process didn't exit successfully: `/Users/rjzak/Downloads/autograph/target/debug/deps/autograph-aa9dbc5e89ab94bc` (signal: 9, SIGKILL: kill)

$ uname -a
Darwin macmini.local 21.1.0 Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:24 PDT 2021; root:xnu-8019.41.5~1/RELEASE_ARM64_T8101 arm64
$ rustc --version
rustc 1.57.0 (f1edd0429 2021-11-29)
charles-r-earp commented 2 years ago

Thanks for creating the issue! Unfortunately I have no way to reproduce / debug it. However I did create a branch issue_46 with a bunch of dbg!'s to try to catch the issue.

Can you please run the test again on that branch?

Additionally, you can try a few other things. Try testing gfx_hal. After downloading, in the gfx directory do cargo run --bin compute --features metal.

There's additional getting started here https://github.com/gfx-rs/gfx/blob/master/info/getting_started.md

You can also see if you have / can install Vulkan. If you have it you can try running the tests again with --features gfx-backend-vulkan.

rjzak commented 2 years ago

I'm hoping I understood your instructions correctly.

% cargo test device_new --features device_tests
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 5.38s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
test device::tests::device_new has been running for over 60 seconds
error: test failed, to rerun pass '--lib'
Caused by:
  process didn't exit successfully: `/Users/rjzak/Downloads/autograph/target/debug/deps/autograph-868587c6365604da device_new` (signal: 9, SIGKILL: kill)
% git status
On branch issue_46
Your branch is up to date with 'origin/issue_46'.

nothing to commit, working tree clean

As for the glx library:

% xcode-select --print-path /Applications/Xcode.app/Contents/Developer
% cargo run --bin quad --features metal
AdapterInfo { name: "Apple M1", vendor: 0, device: 0, device_type: DiscreteGpu }
Memory types: [MemoryType { properties: DEVICE_LOCAL, heap_index: 0 }, MemoryType { properties: CPU_VISIBLE | COHERENT, heap_index: 1 }, MemoryType { properties: DEVICE_LOCAL | CPU_VISIBLE, heap_index: 1 }]
formats: Some([Bgra8Unorm, Bgra8Srgb, Rgba16Sfloat])
SwapchainConfig { present_mode: FIFO, composite_alpha_mode: INHERIT, format: Bgra8Srgb, extent: Extent2D { width: 1024, height: 768 }, image_count: 3, image_layers: 1, image_usage: COLOR_ATTACHMENT }
Error loading the previous pipeline cache data: No such file or directory (os error 2)
charles-r-earp commented 2 years ago

So gfx does appear to at least create the adapter. My guess is there's an infinite loop during initialization. :(

Sorry, I forgot to add that you need to pass --nocapture the test harness to see stderr output. Like this:

cargo test device_new --features device_tests -- --nocapture
rjzak commented 2 years ago
% cargo test device_new --features device_tests -- --nocapture
    Finished test [unoptimized + debuginfo] target(s) in 0.17s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
[src/device.rs:670] &builders = [
    DeviceInfo {
    name: "Apple M1",
    vendor: 0,
    device: 0,
    api: Metal,
    device_type: DiscreteGpu,
    memory: 18446744073472000000,
},
]
[src/device/engine.rs:388] adapter.queue_families.iter().filter(|f|
                                     f.queue_type() ==
                                         QueueType::Compute).chain(adapter.queue_families.iter().filter(|f|
                                                                                                              f.queue_type().supports_compute())).next().ok_or(DeviceError::DeviceUnsupported) = Ok(
QueueFamily,
)
[src/device/engine.rs:401] adapter.physical_device.open(&[(compute_family, &[1.])], Features::empty()) = Ok(
Gpu {
    device: Device {
        shared: Shared {
            device: Mutex {
                data: <AGXG13GDevice: 0x12e80ee00>
                    name = Apple M1,
            },
            queue: Mutex {
                data: QueueInner {
                    raw: <AGXG13GFamilyCommandQueue: 0x12e80c000>
                        label = <none> 
                        device = <AGXG13GDevice: 0x12e80ee00>
                            name = Apple M1,
                    reserve: 0..16384,
                    debug_retain_references: false,
                },
            },
            queue_blocker: Mutex {
                data: QueueBlocker {
                    submissions: [],
                },
            },
            service_pipes: ServicePipes {
                library: Mutex {
                    data: <_MTLLibrary: 0x600002a43400>
                        label = <none> 
                        device = <AGXG13GDevice: 0x12e80ee00>
                            name = Apple M1 
                        functionNames: ps_clear1_int ps_clear1_float ps_clear0_uint ps_clear0_int vs_clear ps_blit_2d_array_float ps_clear1_uint ps_blit_2d_int ps_blit_2d_depth ps_blit_2d_array_uint ps_clear0_float ps_blit_1d_array_float ps_blit_2d_float cs_fill_buffer ps_blit_2d_array_int ps_blit_2d_uint ps_blit_3d_float ps_blit_1d_float cs_copy_buffer vs_blit,
                },
                sampler_states: SamplerStates {
                    nearest: <AGXG13GFamilySampler: 0x600000e58320>
                        label = <none> 
                        device = <AGXG13GDevice: 0x12e80ee00>
                            name = Apple M1,
                    linear: <AGXG13GFamilySampler: 0x600000e583c0>
                        label = <none> 
                        device = <AGXG13GDevice: 0x12e80ee00>
                            name = Apple M1,
                },
                depth_stencil_states: DepthStencilStates {
                    map: 0x000000012df0a6e0,
                    write_none: DepthStencilDesc {
                        depth: None,
                        depth_bounds: false,
                        stencil: None,
                    },
                    write_depth: DepthStencilDesc {
                        depth: Some(
                            DepthTest {
                                fun: Always,
                                write: true,
                            },
                        ),
                        depth_bounds: false,
                        stencil: None,
                    },
                    write_stencil: DepthStencilDesc {
                        depth: None,
                        depth_bounds: false,
                        stencil: Some(
                            StencilTest {
                                faces: Sided {
                                    front: StencilFace {
                                        fun: Always,
                                        op_fail: Replace,
                                        op_depth_fail: Replace,
                                        op_pass: Replace,
                                    },
                                    back: StencilFace {
                                        fun: Always,
                                        op_fail: Replace,
                                        op_depth_fail: Replace,
                                        op_pass: Replace,
                                    },
                                },
                                read_masks: Static(
                                    Sided {
                                        front: 4294967295,
                                        back: 4294967295,
                                    },
                                ),
                                write_masks: Static(
                                    Sided {
                                        front: 4294967295,
                                        back: 4294967295,
                                    },
                                ),
                                reference_values: Static(
                                    Sided {
                                        front: 0,
                                        back: 0,
                                    },
                                ),
                            },
                        ),
                    },
                    write_all: DepthStencilDesc {
                        depth: Some(
                            DepthTest {
                                fun: Always,
                                write: true,
                            },
                        ),
                        depth_bounds: false,
                        stencil: Some(
                            StencilTest {
                                faces: Sided {
                                    front: StencilFace {
                                        fun: Always,
                                        op_fail: Replace,
                                        op_depth_fail: Replace,
                                        op_pass: Replace,
                                    },
                                    back: StencilFace {
                                        fun: Always,
                                        op_fail: Replace,
                                        op_depth_fail: Replace,
                                        op_pass: Replace,
                                    },
                                },
                                read_masks: Static(
                                    Sided {
                                        front: 4294967295,
                                        back: 4294967295,
                                    },
                                ),
                                write_masks: Static(
                                    Sided {
                                        front: 4294967295,
                                        back: 4294967295,
                                    },
                                ),
                                reference_values: Static(
                                    Sided {
                                        front: 0,
                                        back: 0,
                                    },
                                ),
                            },
                        ),
                    },
                },
                clears: ImageClearPipes {
                    map: 0x000000012df0a7c8,
                },
                blits: ImageBlitPipes {
                    map: 0x000000012df0a7f0,
                },
                copy_buffer: <AGXG13GFamilyComputePipeline: 0x12df092d0>
                    label = <none> 
                    device = <AGXG13GDevice: 0x12e80ee00>
                        name = Apple M1,
                fill_buffer: <AGXG13GFamilyComputePipeline: 0x12df09eb0>
                    label = <none> 
                    device = <AGXG13GDevice: 0x12e80ee00>
                        name = Apple M1,
            },
            disabilities: PrivateDisabilities {
                broken_viewport_near_depth: false,
                broken_layered_clear_image: false,
            },
            private_caps: PrivateCapabilities {
                os_is_mac: true,
                os_version: (
                    12,
                    1,
                ),
                msl_version: V2_2,
                exposed_queues: 1,
                read_write_texture_tier: Tier2,
                expose_line_mode: true,
                resource_heaps: true,
                argument_buffers: false,
                shared_textures: false,
                mutable_comparison_samplers: true,
                sampler_clamp_to_border: true,
                base_instance: true,
                base_vertex_instance_drawing: true,
                dual_source_blending: true,
                low_power: false,
                headless: false,
                layered_rendering: true,
                function_specialization: true,
                depth_clip_mode: true,
                texture_cube_array: true,
                format_depth24_stencil8: false,
                format_depth32_stencil8_filter: true,
                format_depth32_stencil8_none: false,
                format_min_srgb_channels: 4,
                format_b5: false,
                format_bc: true,
                format_eac_etc: false,
                format_astc: true,
                format_any8_unorm_srgb_all: true,
                format_any8_unorm_srgb_no_write: false,
                format_any8_snorm_all: true,
                format_r16_norm_all: true,
                format_r32_all: false,
                format_r32_no_write: true,
                format_r32float_no_write_no_filter: false,
                format_r32float_no_filter: false,
                format_r32float_all: true,
                format_rgba8_srgb_all: true,
                format_rgba8_srgb_no_write: false,
                format_rgb10a2_unorm_all: true,
                format_rgb10a2_unorm_no_write: false,
                format_rgb10a2_uint_color: false,
                format_rgb10a2_uint_color_write: true,
                format_rg11b10_all: true,
                format_rg11b10_no_write: false,
                format_rgb9e5_all: true,
                format_rgb9e5_no_write: false,
                format_rgb9e5_filter_only: true,
                format_rg32_color: true,
                format_rg32_color_write: false,
                format_rg32float_all: true,
                format_rg32float_color_blend: true,
                format_rg32float_no_filter: false,
                format_rgba32int_color: true,
                format_rgba32int_color_write: false,
                format_rgba32float_color: true,
                format_rgba32float_color_write: false,
                format_rgba32float_all: true,
                format_depth16unorm: true,
                format_depth32float_filter: true,
                format_depth32float_none: false,
                format_bgr10a2_all: true,
                format_bgr10a2_no_write: false,
                max_buffers_per_stage: 31,
                max_textures_per_stage: 128,
                max_samplers_per_stage: 16,
                buffer_alignment: 256,
                max_buffer_size: 1073741824,
                max_texture_size: 16384,
                max_texture_3d_size: 2048,
                max_texture_layers: 2048,
                max_fragment_input_components: 128,
                max_color_render_targets: 8,
                max_total_threadgroup_memory: 65536,
                sample_count_mask: 7,
                supports_debug_markers: true,
                supports_binary_archives: false,
            },
            visibility: VisibilityShared {
                buffer: <AGXG13GFamilyBuffer: 0x12df06dc0>
                    label = <none> 
                    length = 196608 
                    cpuCacheMode = MTLCPUCacheModeDefaultCache 
                    storageMode = MTLStorageModeShared 
                    hazardTrackingMode = MTLHazardTrackingModeTracked 
                    resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeShared MTLResourceHazardTrackingModeTracked  
                    purgeableState = MTLPurgeableStateNonVolatile,
                allocator: Mutex {
                    data: RangeAllocator {
                        initial_range: 0..16384,
                        free_ranges: [
                            0..16384,
                        ],
                    },
                },
                availability_offset: 131072,
                condvar: Condvar { .. },
            },
        },
        invalidation_queue: QueueInner {
            raw: <AGXG13GFamilyCommandQueue: 0x138808200>
                label = <none> 
                device = <AGXG13GDevice: 0x12e80ee00>
                    name = Apple M1,
            reserve: 0..1,
            debug_retain_references: false,
        },
        memory_types: [
            MemoryType {
                properties: DEVICE_LOCAL,
                heap_index: 0,
            },
            MemoryType {
                properties: CPU_VISIBLE | COHERENT,
                heap_index: 1,
            },
            MemoryType {
                properties: DEVICE_LOCAL | CPU_VISIBLE,
                heap_index: 1,
            },
        ],
        features: (empty),
        online_recording: Immediate,
    },
    queue_groups: [
        QueueGroup {
            family: QueueFamilyId(
                0,
            ),
            queues: [
                Queue {
                    shared: Shared {
                        device: Mutex {
                            data: <AGXG13GDevice: 0x12e80ee00>
                                name = Apple M1,
                        },
                        queue: Mutex {
                            data: QueueInner {
                                raw: <AGXG13GFamilyCommandQueue: 0x12e80c000>
                                    label = <none> 
                                    device = <AGXG13GDevice: 0x12e80ee00>
                                        name = Apple M1,
                                reserve: 0..16384,
                                debug_retain_references: false,
                            },
                        },
                        queue_blocker: Mutex {
                            data: QueueBlocker {
                                submissions: [],
                            },
                        },
                        service_pipes: ServicePipes {
                            library: Mutex {
                                data: <_MTLLibrary: 0x600002a43400>
                                    label = <none> 
                                    device = <AGXG13GDevice: 0x12e80ee00>
                                        name = Apple M1 
                                    functionNames: ps_clear1_int ps_clear1_float ps_clear0_uint ps_clear0_int vs_clear ps_blit_2d_array_float ps_clear1_uint ps_blit_2d_int ps_blit_2d_depth ps_blit_2d_array_uint ps_clear0_float ps_blit_1d_array_float ps_blit_2d_float cs_fill_buffer ps_blit_2d_array_int ps_blit_2d_uint ps_blit_3d_float ps_blit_1d_float cs_copy_buffer vs_blit,
                            },
                            sampler_states: SamplerStates {
                                nearest: <AGXG13GFamilySampler: 0x600000e58320>
                                    label = <none> 
                                    device = <AGXG13GDevice: 0x12e80ee00>
                                        name = Apple M1,
                                linear: <AGXG13GFamilySampler: 0x600000e583c0>
                                    label = <none> 
                                    device = <AGXG13GDevice: 0x12e80ee00>
                                        name = Apple M1,
                            },
                            depth_stencil_states: DepthStencilStates {
                                map: 0x000000012df0a6e0,
                                write_none: DepthStencilDesc {
                                    depth: None,
                                    depth_bounds: false,
                                    stencil: None,
                                },
                                write_depth: DepthStencilDesc {
                                    depth: Some(
                                        DepthTest {
                                            fun: Always,
                                            write: true,
                                        },
                                    ),
                                    depth_bounds: false,
                                    stencil: None,
                                },
                                write_stencil: DepthStencilDesc {
                                    depth: None,
                                    depth_bounds: false,
                                    stencil: Some(
                                        StencilTest {
                                            faces: Sided {
                                                front: StencilFace {
                                                    fun: Always,
                                                    op_fail: Replace,
                                                    op_depth_fail: Replace,
                                                    op_pass: Replace,
                                                },
                                                back: StencilFace {
                                                    fun: Always,
                                                    op_fail: Replace,
                                                    op_depth_fail: Replace,
                                                    op_pass: Replace,
                                                },
                                            },
                                            read_masks: Static(
                                                Sided {
                                                    front: 4294967295,
                                                    back: 4294967295,
                                                },
                                            ),
                                            write_masks: Static(
                                                Sided {
                                                    front: 4294967295,
                                                    back: 4294967295,
                                                },
                                            ),
                                            reference_values: Static(
                                                Sided {
                                                    front: 0,
                                                    back: 0,
                                                },
                                            ),
                                        },
                                    ),
                                },
                                write_all: DepthStencilDesc {
                                    depth: Some(
                                        DepthTest {
                                            fun: Always,
                                            write: true,
                                        },
                                    ),
                                    depth_bounds: false,
                                    stencil: Some(
                                        StencilTest {
                                            faces: Sided {
                                                front: StencilFace {
                                                    fun: Always,
                                                    op_fail: Replace,
                                                    op_depth_fail: Replace,
                                                    op_pass: Replace,
                                                },
                                                back: StencilFace {
                                                    fun: Always,
                                                    op_fail: Replace,
                                                    op_depth_fail: Replace,
                                                    op_pass: Replace,
                                                },
                                            },
                                            read_masks: Static(
                                                Sided {
                                                    front: 4294967295,
                                                    back: 4294967295,
                                                },
                                            ),
                                            write_masks: Static(
                                                Sided {
                                                    front: 4294967295,
                                                    back: 4294967295,
                                                },
                                            ),
                                            reference_values: Static(
                                                Sided {
                                                    front: 0,
                                                    back: 0,
                                                },
                                            ),
                                        },
                                    ),
                                },
                            },
                            clears: ImageClearPipes {
                                map: 0x000000012df0a7c8,
                            },
                            blits: ImageBlitPipes {
                                map: 0x000000012df0a7f0,
                            },
                            copy_buffer: <AGXG13GFamilyComputePipeline: 0x12df092d0>
                                label = <none> 
                                device = <AGXG13GDevice: 0x12e80ee00>
                                    name = Apple M1,
                            fill_buffer: <AGXG13GFamilyComputePipeline: 0x12df09eb0>
                                label = <none> 
                                device = <AGXG13GDevice: 0x12e80ee00>
                                    name = Apple M1,
                        },
                        disabilities: PrivateDisabilities {
                            broken_viewport_near_depth: false,
                            broken_layered_clear_image: false,
                        },
                        private_caps: PrivateCapabilities {
                            os_is_mac: true,
                            os_version: (
                                12,
                                1,
                            ),
                            msl_version: V2_2,
                            exposed_queues: 1,
                            read_write_texture_tier: Tier2,
                            expose_line_mode: true,
                            resource_heaps: true,
                            argument_buffers: false,
                            shared_textures: false,
                            mutable_comparison_samplers: true,
                            sampler_clamp_to_border: true,
                            base_instance: true,
                            base_vertex_instance_drawing: true,
                            dual_source_blending: true,
                            low_power: false,
                            headless: false,
                            layered_rendering: true,
                            function_specialization: true,
                            depth_clip_mode: true,
                            texture_cube_array: true,
                            format_depth24_stencil8: false,
                            format_depth32_stencil8_filter: true,
                            format_depth32_stencil8_none: false,
                            format_min_srgb_channels: 4,
                            format_b5: false,
                            format_bc: true,
                            format_eac_etc: false,
                            format_astc: true,
                            format_any8_unorm_srgb_all: true,
                            format_any8_unorm_srgb_no_write: false,
                            format_any8_snorm_all: true,
                            format_r16_norm_all: true,
                            format_r32_all: false,
                            format_r32_no_write: true,
                            format_r32float_no_write_no_filter: false,
                            format_r32float_no_filter: false,
                            format_r32float_all: true,
                            format_rgba8_srgb_all: true,
                            format_rgba8_srgb_no_write: false,
                            format_rgb10a2_unorm_all: true,
                            format_rgb10a2_unorm_no_write: false,
                            format_rgb10a2_uint_color: false,
                            format_rgb10a2_uint_color_write: true,
                            format_rg11b10_all: true,
                            format_rg11b10_no_write: false,
                            format_rgb9e5_all: true,
                            format_rgb9e5_no_write: false,
                            format_rgb9e5_filter_only: true,
                            format_rg32_color: true,
                            format_rg32_color_write: false,
                            format_rg32float_all: true,
                            format_rg32float_color_blend: true,
                            format_rg32float_no_filter: false,
                            format_rgba32int_color: true,
                            format_rgba32int_color_write: false,
                            format_rgba32float_color: true,
                            format_rgba32float_color_write: false,
                            format_rgba32float_all: true,
                            format_depth16unorm: true,
                            format_depth32float_filter: true,
                            format_depth32float_none: false,
                            format_bgr10a2_all: true,
                            format_bgr10a2_no_write: false,
                            max_buffers_per_stage: 31,
                            max_textures_per_stage: 128,
                            max_samplers_per_stage: 16,
                            buffer_alignment: 256,
                            max_buffer_size: 1073741824,
                            max_texture_size: 16384,
                            max_texture_3d_size: 2048,
                            max_texture_layers: 2048,
                            max_fragment_input_components: 128,
                            max_color_render_targets: 8,
                            max_total_threadgroup_memory: 65536,
                            sample_count_mask: 7,
                            supports_debug_markers: true,
                            supports_binary_archives: false,
                        },
                        visibility: VisibilityShared {
                            buffer: <AGXG13GFamilyBuffer: 0x12df06dc0>
                                label = <none> 
                                length = 196608 
                                cpuCacheMode = MTLCPUCacheModeDefaultCache 
                                storageMode = MTLStorageModeShared 
                                hazardTrackingMode = MTLHazardTrackingModeTracked 
                                resourceOptions = MTLResourceCPUCacheModeDefaultCache MTLResourceStorageModeShared MTLResourceHazardTrackingModeTracked  
                                purgeableState = MTLPurgeableStateNonVolatile,
                            allocator: Mutex {
                                data: RangeAllocator {
                                    initial_range: 0..16384,
                                    free_ranges: [
                                        0..16384,
                                    ],
                                },
                            },
                            availability_offset: 131072,
                            condvar: Condvar { .. },
                        },
                    },
                    retained_buffers: [],
                    retained_textures: [],
                    active_visibility_queries: [],
                    perf_counters: None,
                    stitch_deferred: true,
                    insert_dummy_encoders: false,
                },
            ],
        },
    ],
},
)
test device::tests::device_new has been running for over 60 seconds
error: test failed, to rerun pass '--lib'

Caused by:
  process didn't exit successfully: `/Users/rjzak/Downloads/autograph/target/debug/deps/autograph-868587c6365604da device_new --nocapture` (signal: 9, SIGKILL: kill
charles-r-earp commented 2 years ago

Awesome! I think I found the issue. Can you pull the changes and retry please? It looks like I requested CPU_CACHED for host memory when that is not always available.

rjzak commented 2 years ago
% cargo test device_new --features device_tests -- --nocapture
    Updating crates.io index
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
error[E0432]: unresolved import `gfx_backend_empty`
  --> src/device/engine.rs:97:5
   |
97 | use gfx_backend_empty::Backend as Metal;
   |     ^^^^^^^^^^^^^^^^^ use of undeclared crate or module `gfx_backend_empty`
   |
help: there is a crate or module with a similar name
   |
97 | use gfx_backend_metal::Backend as Metal;
   |     ~~~~~~~~~~~~~~~~~

For more information about this error, try `rustc --explain E0432`.
error: could not compile `autograph` due to previous error
charles-r-earp commented 2 years ago

I appreciate your patience. I think that wasn't the latest commit. Anyway, I removed the empty backend because it isn't helpful and I added some more dbg!'s.

rjzak commented 2 years ago

I appreciate your willingness to support macOS!

% RUST_BACKTRACE=1 cargo test device_new --features device_tests -- --nocapture
    Finished test [unoptimized + debuginfo] target(s) in 0.07s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
thread 'device::tests::device_new' panicked at 'attempt to multiply with overflow', src/device/engine.rs:1159:9
stack backtrace:
   0: rust_begin_unwind
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:517:5
   1: core::panicking::panic_fmt
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/panicking.rs:100:14
   2: core::panicking::panic
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/panicking.rs:50:5
   3: autograph::device::engine::AllocatorConfig::storage_memory
             at ./src/device/engine.rs:1159:9
   4: autograph::device::engine::builders::EngineBuilderBase<B>::memory
             at ./src/device/engine.rs:333:13
   5: autograph::device::engine::builders::DynEngineBuilder::memory
             at ./src/device/engine.rs:297:50
   6: autograph::device::engine::builders::EngineBuilder::memory
             at ./src/device/engine.rs:286:41
   7: <autograph::device::builders::DeviceBuilder as core::convert::From<autograph::device::engine::builders::EngineBuilder>>::from
             at ./src/device.rs:202:25
   8: <T as core::convert::Into<U>>::into
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/convert/mod.rs:542:9
   9: core::ops::function::FnMut::call_mut
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:150:5
  10: core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:280:13
  11: core::option::Option<T>::map
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/option.rs:848:29
  12: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/iter/adapters/map.rs:103:9
  13: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/alloc/src/vec/spec_from_iter_nested.rs:23:32
  14: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/alloc/src/vec/spec_from_iter.rs:33:9
  15: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/alloc/src/vec/mod.rs:2517:9
  16: core::iter::traits::iterator::Iterator::collect
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/iter/traits/iterator.rs:1745:9
  17: autograph::device::Device::new::new_impl
             at ./src/device.rs:668:40
  18: autograph::device::Device::new
             at ./src/device.rs:688:21
  19: autograph::device::tests::device_new
             at ./src/device.rs:808:9
  20: autograph::device::tests::device_new::{{closure}}
             at ./src/device.rs:807:5
  21: core::ops::function::FnOnce::call_once
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:227:5
  22: core::ops::function::FnOnce::call_once
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test device::tests::device_new ... FAILED

failures:

failures:
    device::tests::device_new

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 44 filtered out; finished in 0.08s
charles-r-earp commented 2 years ago

Ok so I found some potential issues. This really needs unit tests because there are at least a few different common setups for host / device memory. Typical discrete gpus have a big DEVICE_LOCAL heap, a small DEVICE_LOCAL | CPU_VISIBLE heap, and a CPU_VISIBLE | COHERENT and potentially CPU_CACHED heap. But for integrated gpus and the M1, it may be different, with more DEVICE_LOCAL | CPU_VISIBLE memory in addition to DEVICE_LOCAL memory alone. The impl was intended to handle this but without tests it got neglected. This should have tests for known configs, as this is not only necessary to run on M1 but also iGPU's and mobile chips as well.

rjzak commented 2 years ago

Device test passed, running all tests failed (22 passed, 135 failed, 2 ignored, 0 measured, 0 filtered out)

$ cargo test device_new --features device_tests
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 9.80s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
test device::tests::device_new ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 49 filtered out; finished in 0.04s

$ cargo test --features "full device_tests"
   Compiling autograph_derive v0.1.0 (/Users/rjzak/Downloads/autograph/autograph_derive)
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 14.33s
     Running unittests (target/debug/deps/autograph-aa9dbc5e89ab94bc)

running 159 tests
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::fill_i16 ... FAILED
test device::buffer::tests::fill_f32 ... FAILED
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_i8 ... FAILED
test device::buffer::tests::fill_bf16 ... FAILED
test device::buffer::tests::fill_f16 ... FAILED
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::fill_u16 ... FAILED
test device::buffer::tests::fill_u32 ... FAILED
test device::buffer::tests::fill_i32 ... FAILED
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::fill_u8 ... FAILED
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::scale::bf16::bf16 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::scale::f32::bf16 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::i32::bf16 ... FAILED
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::scale::u32::bf16 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::buffer::tests::scale::u16::bf16 ... FAILED
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::buffer::tests::scale::u8::f32 ... FAILED
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::buffer::tests::scale::u8::bf16 ... FAILED
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::tests::device_new ... ok
test learn::neural_network::autograd::tests::bias_backward_f32 ... FAILED
test learn::neural_network::autograd::tests::bias_backward_bf16 ... FAILED
test learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 ... FAILED
test learn::kmeans::tests::compute_distances_f32_m11_k5_n13 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::relu_backward_bf16 ... FAILED
test learn::neural_network::layer::tests::relu_bf16 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::relu_backward_f32 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_f32 ... FAILED
test learn::neural_network::layer::tests::relu_f32 ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N ... FAILED
test tensor::accuracy::tests::accuracy_u32 ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T ... FAILED
test device::tests::device_builder_iter_build ... ok
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N ... FAILED
test tensor::ops::tests::im2col_convolution_bf16 ... ignored
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N ... FAILED
test tensor::reduce::tests::atomic_add_u32 ... FAILED
test tensor::ops::tests::im2col_convolution_f32 ... FAILED
test tensor::ops::tests::col2im_convolution_f32 ... FAILED
test tensor::reduce::tests::atomic_add_i32 ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 ... FAILED
test tensor::reorder::tests::into_standard_layout_4d_u32 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_11x12_axis0 ... FAILED
test tensor::tests::one_hot_u16_f32 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 ... FAILED
test tensor::tests::one_hot_u16_i32 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_22x23_axis1 ... FAILED
test tensor::tests::one_hot_u16_u32 ... FAILED
test tensor::tests::one_hot_u16_bf16 ... FAILED
test tensor::tests::one_hot_u32_bf16 ... FAILED
test tensor::tests::one_hot_u32_f32 ... FAILED
test tensor::tests::one_hot_u32_i32 ... FAILED
test tensor::tests::one_hot_u32_u32 ... FAILED
test tensor::tests::one_hot_u8_bf16 ... FAILED
test tensor::tests::scaled_cast_bf16_bf16 ... FAILED
test tensor::tests::one_hot_u8_u32 ... FAILED
test tensor::tests::scaled_cast_bf16_f32 ... FAILED
test tensor::tests::scaled_cast_bf16_u32 ... FAILED
test tensor::tests::one_hot_u8_f32 ... FAILED
test tensor::tests::scaled_cast_i32_i32 ... FAILED
test tensor::tests::one_hot_u8_i32 ... FAILED
test tensor::tests::scaled_cast_i32_f32 ... FAILED
test tensor::tests::scaled_cast_i32_bf16 ... FAILED
test tensor::tests::scaled_cast_bf16_i32 ... FAILED
test tensor::tests::scaled_cast_i32_u32 ... FAILED
test tensor::reorder::tests::into_standard_layout_6d_u32 ... FAILED
test tensor::tests::scaled_cast_u16_bf16 ... FAILED
test tensor::tests::scaled_cast_u16_f32 ... FAILED
test tensor::tests::scaled_cast_u32_bf16 ... FAILED
test tensor::tests::scaled_cast_u32_f32 ... FAILED
test tensor::tests::scaled_cast_u8_bf16 ... FAILED
test tensor::tests::scaled_cast_u32_i32 ... FAILED
test tensor::tests::scaled_cast_u16_u32 ... FAILED
test tensor::tests::scaled_cast_u16_i32 ... FAILED
test tensor::tests::scaled_cast_u32_u32 ... FAILED
test tensor::tests::scaled_cast_u8_u32 ... FAILED
test tensor::tests::scaled_cast_u8_i32 ... FAILED
test tensor::tests::tensor_from_array2 ... ok
test tensor::tests::tensor_from_array3 ... ok
test tensor::tests::tensor_from_array0 ... ok
test tensor::tests::tensor_from_array1 ... ok
test tensor::tests::scaled_cast_u8_f32 ... FAILED
test tensor::tests::tensor_from_array4 ... ok
test util::tests::size_eq ... ok
test tensor::tests::tensor_serde_device ... FAILED
test util::tests::type_eq ... ok
test tensor::tests::tensor_from_array6 ... ok
test tensor::tests::test_from_array5 ... ok
test tensor::tests::tensor_serde_host ... ok
test tensor::tests::tensor_from_arrayD ... ok
test device::shader::tests::shader_module_from_spirv ... ok

failures:

---- device::buffer::tests::fill_i16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i8 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_f16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_f64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u8 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::bf16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::bf16::bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::bf16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::bf16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::f32::bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::f32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::i32::bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::i32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::f32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::i32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::i32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::f32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u32::bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u16::bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u8::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u8::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::u32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u8::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::scale::u8::bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::bias_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::autograd::tests::bias_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::bias_backward_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::autograd::tests::bias_backward_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 stdout ----
Error: ShaderCompilationFailed
thread 'learn::kmeans::tests::compute_distances_bf16_m11_k5_n13' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::kmeans::tests::compute_distances_f32_m11_k5_n13 stdout ----
Error: ShaderCompilationFailed
thread 'learn::kmeans::tests::compute_distances_f32_m11_k5_n13' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::max_pool_2d_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::mean_pool_2d_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::max_pool_2d_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_backward_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::relu_backward_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::relu_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::mean_pool_2d_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::relu_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::cross_entropy_loss_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::autograd::tests::cross_entropy_loss_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::relu_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::accuracy::tests::accuracy_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::accuracy::tests::accuracy_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::atomic_add_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::atomic_add_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::im2col_convolution_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::ops::tests::im2col_convolution_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::col2im_convolution_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::ops::tests::col2im_convolution_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::atomic_add_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::atomic_add_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_f32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_u32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_i32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_f32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_f32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_i32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_i32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_u32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_bf16_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_f32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_f32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_u32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_u32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_i32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_4d_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reorder::tests::into_standard_layout_4d_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_f32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_i32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_u32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_bf16_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_i32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_u32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_6d_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reorder::tests::into_standard_layout_6d_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::tensor_serde_device stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::tensor_serde_device' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

failures:
    device::buffer::tests::fill_bf16
    device::buffer::tests::fill_f16
    device::buffer::tests::fill_f32
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i16
    device::buffer::tests::fill_i32
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u16
    device::buffer::tests::fill_u32
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::bf16
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::bf16
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::bf16
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::bf16
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::bf16
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::bf16
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    learn::kmeans::tests::compute_distances_bf16_m11_k5_n13
    learn::kmeans::tests::compute_distances_f32_m11_k5_n13
    learn::neural_network::autograd::tests::bias_backward_bf16
    learn::neural_network::autograd::tests::bias_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_f32
    learn::neural_network::layer::tests::max_pool_2d_backward_f32
    learn::neural_network::layer::tests::max_pool_2d_f32
    learn::neural_network::layer::tests::mean_pool_2d_backward_f32
    learn::neural_network::layer::tests::mean_pool_2d_f32
    learn::neural_network::layer::tests::relu_backward_bf16
    learn::neural_network::layer::tests::relu_backward_f32
    learn::neural_network::layer::tests::relu_bf16
    learn::neural_network::layer::tests::relu_f32
    tensor::accuracy::tests::accuracy_u32
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N
    tensor::ops::tests::col2im_convolution_f32
    tensor::ops::tests::im2col_convolution_f32
    tensor::reduce::tests::atomic_add_i32
    tensor::reduce::tests::atomic_add_u32
    tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmax_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_u32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmin_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_u32_22x23_axis1
    tensor::reduce::tests::tensor_sum_bf16_11x12_axis0
    tensor::reduce::tests::tensor_sum_bf16_22x23_axis1
    tensor::reduce::tests::tensor_sum_f32_11x12_axis0
    tensor::reduce::tests::tensor_sum_f32_22x23_axis1
    tensor::reduce::tests::tensor_sum_i32_11x12_axis0
    tensor::reduce::tests::tensor_sum_i32_22x23_axis1
    tensor::reduce::tests::tensor_sum_u32_11x12_axis0
    tensor::reduce::tests::tensor_sum_u32_22x23_axis1
    tensor::reorder::tests::into_standard_layout_4d_u32
    tensor::reorder::tests::into_standard_layout_6d_u32
    tensor::tests::one_hot_u16_bf16
    tensor::tests::one_hot_u16_f32
    tensor::tests::one_hot_u16_i32
    tensor::tests::one_hot_u16_u32
    tensor::tests::one_hot_u32_bf16
    tensor::tests::one_hot_u32_f32
    tensor::tests::one_hot_u32_i32
    tensor::tests::one_hot_u32_u32
    tensor::tests::one_hot_u8_bf16
    tensor::tests::one_hot_u8_f32
    tensor::tests::one_hot_u8_i32
    tensor::tests::one_hot_u8_u32
    tensor::tests::scaled_cast_bf16_bf16
    tensor::tests::scaled_cast_bf16_f32
    tensor::tests::scaled_cast_bf16_i32
    tensor::tests::scaled_cast_bf16_u32
    tensor::tests::scaled_cast_i32_bf16
    tensor::tests::scaled_cast_i32_f32
    tensor::tests::scaled_cast_i32_i32
    tensor::tests::scaled_cast_i32_u32
    tensor::tests::scaled_cast_u16_bf16
    tensor::tests::scaled_cast_u16_f32
    tensor::tests::scaled_cast_u16_i32
    tensor::tests::scaled_cast_u16_u32
    tensor::tests::scaled_cast_u32_bf16
    tensor::tests::scaled_cast_u32_f32
    tensor::tests::scaled_cast_u32_i32
    tensor::tests::scaled_cast_u32_u32
    tensor::tests::scaled_cast_u8_bf16
    tensor::tests::scaled_cast_u8_f32
    tensor::tests::scaled_cast_u8_i32
    tensor::tests::scaled_cast_u8_u32
    tensor::tests::tensor_serde_device

test result: FAILED. 22 passed; 135 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.23s

error: test failed, to rerun pass '--lib'
$ git log -1
commit 52568a31a800022feeb21680ccbaf284c6b705b8 (HEAD -> main, origin/main, origin/HEAD)
Merge: 1c41c0d 17428bb
Author: charles-r-earp <charles.r.earp@gmail.com>
Date:   Sun Dec 19 10:28:19 2021 -0800

    Merge pull request #47 from charles-r-earp/issue_46

    Improved AllocatorConfig and tests
charles-r-earp commented 2 years ago

Hmmm, my guess is Metal doesn't support atomic device scope instructions. Can you try running the Hello Compute example? You have to replace the call to zeros with alloc (wrapped in an unsafe block) so it won't require the core module. I'll also see if I can post a fix that will disable the atomics to see if that works.

charles-r-earp commented 2 years ago

Ok so I recreated a new #issue_46 branch, I disabled everything using atomics and confirmed all the tests passed and the neural network example runs, though slower now. Let me know if that works. There should hopefully be a workaround but I will have to do more research. If this does work it is possible to use a different module for Metal / Mac, ideally check to see if it's supported.

rjzak commented 2 years ago

No-go.

failures:
    device::buffer::tests::fill_bf16
    device::buffer::tests::fill_f16
    device::buffer::tests::fill_f32
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i16
    device::buffer::tests::fill_i32
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u16
    device::buffer::tests::fill_u32
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    learn::kmeans::tests::compute_distances_bf16_m11_k5_n13
    learn::kmeans::tests::compute_distances_f32_m11_k5_n13
    learn::neural_network::autograd::tests::bias_backward_bf16
    learn::neural_network::autograd::tests::bias_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_f32
    learn::neural_network::layer::tests::max_pool_2d_backward_f32
    learn::neural_network::layer::tests::max_pool_2d_f32
    learn::neural_network::layer::tests::mean_pool_2d_backward_f32
    learn::neural_network::layer::tests::mean_pool_2d_f32
    learn::neural_network::layer::tests::relu_backward_f32
    learn::neural_network::layer::tests::relu_f32
    tensor::accuracy::tests::accuracy_u32
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N
    tensor::ops::tests::col2im_convolution_f32
    tensor::ops::tests::im2col_convolution_f32
    tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmax_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_u32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmin_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_u32_22x23_axis1
    tensor::reduce::tests::tensor_sum_bf16_11x12_axis0
    tensor::reduce::tests::tensor_sum_bf16_22x23_axis1
    tensor::reduce::tests::tensor_sum_f32_11x12_axis0
    tensor::reduce::tests::tensor_sum_f32_22x23_axis1
    tensor::reduce::tests::tensor_sum_i32_11x12_axis0
    tensor::reduce::tests::tensor_sum_i32_22x23_axis1
    tensor::reduce::tests::tensor_sum_u32_11x12_axis0
    tensor::reduce::tests::tensor_sum_u32_22x23_axis1
    tensor::reorder::tests::into_standard_layout_4d_u32
    tensor::reorder::tests::into_standard_layout_6d_u32
    tensor::tests::one_hot_u16_bf16
    tensor::tests::one_hot_u16_f32
    tensor::tests::one_hot_u16_i32
    tensor::tests::one_hot_u16_u32
    tensor::tests::one_hot_u32_bf16
    tensor::tests::one_hot_u32_f32
    tensor::tests::one_hot_u32_i32
    tensor::tests::one_hot_u32_u32
    tensor::tests::one_hot_u8_bf16
    tensor::tests::one_hot_u8_f32
    tensor::tests::one_hot_u8_i32
    tensor::tests::one_hot_u8_u32
    tensor::tests::scaled_cast_bf16_f32
    tensor::tests::scaled_cast_bf16_i32
    tensor::tests::scaled_cast_bf16_u32
    tensor::tests::scaled_cast_i32_f32
    tensor::tests::scaled_cast_i32_i32
    tensor::tests::scaled_cast_i32_u32
    tensor::tests::scaled_cast_u16_f32
    tensor::tests::scaled_cast_u16_i32
    tensor::tests::scaled_cast_u16_u32
    tensor::tests::scaled_cast_u32_f32
    tensor::tests::scaled_cast_u32_i32
    tensor::tests::scaled_cast_u32_u32
    tensor::tests::scaled_cast_u8_f32
    tensor::tests::scaled_cast_u8_i32
    tensor::tests::scaled_cast_u8_u32
    tensor::tests::tensor_serde_device

test result: FAILED. 22 passed; 120 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.21s

error: test failed, to rerun pass '--lib'
$ git log -1
commit a7cb14bc6b705d10bb010fb7f6d76a422cf6ed11 (HEAD, origin/issue_46)
Author: charles-r-earp <charles.r.earp@gmail.com>
Date:   Mon Dec 20 08:42:42 2021 -0800

    Disabled atomic ops to run on Metal.
charles-r-earp commented 2 years ago

Ok try pulling it again and do cargo test --features device_tests fill_u32. Then do cargo test --features "full device_tests" --no-fail-fast.

rjzak commented 2 years ago
 $ cargo test --features device_tests fill_u32
    Finished test [unoptimized + debuginfo] target(s) in 0.07s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
test device::buffer::tests::fill_u32 ... FAILED

failures:

---- device::buffer::tests::fill_u32 stdout ----
[src/device/engine.rs:1866] &self.entry = "fill::fill_u32x2"
[src/device/engine.rs:1867] e = ShaderCreationError(
    COMPUTE,
    "Error compiling the shader \"Naga parsing: InvalidAccessType(235)\"",
)
[src/device/engine.rs:1755] name = Some(
    "core",
)
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    device::buffer::tests::fill_u32

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 43 filtered out; finished in 0.11s

error: test failed, to rerun pass '--lib'
$ RUST_BACKTRACE=1 cargo test --features device_tests fill_u32
    Finished test [unoptimized + debuginfo] target(s) in 0.06s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
test device::buffer::tests::fill_u32 ... FAILED

failures:

---- device::buffer::tests::fill_u32 stdout ----
[src/device/engine.rs:1866] &self.entry = "fill::fill_u32x2"
[src/device/engine.rs:1867] e = ShaderCreationError(
    COMPUTE,
    "Error compiling the shader \"Naga parsing: InvalidAccessType(235)\"",
)
[src/device/engine.rs:1755] name = Some(
    "core",
)
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
stack backtrace:
   0: rust_begin_unwind
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/std/src/panicking.rs:517:5
   1: core::panicking::panic_fmt
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/panicking.rs:100:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/panicking.rs:138:5
   4: test::assert_test_result
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
   5: autograph::device::buffer::tests::fill_u32::{{closure}}
             at ./src/device/buffer.rs:1594:11
   6: core::ops::function::FnOnce::call_once
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:227:5
   7: core::ops::function::FnOnce::call_once
             at /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

failures:
    device::buffer::tests::fill_u32

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 43 filtered out; finished in 0.14s

error: test failed, to rerun pass '--lib'
$ git log -1
commit a7cb14bc6b705d10bb010fb7f6d76a422cf6ed11 (HEAD)
Author: charles-r-earp <charles.r.earp@gmail.com>
Date:   Mon Dec 20 08:42:42 2021 -0800

    Disabled atomic ops to run on Metal.
charles-r-earp commented 2 years ago

Yikes! Can you run all the tests with cargo test --features "full device_tests" --no-fail-fast ?

rjzak commented 2 years ago

Ooops... I wasn't on the right revision.

% RUST_BACKTRACE=1 cargo test --features device_tests fill_u32
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 2.88s
     Running unittests (target/debug/deps/autograph-868587c6365604da)

running 1 test
test device::buffer::tests::fill_u32 ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 43 filtered out; finished in 0.12s

$ git log -1
commit 31a7249cac875b6e8d3ef8b54bb2060cee974198 (HEAD -> issue_46, origin/issue_46)
Author: charles-r-earp <charles.r.earp@gmail.com>
Date:   Mon Dec 20 10:10:48 2021 -0800

    Testing fill_u32
$ cargo test --features "full device_tests" --no-fail-fast
   Compiling autograph_derive v0.1.0 (/Users/rjzak/Downloads/autograph/autograph_derive)
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 6.25s
     Running unittests (target/debug/deps/autograph-aa9dbc5e89ab94bc)

running 144 tests
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_i16 ... ok
test device::buffer::tests::fill_bf16 ... ok
test device::buffer::tests::fill_f32 ... ok
test device::buffer::tests::fill_i32 ... ok
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::fill_f16 ... ok
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::fill_u16 ... ok
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::fill_u32 ... ok
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::buffer::tests::scale::u8::f32 ... FAILED
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::tests::device_new ... ok
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::shader::tests::shader_module_from_spirv ... ok
test device::tests::device_builder_iter_build ... ok
test learn::neural_network::autograd::tests::bias_backward_bf16 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 ... FAILED
test learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_backward_f32 ... FAILED
test device::buffer::tests::fill_i8 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_f32 ... FAILED
test device::buffer::tests::fill_u8 ... FAILED
test learn::neural_network::autograd::tests::bias_backward_f32 ... FAILED
test learn::neural_network::layer::tests::relu_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::relu_backward_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_f32 ... FAILED
test tensor::accuracy::tests::accuracy_u32 ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N ... FAILED
test learn::kmeans::tests::compute_distances_f32_m11_k5_n13 ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N ... FAILED
test tensor::ops::tests::im2col_convolution_bf16 ... ignored
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N ... FAILED
test tensor::ops::tests::col2im_convolution_f32 ... FAILED
test tensor::ops::tests::im2col_convolution_f32 ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 ... FAILED
test tensor::reorder::tests::into_standard_layout_4d_u32 ... FAILED
test tensor::tests::one_hot_u16_bf16 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_22x23_axis1 ... FAILED
test tensor::reorder::tests::into_standard_layout_6d_u32 ... FAILED
test tensor::tests::one_hot_u16_f32 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_22x23_axis1 ... FAILED
test tensor::tests::one_hot_u16_i32 ... FAILED
test tensor::tests::one_hot_u32_i32 ... FAILED
test tensor::tests::one_hot_u32_u32 ... FAILED
test tensor::tests::one_hot_u16_u32 ... FAILED
test tensor::tests::one_hot_u32_f32 ... FAILED
test tensor::tests::one_hot_u32_bf16 ... FAILED
test tensor::tests::one_hot_u8_bf16 ... FAILED
test tensor::tests::one_hot_u8_u32 ... FAILED
test tensor::tests::one_hot_u8_i32 ... FAILED
test tensor::tests::scaled_cast_bf16_f32 ... FAILED
test tensor::tests::scaled_cast_i32_f32 ... FAILED
test tensor::tests::one_hot_u8_f32 ... FAILED
test tensor::tests::scaled_cast_bf16_i32 ... FAILED
test tensor::tests::scaled_cast_i32_u32 ... FAILED
test tensor::tests::scaled_cast_i32_i32 ... FAILED
test tensor::tests::scaled_cast_u16_f32 ... FAILED
test tensor::tests::scaled_cast_u16_u32 ... FAILED
test tensor::tests::scaled_cast_bf16_u32 ... FAILED
test tensor::tests::scaled_cast_u16_i32 ... FAILED
test tensor::tests::scaled_cast_u8_f32 ... FAILED
test tensor::tests::scaled_cast_u8_i32 ... FAILED
test tensor::tests::scaled_cast_u32_i32 ... FAILED
test tensor::tests::scaled_cast_u8_u32 ... FAILED
test tensor::tests::tensor_from_array0 ... ok
test tensor::tests::scaled_cast_u32_f32 ... FAILED
test tensor::tests::scaled_cast_u32_u32 ... FAILED
test tensor::tests::tensor_from_array1 ... ok
test tensor::tests::tensor_from_array2 ... ok
test tensor::tests::tensor_from_array4 ... ok
test tensor::tests::tensor_from_array3 ... ok
test tensor::tests::tensor_serde_device ... FAILED
test util::tests::size_eq ... ok
test tensor::tests::tensor_serde_host ... ok
test util::tests::type_eq ... ok
test tensor::tests::test_from_array5 ... ok
test tensor::tests::tensor_from_array6 ... ok
test tensor::tests::tensor_from_arrayD ... ok

failures:

---- device::buffer::tests::fill_f64 stdout ----
Error: Entry not found "fill::fill_u32x2"!
thread 'device::buffer::tests::fill_f64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_i64 stdout ----
Error: Entry not found "fill::fill_u32x2"!
thread 'device::buffer::tests::fill_i64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u64 stdout ----
Error: Entry not found "fill::fill_u32x2"!
thread 'device::buffer::tests::fill_u64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::f32 stdout ----
Error: Entry not found "cast::scale_bf16_f32"!
thread 'device::buffer::tests::scale::bf16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::i32 stdout ----
Error: Entry not found "cast::scale_bf16_i32"!
thread 'device::buffer::tests::scale::bf16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::i32 stdout ----
Error: Entry not found "cast::scale_f32_i32"!
thread 'device::buffer::tests::scale::f32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::u32 stdout ----
Error: Entry not found "cast::scale_bf16_u32"!
thread 'device::buffer::tests::scale::bf16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::f32 stdout ----
Error: Entry not found "cast::scale_f32_f32"!
thread 'device::buffer::tests::scale::f32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::f32 stdout ----
Error: Entry not found "cast::scale_i32_f32"!
thread 'device::buffer::tests::scale::i32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::u32 stdout ----
Error: Entry not found "cast::scale_f32_u32"!
thread 'device::buffer::tests::scale::f32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::u32 stdout ----
Error: Entry not found "cast::scale_i32_u32"!
thread 'device::buffer::tests::scale::i32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::i32 stdout ----
Error: Entry not found "cast::scale_i32_i32"!
thread 'device::buffer::tests::scale::i32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::u32 stdout ----
Error: Entry not found "cast::scale_u16_u32"!
thread 'device::buffer::tests::scale::u16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::i32 stdout ----
Error: Entry not found "cast::scale_u16_i32"!
thread 'device::buffer::tests::scale::u16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::f32 stdout ----
Error: Entry not found "cast::scale_u16_f32"!
thread 'device::buffer::tests::scale::u16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::i32 stdout ----
Error: Entry not found "cast::scale_u32_i32"!
thread 'device::buffer::tests::scale::u32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::u32 stdout ----
Error: Entry not found "cast::scale_u32_u32"!
thread 'device::buffer::tests::scale::u32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::f32 stdout ----
Error: Entry not found "cast::scale_u32_f32"!
thread 'device::buffer::tests::scale::u32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::f32 stdout ----
Error: Entry not found "cast::scale_u8_f32"!
thread 'device::buffer::tests::scale::u8::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::u32 stdout ----
Error: Entry not found "cast::scale_u8_u32"!
thread 'device::buffer::tests::scale::u8::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::i32 stdout ----
Error: Entry not found "cast::scale_u8_i32"!
thread 'device::buffer::tests::scale::u8::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::bias_backward_bf16 stdout ----
Error: Entry not found "cast::scale_bf16_f32"!
thread 'learn::neural_network::autograd::tests::bias_backward_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 stdout ----
Error: Entry not found "criterion::cross_entropy_loss_backward_f32"!
thread 'learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 stdout ----
Error: Entry not found "cast::scale_bf16_f32"!
thread 'learn::kmeans::tests::compute_distances_bf16_m11_k5_n13' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_backward_f32 stdout ----
Error: Entry not found "pool::max_pool_indices_2d_f32"!
thread 'learn::neural_network::layer::tests::max_pool_2d_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i8 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::cross_entropy_loss_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::autograd::tests::cross_entropy_loss_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u8 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_u8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::bias_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::autograd::tests::bias_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::relu_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::max_pool_2d_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::mean_pool_2d_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::relu_backward_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_f32 stdout ----
Error: ShaderCompilationFailed
thread 'learn::neural_network::layer::tests::mean_pool_2d_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::accuracy::tests::accuracy_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::accuracy::tests::accuracy_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::kmeans::tests::compute_distances_f32_m11_k5_n13 stdout ----
Error: ShaderCompilationFailed
thread 'learn::kmeans::tests::compute_distances_f32_m11_k5_n13' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::col2im_convolution_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::ops::tests::col2im_convolution_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::im2col_convolution_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::ops::tests::im2col_convolution_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_f32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_f32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_u32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_i32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_i32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_f32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmax_u32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_u32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_i32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_u32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_bf16_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_i32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_f32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_argmin_f32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_f32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_i32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_u32_11x12_axis0' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_bf16_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_4d_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reorder::tests::into_standard_layout_4d_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_i32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_6d_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reorder::tests::into_standard_layout_6d_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::reduce::tests::tensor_sum_u32_22x23_axis1' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u16_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u32_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::one_hot_u8_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_i32_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_bf16_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u16_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u8_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::scaled_cast_u32_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::tensor_serde_device stdout ----
Error: ShaderCompilationFailed
thread 'tensor::tests::tensor_serde_device' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

failures:
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    learn::kmeans::tests::compute_distances_bf16_m11_k5_n13
    learn::kmeans::tests::compute_distances_f32_m11_k5_n13
    learn::neural_network::autograd::tests::bias_backward_bf16
    learn::neural_network::autograd::tests::bias_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_f32
    learn::neural_network::layer::tests::max_pool_2d_backward_f32
    learn::neural_network::layer::tests::max_pool_2d_f32
    learn::neural_network::layer::tests::mean_pool_2d_backward_f32
    learn::neural_network::layer::tests::mean_pool_2d_f32
    learn::neural_network::layer::tests::relu_backward_f32
    learn::neural_network::layer::tests::relu_f32
    tensor::accuracy::tests::accuracy_u32
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N
    tensor::ops::tests::col2im_convolution_f32
    tensor::ops::tests::im2col_convolution_f32
    tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmax_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_u32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmin_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_u32_22x23_axis1
    tensor::reduce::tests::tensor_sum_bf16_11x12_axis0
    tensor::reduce::tests::tensor_sum_bf16_22x23_axis1
    tensor::reduce::tests::tensor_sum_f32_11x12_axis0
    tensor::reduce::tests::tensor_sum_f32_22x23_axis1
    tensor::reduce::tests::tensor_sum_i32_11x12_axis0
    tensor::reduce::tests::tensor_sum_i32_22x23_axis1
    tensor::reduce::tests::tensor_sum_u32_11x12_axis0
    tensor::reduce::tests::tensor_sum_u32_22x23_axis1
    tensor::reorder::tests::into_standard_layout_4d_u32
    tensor::reorder::tests::into_standard_layout_6d_u32
    tensor::tests::one_hot_u16_bf16
    tensor::tests::one_hot_u16_f32
    tensor::tests::one_hot_u16_i32
    tensor::tests::one_hot_u16_u32
    tensor::tests::one_hot_u32_bf16
    tensor::tests::one_hot_u32_f32
    tensor::tests::one_hot_u32_i32
    tensor::tests::one_hot_u32_u32
    tensor::tests::one_hot_u8_bf16
    tensor::tests::one_hot_u8_f32
    tensor::tests::one_hot_u8_i32
    tensor::tests::one_hot_u8_u32
    tensor::tests::scaled_cast_bf16_f32
    tensor::tests::scaled_cast_bf16_i32
    tensor::tests::scaled_cast_bf16_u32
    tensor::tests::scaled_cast_i32_f32
    tensor::tests::scaled_cast_i32_i32
    tensor::tests::scaled_cast_i32_u32
    tensor::tests::scaled_cast_u16_f32
    tensor::tests::scaled_cast_u16_i32
    tensor::tests::scaled_cast_u16_u32
    tensor::tests::scaled_cast_u32_f32
    tensor::tests::scaled_cast_u32_i32
    tensor::tests::scaled_cast_u32_u32
    tensor::tests::scaled_cast_u8_f32
    tensor::tests::scaled_cast_u8_i32
    tensor::tests::scaled_cast_u8_u32
    tensor::tests::tensor_serde_device

test result: FAILED. 29 passed; 113 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.30s

   Doc-tests autograph

running 3 tests
test src/device.rs - device::Device::builder_iter (line 701) - compile ... ok
test src/lib.rs - buffer (line 59) - compile ... ok
test src/learn.rs - learn::neural_network (line 26) - compile ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
charles-r-earp commented 2 years ago

Ok well at least some of the shaders appear to work. Sorry, can you run them one at a time with cargo test --features "full device_tests" --no-fail-fast -- --test-threads 1 ? The rust shaders are in one big module so if there's one bad instruction nothing will work, but the glsl shaders are separate.

rjzak commented 2 years ago
$ cargo test --features "full device_tests" --no-fail-fast -- --test-threads 1
    Finished test [unoptimized + debuginfo] target(s) in 0.08s
     Running unittests (target/debug/deps/autograph-aa9dbc5e89ab94bc)

running 144 tests
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::fill_bf16 ... ok
test device::buffer::tests::fill_f16 ... ok
test device::buffer::tests::fill_f32 ... ok
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::fill_i16 ... ok
test device::buffer::tests::fill_i32 ... ok
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_i8 ... ok
test device::buffer::tests::fill_u16 ... ok
test device::buffer::tests::fill_u32 ... ok
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::fill_u8 ... ok
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::buffer::tests::scale::u8::f32 ... FAILED
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::shader::tests::shader_module_from_spirv ... ok
test device::tests::device_builder_iter_build ... ok
test device::tests::device_new ... ok
test learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 ... FAILED
test learn::kmeans::tests::compute_distances_f32_m11_k5_n13 ... FAILED
test learn::neural_network::autograd::tests::bias_backward_bf16 ... FAILED
test learn::neural_network::autograd::tests::bias_backward_f32 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::relu_backward_f32 ... FAILED
test learn::neural_network::layer::tests::relu_f32 ... FAILED
test tensor::accuracy::tests::accuracy_u32 ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N ... FAILED
test tensor::ops::tests::col2im_convolution_f32 ... FAILED
test tensor::ops::tests::im2col_convolution_bf16 ... ignored
test tensor::ops::tests::im2col_convolution_f32 ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_22x23_axis1 ... FAILED
test tensor::reorder::tests::into_standard_layout_4d_u32 ... FAILED
test tensor::reorder::tests::into_standard_layout_6d_u32 ... FAILED
test tensor::tests::one_hot_u16_bf16 ... FAILED
test tensor::tests::one_hot_u16_f32 ... FAILED
test tensor::tests::one_hot_u16_i32 ... FAILED
test tensor::tests::one_hot_u16_u32 ... FAILED
test tensor::tests::one_hot_u32_bf16 ... FAILED
test tensor::tests::one_hot_u32_f32 ... FAILED
test tensor::tests::one_hot_u32_i32 ... FAILED
test tensor::tests::one_hot_u32_u32 ... FAILED
test tensor::tests::one_hot_u8_bf16 ... FAILED
test tensor::tests::one_hot_u8_f32 ... FAILED
test tensor::tests::one_hot_u8_i32 ... FAILED
test tensor::tests::one_hot_u8_u32 ... FAILED
test tensor::tests::scaled_cast_bf16_f32 ... FAILED
test tensor::tests::scaled_cast_bf16_i32 ... FAILED
test tensor::tests::scaled_cast_bf16_u32 ... FAILED
test tensor::tests::scaled_cast_i32_f32 ... FAILED
test tensor::tests::scaled_cast_i32_i32 ... FAILED
test tensor::tests::scaled_cast_i32_u32 ... FAILED
test tensor::tests::scaled_cast_u16_f32 ... FAILED
test tensor::tests::scaled_cast_u16_i32 ... FAILED
test tensor::tests::scaled_cast_u16_u32 ... FAILED
test tensor::tests::scaled_cast_u32_f32 ... FAILED
test tensor::tests::scaled_cast_u32_i32 ... FAILED
test tensor::tests::scaled_cast_u32_u32 ... FAILED
test tensor::tests::scaled_cast_u8_f32 ... FAILED
test tensor::tests::scaled_cast_u8_i32 ... FAILED
test tensor::tests::scaled_cast_u8_u32 ... FAILED
test tensor::tests::tensor_from_array0 ... ok
test tensor::tests::tensor_from_array1 ... ok
test tensor::tests::tensor_from_array2 ... ok
test tensor::tests::tensor_from_array3 ... ok
test tensor::tests::tensor_from_array4 ... ok
test tensor::tests::tensor_from_array6 ... ok
test tensor::tests::tensor_from_arrayD ... ok
test tensor::tests::tensor_serde_device ... FAILED
test tensor::tests::tensor_serde_host ... ok
test tensor::tests::test_from_array5 ... ok
test util::tests::size_eq ... ok
test util::tests::type_eq ... ok

failures:

---- device::buffer::tests::fill_f64 stdout ----
Error: Entry not found "fill::fill_u32x2"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_i64 stdout ----
Error: Entry not found "fill::fill_u32x2"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u64 stdout ----
Error: Entry not found "fill::fill_u32x2"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::f32 stdout ----
Error: Entry not found "cast::scale_bf16_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::i32 stdout ----
Error: Entry not found "cast::scale_bf16_i32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::u32 stdout ----
Error: Entry not found "cast::scale_bf16_u32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::f32 stdout ----
Error: Entry not found "cast::scale_f32_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::i32 stdout ----
Error: Entry not found "cast::scale_f32_i32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::u32 stdout ----
Error: Entry not found "cast::scale_f32_u32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::f32 stdout ----
Error: Entry not found "cast::scale_i32_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::i32 stdout ----
Error: Entry not found "cast::scale_i32_i32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::u32 stdout ----
Error: Entry not found "cast::scale_i32_u32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::f32 stdout ----
Error: Entry not found "cast::scale_u16_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::i32 stdout ----
Error: Entry not found "cast::scale_u16_i32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::u32 stdout ----
Error: Entry not found "cast::scale_u16_u32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::f32 stdout ----
Error: Entry not found "cast::scale_u32_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::i32 stdout ----
Error: Entry not found "cast::scale_u32_i32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::u32 stdout ----
Error: Entry not found "cast::scale_u32_u32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::f32 stdout ----
Error: Entry not found "cast::scale_u8_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::i32 stdout ----
Error: Entry not found "cast::scale_u8_i32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::u32 stdout ----
Error: Entry not found "cast::scale_u8_u32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 stdout ----
Error: Entry not found "cast::scale_bf16_f32"!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::kmeans::tests::compute_distances_f32_m11_k5_n13 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::bias_backward_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::bias_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::autograd::tests::cross_entropy_loss_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_backward_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::relu_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::accuracy::tests::accuracy_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::col2im_convolution_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::im2col_convolution_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_11x12_axis0 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_22x23_axis1 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_4d_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_6d_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_f32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_i32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_u32 stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::tensor_serde_device stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

failures:
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_u64
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    learn::kmeans::tests::compute_distances_bf16_m11_k5_n13
    learn::kmeans::tests::compute_distances_f32_m11_k5_n13
    learn::neural_network::autograd::tests::bias_backward_bf16
    learn::neural_network::autograd::tests::bias_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_f32
    learn::neural_network::layer::tests::max_pool_2d_backward_f32
    learn::neural_network::layer::tests::max_pool_2d_f32
    learn::neural_network::layer::tests::mean_pool_2d_backward_f32
    learn::neural_network::layer::tests::mean_pool_2d_f32
    learn::neural_network::layer::tests::relu_backward_f32
    learn::neural_network::layer::tests::relu_f32
    tensor::accuracy::tests::accuracy_u32
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N
    tensor::ops::tests::col2im_convolution_f32
    tensor::ops::tests::im2col_convolution_f32
    tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmax_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_u32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmin_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_u32_22x23_axis1
    tensor::reduce::tests::tensor_sum_bf16_11x12_axis0
    tensor::reduce::tests::tensor_sum_bf16_22x23_axis1
    tensor::reduce::tests::tensor_sum_f32_11x12_axis0
    tensor::reduce::tests::tensor_sum_f32_22x23_axis1
    tensor::reduce::tests::tensor_sum_i32_11x12_axis0
    tensor::reduce::tests::tensor_sum_i32_22x23_axis1
    tensor::reduce::tests::tensor_sum_u32_11x12_axis0
    tensor::reduce::tests::tensor_sum_u32_22x23_axis1
    tensor::reorder::tests::into_standard_layout_4d_u32
    tensor::reorder::tests::into_standard_layout_6d_u32
    tensor::tests::one_hot_u16_bf16
    tensor::tests::one_hot_u16_f32
    tensor::tests::one_hot_u16_i32
    tensor::tests::one_hot_u16_u32
    tensor::tests::one_hot_u32_bf16
    tensor::tests::one_hot_u32_f32
    tensor::tests::one_hot_u32_i32
    tensor::tests::one_hot_u32_u32
    tensor::tests::one_hot_u8_bf16
    tensor::tests::one_hot_u8_f32
    tensor::tests::one_hot_u8_i32
    tensor::tests::one_hot_u8_u32
    tensor::tests::scaled_cast_bf16_f32
    tensor::tests::scaled_cast_bf16_i32
    tensor::tests::scaled_cast_bf16_u32
    tensor::tests::scaled_cast_i32_f32
    tensor::tests::scaled_cast_i32_i32
    tensor::tests::scaled_cast_i32_u32
    tensor::tests::scaled_cast_u16_f32
    tensor::tests::scaled_cast_u16_i32
    tensor::tests::scaled_cast_u16_u32
    tensor::tests::scaled_cast_u32_f32
    tensor::tests::scaled_cast_u32_i32
    tensor::tests::scaled_cast_u32_u32
    tensor::tests::scaled_cast_u8_f32
    tensor::tests::scaled_cast_u8_i32
    tensor::tests::scaled_cast_u8_u32
    tensor::tests::tensor_serde_device

test result: FAILED. 31 passed; 111 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.22s

   Doc-tests autograph

running 3 tests
test src/device.rs - device::Device::builder_iter (line 701) - compile ... ok
test src/learn.rs - learn::neural_network (line 26) - compile ... ok
test src/lib.rs - buffer (line 59) - compile ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.38s
charles-r-earp commented 2 years ago

Ok so that didn't actually work as expected. Anyway, I was pretty sure that it was the atomic ops. Metal does support some atomic operations, but not atomic_or (used in glsl impls for storing bf16) and atomic_compare_exchange (Metal has atomic_compare_exchange_weak which should work fine). So I think if I use atomic_compare_exchange_weak it will work.

However, it turns out that gfx-hal (the base API that I used to abstract over the 3 backends) uses spirv_cross to compile spirv to hlsl, but for whatever reason uses naga by default to compile for metal. Naga is a Rust cross compilation tool, but it doesn't support everything yet, and does not appear to support atomic operations at all. So I should be able to use spirv_cross instead, which should fix the issue, at the very least it should be able to parse the spirv as it has worked on dx12, but there may still be limitations / some things that don't translate to metal. So I'm working on trying validate this at shader compile time to catch issues like this. I should be able to check that it will compile to metal and hlsl cross platform, including testing on CI as well.

But hopefully with a few small changes everything should work correctly without separate impls.

Eventually I would like to fix the issue with shader compilation at runtime poisoning the device, it would be potentially nicer if it blocked instead. This way you could try different versions with different capabilities / extensions, it would be more flexible.

charles-r-earp commented 2 years ago

I think I may have fixed this. Let me know if it works.

rjzak commented 2 years ago
$ cargo test --features "full device_tests" --no-fail-fast -- --test-threads 1
  Downloaded gfx-auxil v0.10.0
  Downloaded 1 crate (2.7 KB) in 0.64s
   Compiling spirv_cross v0.23.1
   Compiling naga v0.5.0
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
   Compiling gfx-hal v0.9.0
   Compiling gfx-auxil v0.10.0
   Compiling gfx-backend-metal v0.9.1
    Finished test [unoptimized + debuginfo] target(s) in 28.52s
     Running unittests (target/debug/deps/autograph-5973af03f676f633)

running 159 tests
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::fill_bf16 ... FAILED
test device::buffer::tests::fill_f16 ... FAILED
test device::buffer::tests::fill_f32 ... FAILED
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::fill_i16 ... FAILED
test device::buffer::tests::fill_i32 ... FAILED
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_i8 ... FAILED
test device::buffer::tests::fill_u16 ... FAILED
test device::buffer::tests::fill_u32 ... FAILED
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::fill_u8 ... FAILED
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::buffer::tests::scale::u8::f32 ... FAILED
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::shader::tests::shader_module_from_spirv ... ok
test device::tests::device_builder_iter_build ... ok
test device::tests::device_new ... ok
test glsl_shaders::tests::to_hlsl ... ok
test glsl_shaders::tests::to_metal ... ok
test learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 ... FAILED
test learn::kmeans::tests::compute_distances_f32_m11_k5_n13 ... ok
test learn::neural_network::autograd::tests::bias_backward_bf16 ... FAILED
test learn::neural_network::autograd::tests::bias_backward_f32 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 ... FAILED
test learn::neural_network::autograd::tests::cross_entropy_loss_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_backward_atomic_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::max_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_backward_atomic_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_backward_f32 ... FAILED
test learn::neural_network::layer::tests::mean_pool_2d_f32 ... FAILED
test learn::neural_network::layer::tests::relu_backward_bf16 ... FAILED
test learn::neural_network::layer::tests::relu_backward_f32 ... FAILED
test learn::neural_network::layer::tests::relu_bf16 ... FAILED
test learn::neural_network::layer::tests::relu_f32 ... FAILED
test rust_shaders::tests::core_to_hlsl ... ok
test rust_shaders::tests::core_to_metal ... ok
test tensor::accuracy::tests::accuracy_u32 ... ok
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_N ... ok
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T ... FAILED
test tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N ... FAILED
test tensor::ops::tests::col2im_convolution_f32 ... FAILED
test tensor::ops::tests::im2col_convolution_bf16 ... ignored
test tensor::ops::tests::im2col_convolution_f32 ... FAILED
test tensor::reduce::tests::atomic_add_f32 ... ignored
test tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_f32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_i32_22x23_axis1 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_11x12_axis0 ... FAILED
test tensor::reduce::tests::tensor_sum_u32_22x23_axis1 ... FAILED
test tensor::reorder::tests::into_standard_layout_4d_u32 ... FAILED
test tensor::reorder::tests::into_standard_layout_6d_u32 ... FAILED
test tensor::reorder::tests::reorder_2d_f32_f32 ... FAILED
test tensor::tests::one_hot_u16_bf16 ... FAILED
test tensor::tests::one_hot_u16_f32 ... FAILED
test tensor::tests::one_hot_u16_i32 ... FAILED
test tensor::tests::one_hot_u16_u32 ... FAILED
test tensor::tests::one_hot_u32_bf16 ... FAILED
test tensor::tests::one_hot_u32_f32 ... FAILED
test tensor::tests::one_hot_u32_i32 ... FAILED
test tensor::tests::one_hot_u32_u32 ... FAILED
test tensor::tests::one_hot_u8_bf16 ... FAILED
test tensor::tests::one_hot_u8_f32 ... FAILED
test tensor::tests::one_hot_u8_i32 ... FAILED
test tensor::tests::one_hot_u8_u32 ... FAILED
test tensor::tests::scaled_cast_bf16_bf16 ... FAILED
test tensor::tests::scaled_cast_bf16_f32 ... FAILED
test tensor::tests::scaled_cast_bf16_i32 ... FAILED
test tensor::tests::scaled_cast_bf16_u32 ... FAILED
test tensor::tests::scaled_cast_i32_bf16 ... FAILED
test tensor::tests::scaled_cast_i32_f32 ... FAILED
test tensor::tests::scaled_cast_i32_i32 ... FAILED
test tensor::tests::scaled_cast_i32_u32 ... FAILED
test tensor::tests::scaled_cast_u16_bf16 ... FAILED
test tensor::tests::scaled_cast_u16_f32 ... FAILED
test tensor::tests::scaled_cast_u16_i32 ... FAILED
test tensor::tests::scaled_cast_u16_u32 ... FAILED
test tensor::tests::scaled_cast_u32_bf16 ... FAILED
test tensor::tests::scaled_cast_u32_f32 ... FAILED
test tensor::tests::scaled_cast_u32_i32 ... FAILED
test tensor::tests::scaled_cast_u32_u32 ... FAILED
test tensor::tests::scaled_cast_u8_bf16 ... FAILED
test tensor::tests::scaled_cast_u8_f32 ... FAILED
test tensor::tests::scaled_cast_u8_i32 ... FAILED
test tensor::tests::scaled_cast_u8_u32 ... FAILED
test tensor::tests::tensor_from_array0 ... ok
test tensor::tests::tensor_from_array1 ... ok
test tensor::tests::tensor_from_array2 ... ok
test tensor::tests::tensor_from_array3 ... ok
test tensor::tests::tensor_from_array4 ... ok
test tensor::tests::tensor_from_array6 ... ok
test tensor::tests::tensor_from_arrayD ... ok
test tensor::tests::tensor_serde_device ... FAILED
test tensor::tests::tensor_serde_host ... ok
test tensor::tests::test_from_array5 ... ok
test util::tests::size_eq ... ok
test util::tests::type_eq ... ok

failures:

---- device::buffer::tests::fill_bf16 stdout ----
thread 'main' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.125', src/device/buffer.rs:1535:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_f16 stdout ----
thread 'main' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.109375', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_f32 stdout ----
thread 'main' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_f64 stdout ----
thread 'main' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i16 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i32 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i64 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i8 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u16 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u32 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u64 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u8 stdout ----
thread 'main' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::scale::bf16::f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::bf16::i32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::bf16::u32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::f32::f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::f32::i32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::f32::u32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::i32::f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::i32::i32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::i32::u32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u16::f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u16::i32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u16::u32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u32::f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u32::i32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u32::u32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u8::f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u8::i32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u8::u32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[1, 2, 3, 4, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 stdout ----
thread 'main' panicked at 'assert_relative_eq!(y, y_true, epsilon = 0.01, max_relative = 0.01)

    left  = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], shape=[11, 13], strides=[13, 1], layout=Cc (0x5), const ndim=2
    right = [[285.0, 2160.0, 6285.0, 12660.0, 21285.0, 27760.0, 285.0, 660.0, 3285.0, 8160.0, 15285.0, 24660.0, 24685.0],
 [4660.0, 1285.0, 160.0, 1285.0, 4660.0, 12885.0, 8160.0, 3285.0, 660.0, 285.0, 2160.0, 6285.0, 15060.0],
 [21285.0, 12660.0, 6285.0, 2160.0, 285.0, 10260.0, 28285.0, 18160.0, 10285.0, 4660.0, 1285.0, 160.0, 17685.0],
 [160.0, 1285.0, 4660.0, 10285.0, 18160.0, 24885.0, 660.0, 285.0, 2160.0, 6285.0, 12660.0, 21285.0, 22560.0],
 [6285.0, 2160.0, 285.0, 660.0, 3285.0, 11760.0, 10285.0, 4660.0, 1285.0, 160.0, 1285.0, 4660.0, 14685.0],
 [19060.0, 12685.0, 8560.0, 6685.0, 7060.0, 285.0, 24560.0, 16685.0, 11060.0, 7685.0, 6560.0, 7685.0, 9460.0],
 [285.0, 660.0, 3285.0, 8160.0, 15285.0, 22260.0, 1285.0, 160.0, 1285.0, 4660.0, 10285.0, 18160.0, 20685.0],
 [8160.0, 3285.0, 660.0, 285.0, 2160.0, 10885.0, 12660.0, 6285.0, 2160.0, 285.0, 660.0, 3285.0, 14560.0],
 [15885.0, 11760.0, 9885.0, 10260.0, 12885.0, 9360.0, 19885.0, 14260.0, 10885.0, 9760.0, 10885.0, 14260.0, 285.0],
 [660.0, 285.0, 2160.0, 6285.0, 12660.0, 19885.0, 2160.0, 285.0, 660.0, 3285.0, 8160.0, 15285.0, 19060.0],
 [10285.0, 4660.0, 1285.0, 160.0, 1285.0, 10260.0, 15285.0, 8160.0, 3285.0, 660.0, 285.0, 2160.0, 14685.0]], shape=[11, 13], strides=[13, 1], layout=Cc (0x5), const ndim=2

', src/learn/kmeans.rs:550:13

---- learn::neural_network::autograd::tests::bias_backward_bf16 stdout ----
thread 'main' panicked at 'assert_relative_eq!(db_array.as_array(), db_true.view(), epsilon = epsilon, max_relative = max_relative)

    left  = [6.0, 12625.441, 27683.324, 661.05554, 8168.6626, 24611.215, 4648.8438], shape=[7], strides=[1], layout=CFcf (0xf), const ndim=1
    right = [22.0, 25.0, 28.0, 31.0, 34.0, 37.0, 40.0], shape=[7], strides=[1], layout=CFcf (0xf), const ndim=1

', src/learn/neural_network/autograd.rs:1306:9

---- learn::neural_network::autograd::tests::bias_backward_f32 stdout ----
thread 'main' panicked at 'assert_relative_eq!(db_array.as_array(), db_true.view(), epsilon = epsilon, max_relative = max_relative)

    left  = [59.064117, 71.0643, 83.06447, 30.0, 59.0, 65.0, 71.0], shape=[7], strides=[1], layout=CFcf (0xf), const ndim=1
    right = [22.0, 25.0, 28.0, 31.0, 34.0, 37.0, 40.0], shape=[7], strides=[1], layout=CFcf (0xf), const ndim=1

', src/learn/neural_network/autograd.rs:1306:9

---- learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 stdout ----
thread 'main' panicked at 'assert_relative_eq!(dx_array, dx_true)

    left  = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 ...,
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], shape=[67, 9], strides=[9, 1], layout=Cc (0x5), const ndim=2
    right = [[-1.3432803, -1.3283495, -1.3134094, -1.2984439, -1.2834092, -1.2681868, -1.2524544, -1.2353346, -1.2144448],
 [-1.208952, -1.1940212, -1.1790811, -1.1641155, -1.1490809, -1.1338584, -1.118126, -1.1010063, -1.0801164],
 [-1.0746237, -1.0596929, -1.0447527, -1.0297872, -1.0147525, -0.99953014, -0.98379767, -0.96667796, -0.9457881],
 [-0.9402953, -0.9253645, -0.91042435, -0.89545876, -0.8804242, -0.86520183, -0.84946924, -0.8323496, -0.8114597],
 [-0.8059669, -0.7910362, -0.776096, -0.7611304, -0.74609584, -0.73087347, -0.7151409, -0.69802123, -0.67713135],
 ...,
 [-0.6567132, -0.6417824, -0.62684226, -0.61187667, -0.5968421, -0.58161974, -0.56588715, -0.5487675, -0.5278776],
 [-0.5223849, -0.5074541, -0.4925139, -0.47754836, -0.46251372, -0.4472914, -0.43155882, -0.4144392, -0.39354926],
 [-0.38805655, -0.37312573, -0.35818556, -0.34322, -0.32818538, -0.31296304, -0.29723048, -0.28011084, -0.25922093],
 [-0.25372818, -0.23879737, -0.22385721, -0.20889163, -0.19385701, -0.1786347, -0.1629021, -0.1457825, -0.12489256],
 [-0.119399816, -0.10446901, -0.08952885, -0.07456329, -0.05952867, -0.044306338, -0.02857375, -0.011454136, 0.009435799]], shape=[67, 9], strides=[9, 1], layout=Cc (0x5), const ndim=2

', src/learn/neural_network/autograd.rs:1427:13

---- learn::neural_network::autograd::tests::cross_entropy_loss_f32 stdout ----
thread 'main' panicked at 'assert_relative_eq!(y_array, y_true, max_relative = 0.000_001)

    left  = [[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 ...,
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
 [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]], shape=[67, 9], strides=[9, 1], layout=Cc (0x5), const ndim=2
    right = [[761.26965, 663.8111, 568.35254, 474.894, 383.43546, 293.9769, 206.51834, 121.0598, 37.601242],
 [685.14264, 596.68414, 510.2256, 425.76706, 343.3085, 262.8499, 184.39137, 107.93283, 33.474277],
 [609.0157, 529.5572, 452.09863, 376.64008, 303.18152, 231.72296, 162.2644, 94.80586, 29.347311],
 [532.88873, 462.4302, 393.97168, 327.51312, 263.05457, 200.596, 140.13745, 81.6789, 25.220345],
 [456.76178, 395.30325, 335.8447, 278.38614, 222.9276, 169.46902, 118.01048, 68.55193, 21.09338],
 ...,
 [372.17627, 320.71774, 271.2592, 223.80063, 178.34207, 134.88351, 93.424965, 53.966415, 16.507862],
 [296.0493, 253.59076, 213.13222, 174.67366, 138.2151, 103.756546, 71.298, 40.83945, 12.380897],
 [219.92233, 186.46379, 155.00525, 125.54669, 98.08814, 72.629585, 49.171032, 27.712484, 8.253931],
 [143.79538, 119.33683, 96.87828, 76.41972, 57.961174, 41.50262, 27.044067, 14.585518, 4.1269655],
 [67.66841, 52.20986, 38.751312, 27.292759, 17.834208, 10.375655, 4.9171033, 1.4585518, 0.0]], shape=[67, 9], strides=[9, 1], layout=Cc (0x5), const ndim=2

', src/learn/neural_network/autograd.rs:1369:13

---- learn::neural_network::layer::tests::max_pool_2d_backward_atomic_f32 stdout ----
Error: Metal does not support device atomics!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::max_pool_2d_backward_f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[[[[192.0, 193.0, 194.0, 195.0],
   [196.0, 197.0, 198.0, 199.0],
   [200.0, 201.0, 202.0, 203.0],
   [204.0, 205.0, 206.0, 207.0]]]], shape=[1, 1, 4, 4], strides=[16, 16, 4, 1], layout=Cc (0x5), dynamic ndim=4`,
 right: `[[[[0.0, 0.0, 0.0, 0.0],
   [0.0, 1.0, 0.0, 2.0],
   [0.0, 0.0, 0.0, 0.0],
   [0.0, 3.0, 0.0, 4.0]]]], shape=[1, 1, 4, 4], strides=[16, 16, 4, 1], layout=Cc (0x5), dynamic ndim=4`', src/learn/neural_network/layer.rs:1251:9

---- learn::neural_network::layer::tests::max_pool_2d_f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[[[[1.0, 2.0],
   [3.0, 4.0]]]], shape=[1, 1, 2, 2], strides=[4, 4, 2, 1], layout=Cc (0x5), dynamic ndim=4`,
 right: `[[[[6.0, 8.0],
   [14.0, 16.0]]]], shape=[1, 1, 2, 2], strides=[4, 4, 2, 1], layout=Cc (0x5), dynamic ndim=4`', src/learn/neural_network/layer.rs:1099:9

---- learn::neural_network::layer::tests::mean_pool_2d_backward_atomic_f32 stdout ----
Error: Metal does not support device atomics!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- learn::neural_network::layer::tests::mean_pool_2d_backward_f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[[[[192.0, 193.0, 194.0, 195.0],
   [196.0, 197.0, 198.0, 199.0],
   [200.0, 201.0, 202.0, 203.0],
   [204.0, 205.0, 206.0, 207.0]]]], shape=[1, 1, 4, 4], strides=[16, 16, 4, 1], layout=Cc (0x5), dynamic ndim=4`,
 right: `[[[[0.0, 0.0, 0.0, 0.0],
   [0.0, 1.0, 0.0, 2.0],
   [0.0, 0.0, 0.0, 0.0],
   [0.0, 3.0, 0.0, 4.0]]]], shape=[1, 1, 4, 4], strides=[16, 16, 4, 1], layout=Cc (0x5), dynamic ndim=4`', src/learn/neural_network/layer.rs:1251:9

---- learn::neural_network::layer::tests::mean_pool_2d_f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[[[[1.0, 2.0],
   [3.0, 4.0]]]], shape=[1, 1, 2, 2], strides=[4, 4, 2, 1], layout=Cc (0x5), dynamic ndim=4`,
 right: `[[[[3.5, 5.5],
   [11.5, 13.5]]]], shape=[1, 1, 2, 2], strides=[4, 4, 2, 1], layout=Cc (0x5), dynamic ndim=4`', src/learn/neural_network/layer.rs:1099:9

---- learn::neural_network::layer::tests::relu_backward_bf16 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[-2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`,
 right: `[-2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 7.0, 9.0, 11.0, 13.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`', src/learn/neural_network/layer.rs:1002:9

---- learn::neural_network::layer::tests::relu_backward_f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[-2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`,
 right: `[-2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 7.0, 9.0, 11.0, 13.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`', src/learn/neural_network/layer.rs:1002:9

---- learn::neural_network::layer::tests::relu_bf16 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[0.0, -2.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 2.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`,
 right: `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0, 4.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`', src/learn/neural_network/layer.rs:939:9

---- learn::neural_network::layer::tests::relu_f32 stdout ----
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `[-2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`,
 right: `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 3.0, 4.0], shape=[10], strides=[1], layout=CFcf (0xf), const ndim=1`', src/learn/neural_network/layer.rs:939:9

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T stdout ----
thread 'main' panicked at 'assert_relative_eq!(a_true, b, epsilon = 0.01, max_relative = 0.01)

    left  = [[348766.0, 257192.0, 261718.0, 315544.0, 269470.0, ..., 289502.0, 247528.0, 277354.0, 312280.0, 248606.0],
 [257192.0, 409309.0, 347526.0, 260643.0, 366560.0, ..., 323704.0, 365421.0, 301038.0, 291455.0, 381472.0],
 [261718.0, 347526.0, 529434.0, 301842.0, 319750.0, ..., 294006.0, 429414.0, 420822.0, 276730.0, 390438.0],
 [315544.0, 260643.0, 301842.0, 409141.0, 264640.0, ..., 275208.0, 269907.0, 342706.0, 289705.0, 262704.0],
 [269470.0, 366560.0, 319750.0, 264640.0, 390430.0, ..., 343710.0, 330400.0, 287290.0, 308080.0, 343070.0],
 ...,
 [328582.0, 257964.0, 283446.0, 367828.0, 265510.0, ..., 280134.0, 259116.0, 313498.0, 298180.0, 255462.0],
 [263608.0, 384281.0, 331054.0, 262327.0, 379600.0, ..., 334536.0, 344809.0, 292582.0, 300355.0, 358928.0],
 [255734.0, 350098.0, 500562.0, 291126.0, 320390.0, ..., 292438.0, 436402.0, 399966.0, 273230.0, 395494.0],
 [300960.0, 267015.0, 329170.0, 387025.0, 266280.0, ..., 271440.0, 287095.0, 384450.0, 281205.0, 275160.0],
 [278686.0, 344332.0, 306078.0, 269124.0, 366270.0, ..., 357342.0, 312588.0, 281634.0, 319780.0, 323326.0]], shape=[121, 141], strides=[141, 1], layout=Cc (0x5), const ndim=2
    right = [[348160.0, 514048.0, 522240.0, 315392.0, 284672.0, ..., 292864.0, 514048.0, 292864.0, 315392.0, 512000.0],
 [522240.0, 456704.0, 346112.0, 520192.0, 389120.0, ..., 325632.0, 389120.0, 366592.0, 325632.0, 389120.0],
 [522240.0, 378880.0, 1515520.0, 374784.0, 385024.0, ..., 391168.0, 505856.0, 518144.0, 374784.0, 389120.0],
 [325632.0, 522240.0, 325632.0, 440320.0, 296960.0, ..., 309248.0, 309248.0, 374784.0, 321536.0, 305152.0],
 [317440.0, 382976.0, 321536.0, 321536.0, 389120.0, ..., 391168.0, 378880.0, 325632.0, 325632.0, 391168.0],
 ...,
 [350208.0, 522240.0, 290816.0, 391168.0, 288768.0, ..., 311296.0, 518144.0, 313344.0, 296960.0, 509952.0],
 [315392.0, 382976.0, 387072.0, 319488.0, 382976.0, ..., 391168.0, 385024.0, 325632.0, 325632.0, 391168.0],
 [518144.0, 389120.0, 503808.0, 389120.0, 387072.0, ..., 389120.0, 501760.0, 505856.0, 374784.0, 501760.0],
 [307200.0, 307200.0, 370688.0, 385024.0, 317440.0, ..., 303104.0, 323584.0, 391168.0, 325632.0, 323584.0],
 [311296.0, 376832.0, 309248.0, 309248.0, 374784.0, ..., 389120.0, 311296.0, 317440.0, 323584.0, 321536.0]], shape=[121, 141], strides=[141, 1], layout=Cc (0x5), const ndim=2

', src/tensor/linalg.rs:331:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N stdout ----
thread 'main' panicked at 'assert_relative_eq!(a_true, b, epsilon = 0.01, max_relative = 0.01)

    left  = [[337166.0, 341712.0, 344358.0, 339304.0, 338150.0, ..., 320422.0, 326568.0, 330814.0, 328960.0, 329406.0],
 [327712.0, 332089.0, 334566.0, 329243.0, 327920.0, ..., 323784.0, 329761.0, 333838.0, 331715.0, 331992.0],
 [328358.0, 332666.0, 335074.0, 329582.0, 328190.0, ..., 320846.0, 326754.0, 330762.0, 328470.0, 328678.0],
 [331104.0, 335343.0, 337682.0, 332021.0, 330560.0, ..., 320008.0, 325847.0, 329786.0, 327325.0, 327464.0],
 [335950.0, 340120.0, 342390.0, 336560.0, 335030.0, ..., 321270.0, 327040.0, 330910.0, 328280.0, 328350.0],
 ...,
 [322002.0, 324944.0, 325986.0, 317728.0, 314970.0, ..., 339914.0, 344456.0, 347098.0, 342040.0, 340882.0],
 [319748.0, 322521.0, 323394.0, 314867.0, 311940.0, ..., 330476.0, 334849.0, 337322.0, 331995.0, 330668.0],
 [323994.0, 326698.0, 327502.0, 318806.0, 315810.0, ..., 331138.0, 335442.0, 337846.0, 332350.0, 330954.0],
 [330340.0, 332975.0, 333710.0, 324845.0, 321780.0, ..., 333900.0, 338135.0, 340470.0, 334805.0, 333340.0],
 [328786.0, 331352.0, 332018.0, 322984.0, 319850.0, ..., 338762.0, 342928.0, 345194.0, 339360.0, 337826.0]], shape=[121, 141], strides=[141, 1], layout=Cc (0x5), const ndim=2
    right = [[356352.0, 522240.0, 522240.0, 391168.0, 358400.0, ..., 325632.0, 522240.0, 358400.0, 380928.0, 512000.0],
 [522240.0, 522240.0, 350208.0, 520192.0, 389120.0, ..., 325632.0, 391168.0, 366592.0, 391168.0, 389120.0],
 [522240.0, 382976.0, 1531904.0, 374784.0, 385024.0, ..., 391168.0, 522240.0, 518144.0, 374784.0, 389120.0],
 [391168.0, 522240.0, 391168.0, 505856.0, 362496.0, ..., 325632.0, 325632.0, 374784.0, 325632.0, 325632.0],
 [391168.0, 391168.0, 391168.0, 387072.0, 391168.0, ..., 391168.0, 391168.0, 391168.0, 391168.0, 391168.0],
 ...,
 [391168.0, 522240.0, 325632.0, 391168.0, 321536.0, ..., 387072.0, 518144.0, 378880.0, 374784.0, 522240.0],
 [323584.0, 391168.0, 387072.0, 321536.0, 382976.0, ..., 391168.0, 391168.0, 391168.0, 391168.0, 391168.0],
 [522240.0, 391168.0, 522240.0, 391168.0, 391168.0, ..., 391168.0, 505856.0, 505856.0, 374784.0, 501760.0],
 [374784.0, 372736.0, 374784.0, 389120.0, 325632.0, ..., 374784.0, 391168.0, 391168.0, 391168.0, 389120.0],
 [376832.0, 378880.0, 374784.0, 325632.0, 391168.0, ..., 391168.0, 391168.0, 382976.0, 391168.0, 387072.0]], shape=[121, 141], strides=[141, 1], layout=Cc (0x5), const ndim=2

', src/tensor/linalg.rs:331:5

---- tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T stdout ----
thread 'main' panicked at 'assert_relative_eq!(a_true, b, epsilon = 0.01, max_relative = 0.01)

    left  = [[283066.0, 324492.0, 374018.0, 286844.0, 317770.0, ..., 301802.0, 354828.0, 353654.0, 295580.0, 342906.0],
 [284612.0, 320799.0, 365086.0, 290273.0, 315260.0, ..., 300644.0, 348431.0, 341118.0, 295605.0, 337692.0],
 [286258.0, 320306.0, 372454.0, 293102.0, 315250.0, ..., 301186.0, 346834.0, 346482.0, 296630.0, 336578.0],
 [286004.0, 317913.0, 377922.0, 294031.0, 313340.0, ..., 299828.0, 353337.0, 349946.0, 295755.0, 333564.0],
 [283850.0, 323620.0, 381490.0, 293060.0, 319530.0, ..., 296570.0, 357940.0, 351510.0, 292980.0, 338650.0],
 ...,
 [283902.0, 325604.0, 375406.0, 290108.0, 320110.0, ..., 306974.0, 350276.0, 344978.0, 291980.0, 339582.0],
 [284648.0, 321111.0, 365674.0, 292737.0, 316800.0, ..., 305016.0, 343079.0, 351642.0, 291205.0, 333568.0],
 [285894.0, 320218.0, 372642.0, 295166.0, 316390.0, ..., 305158.0, 341082.0, 356606.0, 291830.0, 332054.0],
 [285240.0, 317425.0, 377710.0, 295695.0, 314080.0, ..., 303400.0, 347185.0, 359670.0, 290555.0, 338640.0],
 [282686.0, 322732.0, 380878.0, 294324.0, 319870.0, ..., 299742.0, 351388.0, 360834.0, 287380.0, 343326.0]], shape=[121, 141], strides=[1, 121], layout=Ff (0xa), const ndim=2
    right = [[356352.0, 522240.0, 522240.0, 391168.0, 391168.0, ..., 325632.0, 522240.0, 358400.0, 380928.0, 522240.0],
 [522240.0, 522240.0, 382976.0, 522240.0, 391168.0, ..., 325632.0, 391168.0, 374784.0, 391168.0, 389120.0],
 [522240.0, 391168.0, 1564672.0, 391168.0, 387072.0, ..., 391168.0, 522240.0, 518144.0, 374784.0, 389120.0],
 [391168.0, 522240.0, 391168.0, 522240.0, 378880.0, ..., 325632.0, 391168.0, 391168.0, 325632.0, 391168.0],
 [391168.0, 391168.0, 391168.0, 391168.0, 391168.0, ..., 391168.0, 391168.0, 391168.0, 391168.0, 391168.0],
 ...,
 [391168.0, 522240.0, 391168.0, 391168.0, 321536.0, ..., 387072.0, 522240.0, 378880.0, 391168.0, 522240.0],
 [323584.0, 391168.0, 391168.0, 325632.0, 382976.0, ..., 391168.0, 391168.0, 391168.0, 391168.0, 391168.0],
 [522240.0, 391168.0, 522240.0, 391168.0, 391168.0, ..., 391168.0, 505856.0, 522240.0, 391168.0, 505856.0],
 [391168.0, 389120.0, 391168.0, 389120.0, 325632.0, ..., 374784.0, 391168.0, 391168.0, 391168.0, 391168.0],
 [380928.0, 387072.0, 391168.0, 325632.0, 391168.0, ..., 391168.0, 391168.0, 382976.0, 391168.0, 391168.0]], shape=[121, 141], strides=[141, 1], layout=Cc (0x5), const ndim=2

', src/tensor/linalg.rs:331:5

---- tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N stdout ----
thread 'main' panicked at 'assert_relative_eq!(a_true, b, epsilon = 0.01, max_relative = 0.01)

    left  = [[24516.0, 25012.0, 25508.0, 24204.0, 24700.0, ..., 24972.0, 25468.0, 25964.0, 24260.0, 24756.0],
 [70892.0, 72349.0, 73806.0, 70363.0, 71820.0, ..., 71844.0, 73301.0, 74758.0, 70915.0, 72372.0],
 [117268.0, 119686.0, 122104.0, 116522.0, 118940.0, ..., 118716.0, 121134.0, 123552.0, 117570.0, 119988.0],
 [40844.0, 41823.0, 42802.0, 42681.0, 43660.0, ..., 46388.0, 47367.0, 48346.0, 47825.0, 48804.0],
 [60420.0, 61660.0, 62900.0, 59940.0, 61180.0, ..., 61260.0, 62500.0, 63740.0, 60380.0, 61620.0],
 ...,
 [33532.0, 34304.0, 35076.0, 34448.0, 35220.0, ..., 38324.0, 39096.0, 39868.0, 38840.0, 39612.0],
 [64908.0, 66241.0, 67574.0, 64407.0, 65740.0, ..., 65796.0, 67129.0, 68462.0, 64895.0, 66228.0],
 [111284.0, 113578.0, 115872.0, 110566.0, 112860.0, ..., 112668.0, 114962.0, 117256.0, 111550.0, 113844.0],
 [54660.0, 55915.0, 57170.0, 57725.0, 58980.0, ..., 54540.0, 55795.0, 57050.0, 57205.0, 58460.0],
 [54436.0, 55552.0, 56668.0, 53984.0, 55100.0, ..., 55212.0, 56328.0, 57444.0, 54360.0, 55476.0]], shape=[21, 41], strides=[41, 1], layout=Cc (0x5), const ndim=2
    right = [[32640.0, 25984.0, 26496.0, 32384.0, 27136.0, ..., 30080.0, 30464.0, 30464.0, 24192.0, 31104.0],
 [97280.0, 97792.0, 94208.0, 95744.0, 96256.0, ..., 112640.0, 114176.0, 123904.0, 119808.0, 129536.0],
 [129536.0, 119296.0, 121856.0, 120320.0, 120832.0, ..., 118272.0, 120832.0, 128512.0, 121344.0, 121856.0],
 [81408.0, 91648.0, 93696.0, 93184.0, 95232.0, ..., 46336.0, 47360.0, 48128.0, 47616.0, 65024.0],
 [64512.0, 61440.0, 62720.0, 119808.0, 121856.0, ..., 61184.0, 64512.0, 64512.0, 64256.0, 62464.0],
 ...,
 [82944.0, 101376.0, 119296.0, 34304.0, 39168.0, ..., 46336.0, 47104.0, 48896.0, 46848.0, 48640.0],
 [64768.0, 96768.0, 99840.0, 65280.0, 102400.0, ..., 83968.0, 85504.0, 88576.0, 130560.0, 88576.0],
 [130560.0, 129536.0, 123904.0, 126464.0, 130048.0, ..., 129024.0, 114688.0, 121344.0, 111104.0, 113664.0],
 [125440.0, 128000.0, 130560.0, 127488.0, 58880.0, ..., 109056.0, 112128.0, 113664.0, 114176.0, 120832.0],
 [113664.0, 113152.0, 114176.0, 107520.0, 110080.0, ..., 126464.0, 112640.0, 114688.0, 54272.0, 55296.0]], shape=[21, 41], strides=[41, 1], layout=Cc (0x5), const ndim=2

', src/tensor/linalg.rs:331:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N stdout ----
Error: ShaderCompilationFailed
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::col2im_convolution_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::ops::tests::im2col_convolution_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_f32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_i32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_11x12_axis0 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reduce::tests::tensor_sum_u32_22x23_axis1 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_4d_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::into_standard_layout_6d_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::reorder::tests::reorder_2d_f32_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u16_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u32_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::one_hot_u8_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_bf16_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_i32_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u16_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u32_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_bf16 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_f32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_i32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::scaled_cast_u8_u32 stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- tensor::tests::tensor_serde_device stdout ----
Error: Device had a previous error!
thread 'main' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

failures:
    device::buffer::tests::fill_bf16
    device::buffer::tests::fill_f16
    device::buffer::tests::fill_f32
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i16
    device::buffer::tests::fill_i32
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u16
    device::buffer::tests::fill_u32
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    learn::kmeans::tests::compute_distances_bf16_m11_k5_n13
    learn::neural_network::autograd::tests::bias_backward_bf16
    learn::neural_network::autograd::tests::bias_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32
    learn::neural_network::autograd::tests::cross_entropy_loss_f32
    learn::neural_network::layer::tests::max_pool_2d_backward_atomic_f32
    learn::neural_network::layer::tests::max_pool_2d_backward_f32
    learn::neural_network::layer::tests::max_pool_2d_f32
    learn::neural_network::layer::tests::mean_pool_2d_backward_atomic_f32
    learn::neural_network::layer::tests::mean_pool_2d_backward_f32
    learn::neural_network::layer::tests::mean_pool_2d_f32
    learn::neural_network::layer::tests::relu_backward_bf16
    learn::neural_network::layer::tests::relu_backward_f32
    learn::neural_network::layer::tests::relu_bf16
    learn::neural_network::layer::tests::relu_f32
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_bf16_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_bf16_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N
    tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T
    tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N
    tensor::ops::tests::col2im_convolution_f32
    tensor::ops::tests::im2col_convolution_f32
    tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmax_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmax_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmax_u32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0
    tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1
    tensor::reduce::tests::tensor_argmin_f32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_f32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_i32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_i32_22x23_axis1
    tensor::reduce::tests::tensor_argmin_u32_11x12_axis0
    tensor::reduce::tests::tensor_argmin_u32_22x23_axis1
    tensor::reduce::tests::tensor_sum_bf16_11x12_axis0
    tensor::reduce::tests::tensor_sum_bf16_22x23_axis1
    tensor::reduce::tests::tensor_sum_f32_11x12_axis0
    tensor::reduce::tests::tensor_sum_f32_22x23_axis1
    tensor::reduce::tests::tensor_sum_i32_11x12_axis0
    tensor::reduce::tests::tensor_sum_i32_22x23_axis1
    tensor::reduce::tests::tensor_sum_u32_11x12_axis0
    tensor::reduce::tests::tensor_sum_u32_22x23_axis1
    tensor::reorder::tests::into_standard_layout_4d_u32
    tensor::reorder::tests::into_standard_layout_6d_u32
    tensor::reorder::tests::reorder_2d_f32_f32
    tensor::tests::one_hot_u16_bf16
    tensor::tests::one_hot_u16_f32
    tensor::tests::one_hot_u16_i32
    tensor::tests::one_hot_u16_u32
    tensor::tests::one_hot_u32_bf16
    tensor::tests::one_hot_u32_f32
    tensor::tests::one_hot_u32_i32
    tensor::tests::one_hot_u32_u32
    tensor::tests::one_hot_u8_bf16
    tensor::tests::one_hot_u8_f32
    tensor::tests::one_hot_u8_i32
    tensor::tests::one_hot_u8_u32
    tensor::tests::scaled_cast_bf16_bf16
    tensor::tests::scaled_cast_bf16_f32
    tensor::tests::scaled_cast_bf16_i32
    tensor::tests::scaled_cast_bf16_u32
    tensor::tests::scaled_cast_i32_bf16
    tensor::tests::scaled_cast_i32_f32
    tensor::tests::scaled_cast_i32_i32
    tensor::tests::scaled_cast_i32_u32
    tensor::tests::scaled_cast_u16_bf16
    tensor::tests::scaled_cast_u16_f32
    tensor::tests::scaled_cast_u16_i32
    tensor::tests::scaled_cast_u16_u32
    tensor::tests::scaled_cast_u32_bf16
    tensor::tests::scaled_cast_u32_f32
    tensor::tests::scaled_cast_u32_i32
    tensor::tests::scaled_cast_u32_u32
    tensor::tests::scaled_cast_u8_bf16
    tensor::tests::scaled_cast_u8_f32
    tensor::tests::scaled_cast_u8_i32
    tensor::tests::scaled_cast_u8_u32
    tensor::tests::tensor_serde_device

test result: FAILED. 29 passed; 127 failed; 3 ignored; 0 measured; 0 filtered out; finished in 2.39s

   Doc-tests autograph

running 3 tests
test src/device.rs - device::Device::builder_iter (line 676) - compile ... ok
test src/learn.rs - learn::neural_network (line 26) - compile ... ok
test src/lib.rs - buffer (line 59) - compile ... ok

test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.41s

error: test failed, to rerun pass '--lib'
$ git log -1                                                                  
commit 3e0af02e55d057908c20133aa80b613f88cbfdab (HEAD -> main, origin/main, origin/HEAD)
Merge: 6cdce7a afe35ea
Author: charles-r-earp <charles.r.earp@gmail.com>
Date:   Mon Dec 27 10:54:15 2021 -0800

    Merge branch 'main' of https://github.com/charles-r-earp/autograph into main
charles-r-earp commented 2 years ago

Can you try it on this branch naga? Do cargo test --features device_tests && cargo test --features "device_tests tensor" && cargo test --features "device_tests full".

I removed all the atomics that I think are causing the issue and I used naga to validate translation to metal.

rjzak commented 2 years ago
% cargo test --features device_tests && cargo test --features "device_tests tensor" && cargo test --features "device_tests full"
    Updating crates.io index
  Downloaded rustc-hash v1.1.0
  Downloaded anyhow v1.0.52
  Downloaded spirv v0.2.0+1.5.4
  Downloaded naga v0.8.2
  Downloaded petgraph v0.6.0
  Downloaded indexmap v1.6.2
  Downloaded fixedbitset v0.4.1
  Downloaded hashbrown v0.9.1
  Downloaded 8 crates (784.6 KB) in 0.85s
   Compiling hashbrown v0.9.1
   Compiling fixedbitset v0.4.1
   Compiling anyhow v1.0.52
   Compiling rustc-hash v1.1.0
   Compiling indexmap v1.6.2
   Compiling spirv v0.2.0+1.5.4
   Compiling petgraph v0.5.1
   Compiling envmnt v0.8.4
   Compiling petgraph v0.6.0
   Compiling ci_info v0.10.2
   Compiling rusty-hook v0.11.2
   Compiling rose_tree v0.2.0
   Compiling naga v0.5.0
   Compiling naga v0.8.2
   Compiling gfx-hal v0.9.0
   Compiling gfx-backend-metal v0.9.1
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 30.97s
     Running unittests (target/debug/deps/autograph-81e752ad563f9b27)

running 48 tests
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::fill_bf16 ... FAILED
test device::buffer::tests::fill_f16 ... FAILED
test device::buffer::tests::fill_i32 ... FAILED
test device::buffer::tests::fill_i16 ... FAILED
test device::buffer::tests::fill_f32 ... FAILED
test device::buffer::tests::fill_i8 ... FAILED
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::fill_u16 ... FAILED
test device::buffer::tests::fill_u32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::fill_u8 ... FAILED
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::buffer::tests::scale::u8::f32 ... FAILED
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::tests::device_new ... FAILED
test device::tests::device_builder_iter_build ... FAILED
test util::tests::size_eq ... ok
test util::tests::type_eq ... ok
test device::shader::tests::shader_module_from_spirv ... ok
test glsl_shaders::tests::to_hlsl ... ok
test rust_shaders::tests::core_to_metal ... ok
test glsl_shaders::tests::to_metal ... ok
test rust_shaders::tests::core_to_hlsl ... ok

failures:

---- device::buffer::tests::fill_bf16 stdout ----
[src/device/engine.rs:1845] &self.entry = "fill::fill_u32"
[src/device/engine.rs:1846] e = ShaderCreationError(
    COMPUTE,
    "Error compiling the shader \"Naga parsing: UnsupportedCapability(VulkanMemoryModelDeviceScope)\"",
)
[src/device/engine.rs:1734] name = Some(
    "core",
)
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_f16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i8 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_i64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_f64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u16 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::bf16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u64 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::bf16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u8 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::f32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::bf16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::i32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::f32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::i32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::f32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::i32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u8::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u8::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u8::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::tests::device_new stdout ----
Error: Device had a previous error!
thread 'device::tests::device_new' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::tests::device_builder_iter_build stdout ----
Error: Device had a previous error!
thread 'device::tests::device_builder_iter_build' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

failures:
    device::buffer::tests::fill_bf16
    device::buffer::tests::fill_f16
    device::buffer::tests::fill_f32
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i16
    device::buffer::tests::fill_i32
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u16
    device::buffer::tests::fill_u32
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    device::tests::device_builder_iter_build
    device::tests::device_new

test result: FAILED. 15 passed; 32 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.46s
charles-r-earp commented 2 years ago

It looks like I left the DeviceScope capability in on this branch. I removed it. See if that fixes the issue. I switched back to naga for gfx-backend-metal but I was testing with a newer version, so that may be why it didn't get caught.

rjzak commented 2 years ago

Seems to have not made a difference.

% cargo test --features device_tests && cargo test --features "device_tests tensor" && cargo test --features "device_tests full"
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
    Finished test [unoptimized + debuginfo] target(s) in 3.98s
     Running unittests (target/debug/deps/autograph-81e752ad563f9b27)

running 48 tests
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::fill_f32 ... FAILED
test device::buffer::tests::fill_bf16 ... FAILED
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::fill_i8 ... FAILED
test device::buffer::tests::fill_f16 ... FAILED
test device::buffer::tests::fill_i32 ... FAILED
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::fill_u8 ... FAILED
test device::buffer::tests::fill_u32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::fill_u16 ... FAILED
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::fill_i16 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::scale::u8::f32 ... FAILED
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::tests::device_new ... FAILED
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::tests::device_builder_iter_build ... FAILED
test util::tests::size_eq ... ok
test util::tests::type_eq ... ok
test device::shader::tests::shader_module_from_spirv ... ok
test glsl_shaders::tests::to_hlsl ... ok
test rust_shaders::tests::core_to_metal ... ok
test glsl_shaders::tests::to_metal ... ok
test rust_shaders::tests::core_to_hlsl ... ok

failures:

---- device::buffer::tests::fill_f32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_bf16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_bf16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_f64 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i8 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_f16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_f16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i32 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u8 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u8' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::bf16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u64 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u64' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_u16 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::fill_u16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::bf16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::f32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::f32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::f32::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::f32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::i32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u16::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::fill_i16 stdout ----
Error: ShaderCompilationFailed
thread 'device::buffer::tests::fill_i16' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::i32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u16::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u16::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u32::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::bf16::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::bf16::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u8::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::i32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u8::i32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u32::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::i32::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::i32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u32::f32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u32::f32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::tests::device_new stdout ----
Error: Device had a previous error!
thread 'device::tests::device_new' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::buffer::tests::scale::u8::u32 stdout ----
Error: Device had a previous error!
thread 'device::buffer::tests::scale::u8::u32' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

---- device::tests::device_builder_iter_build stdout ----
Error: Device had a previous error!
thread 'device::tests::device_builder_iter_build' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5

failures:
    device::buffer::tests::fill_bf16
    device::buffer::tests::fill_f16
    device::buffer::tests::fill_f32
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i16
    device::buffer::tests::fill_i32
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u16
    device::buffer::tests::fill_u32
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32
    device::tests::device_builder_iter_build
    device::tests::device_new

test result: FAILED. 15 passed; 32 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.46s
% git log -1
commit bfd15334f52ef1b9ea83a1d275f3e6ae1fce184c (HEAD -> naga, origin/naga)
Author: charles-r-earp <charles.r.earp@gmail.com>
Date:   Wed Jan 12 23:34:58 2022 -0800

    Removed DeviceScope capability.
charles-r-earp commented 2 years ago

It looks like gfx-backend-metal has an older version of naga. I switched back to spirv_cross hopefully that works.

I also rebuilt on vulkano with this branch and the idea is to use MoltenVK to target metal instead of gfx_hal -> metal-rs due gfx_hal being no longer supported. So let me know if that at least can do cargo test --features device_tests device_new.

rjzak commented 2 years ago
% git status
On branch naga
Your branch is up to date with 'origin/naga'.

nothing to commit, working tree clean
% cargo test --features device_tests && cargo test --features "device_tests tensor" && cargo test --features "device_tests full"
   Compiling naga v0.5.0
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
   Compiling gfx-hal v0.9.0
   Compiling gfx-auxil v0.10.0
   Compiling gfx-backend-metal v0.9.1
    Finished test [unoptimized + debuginfo] target(s) in 15.74s
     Running unittests (target/debug/deps/autograph-c9e3a0b13b56534a)

running 48 tests
test device::buffer::tests::device_buffer_copy_from_slice ... ok
test device::buffer::tests::device_buffer_serde ... ok
test device::buffer::tests::fill_f32 ... FAILED
test device::buffer::tests::fill_i16 ... FAILED
test device::buffer::tests::fill_i64 ... FAILED
test device::buffer::tests::fill_f64 ... FAILED
test device::buffer::tests::fill_i8 ... FAILED
test device::buffer::tests::host_buffer_copy_from_slice ... ok
test device::buffer::tests::fill_bf16 ... FAILED
test device::buffer::tests::host_buffer_serde ... ok
test device::buffer::tests::fill_u32 ... FAILED
test device::buffer::tests::fill_u8 ... FAILED
test device::buffer::tests::fill_f16 ... FAILED
test device::buffer::tests::fill_u64 ... FAILED
test device::buffer::tests::fill_i32 ... FAILED
test device::buffer::tests::scale::bf16::i32 ... FAILED
test device::buffer::tests::scale::bf16::f32 ... FAILED
test device::buffer::tests::scale::f32::u32 ... FAILED
test device::buffer::tests::scale::bf16::u32 ... FAILED
test device::buffer::tests::fill_u16 ... FAILED
test device::buffer::tests::scale::i32::f32 ... FAILED
test device::buffer::tests::scale::f32::f32 ... FAILED
test device::buffer::tests::scale::f32::i32 ... FAILED
test device::buffer::tests::scale::i32::u32 ... FAILED
test device::buffer::tests::scale::i32::i32 ... FAILED
test device::buffer::tests::scale::u32::f32 ... FAILED
test device::buffer::tests::scale::u16::f32 ... FAILED
test device::buffer::tests::scale::u16::u32 ... FAILED
test device::buffer::tests::scale::u16::i32 ... FAILED
test device::engine::tests::allocator_config_amd_rtx580_dx12 ... ok
test device::engine::tests::allocator_config_amd_rtx580_vulkan ... ok
test device::engine::tests::allocator_config_diagnostic ... ignored
test device::engine::tests::allocator_config_ms_basic_render_driver ... ok
test device::engine::tests::allocator_config_nv_gtx1060_vulkan ... ok
test device::buffer::tests::scale::u32::i32 ... FAILED
test device::shader::tests::shader_module_from_spirv ... ok
test glsl_shaders::tests::to_hlsl ... ok
test device::buffer::tests::scale::u8::i32 ... FAILED
test device::buffer::tests::scale::u32::u32 ... FAILED
test device::tests::device_builder_iter_build ... ok
test device::buffer::tests::scale::u8::f32 ... FAILED
test util::tests::size_eq ... ok
test util::tests::type_eq ... ok
test device::buffer::tests::scale::u8::u32 ... FAILED
test device::tests::device_new ... ok
test glsl_shaders::tests::to_metal ... ok
test rust_shaders::tests::core_to_metal ... ok
test rust_shaders::tests::core_to_hlsl ... ok

failures:

---- device::buffer::tests::fill_f32 stdout ----
thread 'device::buffer::tests::fill_f32' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.11', src/device/buffer.rs:1535:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- device::buffer::tests::fill_i16 stdout ----
thread 'device::buffer::tests::fill_i16' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i64 stdout ----
thread 'device::buffer::tests::fill_i64' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_f64 stdout ----
thread 'device::buffer::tests::fill_f64' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i8 stdout ----
thread 'device::buffer::tests::fill_i8' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_bf16 stdout ----
thread 'device::buffer::tests::fill_bf16' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.125', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u32 stdout ----
thread 'device::buffer::tests::fill_u32' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u8 stdout ----
thread 'device::buffer::tests::fill_u8' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_f16 stdout ----
thread 'device::buffer::tests::fill_f16' panicked at '[0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0] != 11.109375', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_u64 stdout ----
thread 'device::buffer::tests::fill_u64' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::fill_i32 stdout ----
thread 'device::buffer::tests::fill_i32' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::scale::bf16::i32 stdout ----
thread 'device::buffer::tests::scale::bf16::i32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::bf16::f32 stdout ----
thread 'device::buffer::tests::scale::bf16::f32' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000091835, 0.000000000000000000000000000000000000000275509, 0.000000000000000000000000000000000000000459183, 0.000000000000000000000000000000000000000642857, 0.00000000000000000000000000000000000000082653, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::f32::u32 stdout ----
thread 'device::buffer::tests::scale::f32::u32' panicked at 'assertion failed: `(left == right)`
  left: `[1065353216, 1077952512, 1084244096, 1088438464, 1091584256, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::bf16::u32 stdout ----
thread 'device::buffer::tests::scale::bf16::u32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::fill_u16 stdout ----
thread 'device::buffer::tests::fill_u16' panicked at '[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] != 11', src/device/buffer.rs:1535:9

---- device::buffer::tests::scale::i32::f32 stdout ----
thread 'device::buffer::tests::scale::i32::f32' panicked at 'assertion failed: `(left == right)`
  left: `[0.00000000000000000000000000000000000038204714, 0.00000000000000000000000000000000010082514, 0.00000000000000000000000000000000000000000324, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::f32::f32 stdout ----
thread 'device::buffer::tests::scale::f32::f32' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000000001, 0.000000000000000000000000000000000000000000003, 0.000000000000000000000000000000000000000000004, 0.000000000000000000000000000000000000000000006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::f32::i32 stdout ----
thread 'device::buffer::tests::scale::f32::i32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::i32::u32 stdout ----
thread 'device::buffer::tests::scale::i32::u32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::i32::i32 stdout ----
thread 'device::buffer::tests::scale::i32::i32' panicked at 'assertion failed: `(left == right)`
  left: `[1065353216, 1077952512, 1084244096, 1088438464, 1091584256, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u32::f32 stdout ----
thread 'device::buffer::tests::scale::u32::f32' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000091835, 0.000000000000000000000000000000000000000275509, 0.000000000000000000000000000000000000000459183, 0.000000000000000000000000000000000000000642857, 0.00000000000000000000000000000000000000082653, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u16::f32 stdout ----
thread 'device::buffer::tests::scale::u16::f32' panicked at 'assertion failed: `(left == right)`
  left: `[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u16::u32 stdout ----
thread 'device::buffer::tests::scale::u16::u32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u16::i32 stdout ----
thread 'device::buffer::tests::scale::u16::i32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u32::i32 stdout ----
thread 'device::buffer::tests::scale::u32::i32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u8::i32 stdout ----
thread 'device::buffer::tests::scale::u8::i32' panicked at 'assertion failed: `(left == right)`
  left: `[1065353216, 1077952512, 1084244096, 1088438464, 1091584256, 0, 0, 0, 0, 0]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u32::u32 stdout ----
thread 'device::buffer::tests::scale::u32::u32' panicked at 'assertion failed: `(left == right)`
  left: `[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u8::f32 stdout ----
thread 'device::buffer::tests::scale::u8::f32' panicked at 'assertion failed: `(left == right)`
  left: `[0.000000000000000000000000000000000000000091835, 0.000000000000000000000000000000000000000275509, 0.000000000000000000000000000000000000000459183, 0.000000000000000000000000000000000000000642857, 0.00000000000000000000000000000000000000082653, 0.0, 0.0, 0.0, 0.0, 0.0]`,
 right: `[0.0, 2.0, 4.0, 6.0, 8.0, 10.0, 12.0, 14.0, 16.0, 18.0]`', src/device/buffer.rs:1663:13

---- device::buffer::tests::scale::u8::u32 stdout ----
thread 'device::buffer::tests::scale::u8::u32' panicked at 'assertion failed: `(left == right)`
  left: `[50462976, 117835012, 2312, 3, 4, 5, 6, 7, 8, 9]`,
 right: `[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]`', src/device/buffer.rs:1663:13

failures:
    device::buffer::tests::fill_bf16
    device::buffer::tests::fill_f16
    device::buffer::tests::fill_f32
    device::buffer::tests::fill_f64
    device::buffer::tests::fill_i16
    device::buffer::tests::fill_i32
    device::buffer::tests::fill_i64
    device::buffer::tests::fill_i8
    device::buffer::tests::fill_u16
    device::buffer::tests::fill_u32
    device::buffer::tests::fill_u64
    device::buffer::tests::fill_u8
    device::buffer::tests::scale::bf16::f32
    device::buffer::tests::scale::bf16::i32
    device::buffer::tests::scale::bf16::u32
    device::buffer::tests::scale::f32::f32
    device::buffer::tests::scale::f32::i32
    device::buffer::tests::scale::f32::u32
    device::buffer::tests::scale::i32::f32
    device::buffer::tests::scale::i32::i32
    device::buffer::tests::scale::i32::u32
    device::buffer::tests::scale::u16::f32
    device::buffer::tests::scale::u16::i32
    device::buffer::tests::scale::u16::u32
    device::buffer::tests::scale::u32::f32
    device::buffer::tests::scale::u32::i32
    device::buffer::tests::scale::u32::u32
    device::buffer::tests::scale::u8::f32
    device::buffer::tests::scale::u8::i32
    device::buffer::tests::scale::u8::u32

test result: FAILED. 17 passed; 30 failed; 1 ignored; 0 measured; 0 filtered out; finished in 1.94s
rjzak commented 2 years ago
% git status                                                                                                                    
On branch vulkano
Your branch is up to date with 'origin/vulkano'.

nothing to commit, working tree clean
% cargo test --features device_tests device_new
    Updating crates.io index
  Downloaded shared_library v0.1.9
  Downloaded xml-rs v0.8.4
  Downloaded time v0.3.6
  Downloaded vk-parse v0.6.0
  Downloaded safemem v0.3.3
  Downloaded heck v0.3.3
  Downloaded line-wrap v0.1.1
  Downloaded crossbeam-queue v0.3.3
  Downloaded serde_json v1.0.72
  Downloaded unicode-segmentation v1.8.0
  Downloaded vulkano v0.27.1
  Downloaded itoa v1.0.1
  Downloaded crossbeam-channel v0.5.2
  Downloaded indexmap v1.8.0
  Downloaded plist v1.3.1
  Downloaded ash v0.35.1+1.2.203
  Downloaded ash v0.33.3+1.2.191
  Downloaded dashmap v5.0.0
  Downloaded num_threads v0.1.2
  Downloaded ash-molten v0.12.0+1.1.5
  Downloaded 20 crates (2.0 MB) in 0.72s
   Compiling xml-rs v0.8.4
   Compiling itoa v1.0.1
   Compiling serde_json v1.0.72
   Compiling safemem v0.3.3
   Compiling unicode-segmentation v1.8.0
   Compiling ash v0.35.1+1.2.203
   Compiling crossbeam-queue v0.3.3
   Compiling indexmap v1.8.0
   Compiling libloading v0.7.2
   Compiling line-wrap v0.1.1
   Compiling num_threads v0.1.2
   Compiling shared_library v0.1.9
   Compiling crossbeam-channel v0.5.2
   Compiling parking_lot v0.11.2
   Compiling time v0.3.6
   Compiling ash v0.33.3+1.2.191
   Compiling spirv_cross v0.23.1
   Compiling heck v0.3.3
   Compiling dashmap v5.0.0
   Compiling vk-parse v0.6.0
   Compiling tokio v1.14.0
   Compiling naga v0.5.0
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
   Compiling envmnt v0.8.4
   Compiling plist v1.3.1
   Compiling ci_info v0.10.2
   Compiling gfx-hal v0.9.0
   Compiling vulkano v0.27.1
   Compiling ash-molten v0.12.0+1.1.5
   Compiling rusty-hook v0.11.2
warning: unused imports: `SliceMut`, `Slice`
 --> src/device.rs:2:14
  |
2 |     buffer::{Slice, SliceMut},
  |              ^^^^^  ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `bytemuck::Pod`
 --> src/device.rs:6:5
  |
6 | use bytemuck::Pod;
  |     ^^^^^^^^^^^^^

warning: unused imports: `Weak`, `drop`, `iter`, `take`, `time::Duration`
  --> src/device/engine.rs:17:5
   |
17 |     iter,
   |     ^^^^
18 |     iter::once,
19 |     mem::{drop, take, transmute},
   |           ^^^^  ^^^^
...
23 |         Arc, Weak,
   |              ^^^^
24 |     },
25 |     time::Duration,
   |     ^^^^^^^^^^^^^^

warning: unused imports: `AutoCommandBufferBuilder`, `DescriptorSetResources`, `DescriptorSetWithOffsets`, `DescriptorWrite`, `FenceSignalFuture`, `FenceWaitError`, `StdDescriptorPool`, `UnsafeDescriptorSet`, `memory::DeviceMemoryAllocError`, `now`
  --> src/device/engine.rs:39:9
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^
...
46 |             StdDescriptorPool,
   |             ^^^^^^^^^^^^^^^^^
47 |         },
48 |         sys::{DescriptorWrite, UnsafeDescriptorSet},
   |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
...
57 |     memory::DeviceMemoryAllocError,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |            ^^^                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Capability`
 --> src/device/shader.rs:8:13
  |
8 |     spirv::{Capability, Decoration, ExecutionMode, ExecutionModel, Op, StorageClass, Word},
  |             ^^^^^^^^^^

warning: unused import: `ModuleId`
  --> src/device.rs:26:23
   |
26 | use shader::{EntryId, ModuleId};
   |                       ^^^^^^^^

warning: unused import: `PrimaryCommandBuffer`
  --> src/device/engine.rs:39:75
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |                                                                           ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DescriptorSet`
  --> src/device/engine.rs:49:9
   |
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |         ^^^^^^^^^^^^^

warning: unused import: `GpuFuture`
  --> src/device/engine.rs:63:72
   |
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |                                                                        ^^^^^^^^^

warning: unused variable: `base`
   --> src/device.rs:460:21
    |
460 |         if let Some(base) = self.base.as_ref() {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `src`
   --> src/device/buffer.rs:606:36
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`

warning: unused variable: `device`
   --> src/device/buffer.rs:606:47
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `guard`
   --> src/device/buffer.rs:942:26
    |
942 |             Self::Device(guard) => todo!(), // guard.as_slice().to_vec(),
    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`

warning: unnecessary `unsafe` block
   --> src/device/engine.rs:539:27
    |
539 |         let mut barrier = unsafe { UnsafeCommandBufferBuilderPipelineBarrier::new() };
    |                           ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` on by default

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
  --> src/util.rs:35:21
   |
35 |             None => unreachable_unchecked(),
   |                     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
note: the lint level is defined here
  --> src/lib.rs:1:23
   |
1  | #![warn(missing_docs, unsafe_op_in_unsafe_fn)]
   |                       ^^^^^^^^^^^^^^^^^^^^^^
   = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:159:12
    |
159 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:388:12
    |
388 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:167:56
    |
167 |                           FloatType::F32 => Ok(Self::F32($buffer::alloc(device, len)?)),
    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:166:58
    |
166 |                           FloatType::BF16 => Ok(Self::BF16($buffer::alloc(device, len)?)),
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: field is never read: `descriptor_set_layout`
   --> src/device/engine.rs:529:5
    |
529 |     descriptor_set_layout: Arc<DescriptorSetLayout>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `device`
   --> src/device/engine.rs:635:5
    |
635 |     device: Arc<Device>,
    |     ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `into_device`
   --> src/device/buffer.rs:262:14
    |
262 |     async fn into_device(self, device: DeviceBase) -> Result<DeviceBuffer<T>>
    |              ^^^^^^^^^^^

warning: associated function is never used: `specialization_size`
   --> src/device/shader.rs:181:19
    |
181 |     pub(super) fn specialization_size(&self) -> usize {
    |                   ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `size`
   --> src/device/shader.rs:203:19
    |
203 |     pub(super) fn size(&self) -> usize {
    |                   ^^^^

warning: field is never read: `local_size`
   --> src/device.rs:281:5
    |
281 |     local_size: [u32; 3],
    |     ^^^^^^^^^^^^^^^^^^^^

warning: `autograph` (lib test) generated 25 warnings
    Finished test [unoptimized + debuginfo] target(s) in 41.64s
     Running unittests (target/debug/deps/autograph-6651538b3f305376)

running 1 test
[mvk-info] MoltenVK version 1.1.5, supporting Vulkan version 1.1.189.
    The following 72 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v32
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xa140
        pipelineCacheUUID: C1D03328-0400-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 0 Vulkan extensions enabled:
test device::tests::device_new ... FAILED

failures:

---- device::tests::device_new stdout ----
thread 'device::tests::device_new' panicked at 'Unable to load MoltenVK!', src/device/engine.rs:80:22
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    device::tests::device_new

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 41 filtered out; finished in 0.01s
charles-r-earp commented 2 years ago

Well that's encouraging. I'm trying to figure out how to use ash-molten to do the static linking, it seems like it worked but the function I used returned None for some reason. But all the extensions are provided in the api so it will be possible to select impls based on that rather than guessing based on platform.

charles-r-earp commented 2 years ago

I think I was unnecessarily unwrapping the optional fn pointers when they are meant to be null for 1.2 which isn't supported, so it should work now.

rjzak commented 2 years ago
 % git status
On branch vulkano
Your branch is up to date with 'origin/vulkano'.

nothing to commit, working tree clean
% cargo test --features device_tests device_new
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
warning: unused imports: `SliceMut`, `Slice`
 --> src/device.rs:2:14
  |
2 |     buffer::{Slice, SliceMut},
  |              ^^^^^  ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `bytemuck::Pod`
 --> src/device.rs:6:5
  |
6 | use bytemuck::Pod;
  |     ^^^^^^^^^^^^^

warning: unused imports: `Weak`, `drop`, `iter`, `take`, `time::Duration`
  --> src/device/engine.rs:17:5
   |
17 |     iter,
   |     ^^^^
18 |     iter::once,
19 |     mem::{drop, take, transmute},
   |           ^^^^  ^^^^
...
23 |         Arc, Weak,
   |              ^^^^
24 |     },
25 |     time::Duration,
   |     ^^^^^^^^^^^^^^

warning: unused imports: `AutoCommandBufferBuilder`, `DescriptorSetResources`, `DescriptorSetWithOffsets`, `DescriptorWrite`, `FenceSignalFuture`, `FenceWaitError`, `StdDescriptorPool`, `UnsafeDescriptorSet`, `memory::DeviceMemoryAllocError`, `now`
  --> src/device/engine.rs:39:9
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^
...
46 |             StdDescriptorPool,
   |             ^^^^^^^^^^^^^^^^^
47 |         },
48 |         sys::{DescriptorWrite, UnsafeDescriptorSet},
   |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
...
57 |     memory::DeviceMemoryAllocError,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |            ^^^                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Capability`
 --> src/device/shader.rs:8:13
  |
8 |     spirv::{Capability, Decoration, ExecutionMode, ExecutionModel, Op, StorageClass, Word},
  |             ^^^^^^^^^^

warning: unused import: `ModuleId`
  --> src/device.rs:26:23
   |
26 | use shader::{EntryId, ModuleId};
   |                       ^^^^^^^^

warning: unused import: `PrimaryCommandBuffer`
  --> src/device/engine.rs:39:75
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |                                                                           ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DescriptorSet`
  --> src/device/engine.rs:49:9
   |
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |         ^^^^^^^^^^^^^

warning: unused import: `GpuFuture`
  --> src/device/engine.rs:63:72
   |
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |                                                                        ^^^^^^^^^

warning: unused variable: `base`
   --> src/device.rs:460:21
    |
460 |         if let Some(base) = self.base.as_ref() {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `src`
   --> src/device/buffer.rs:606:36
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`

warning: unused variable: `device`
   --> src/device/buffer.rs:606:47
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `guard`
   --> src/device/buffer.rs:942:26
    |
942 |             Self::Device(guard) => todo!(), // guard.as_slice().to_vec(),
    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`

warning: unnecessary `unsafe` block
   --> src/device/engine.rs:539:27
    |
539 |         let mut barrier = unsafe { UnsafeCommandBufferBuilderPipelineBarrier::new() };
    |                           ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` on by default

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
  --> src/util.rs:35:21
   |
35 |             None => unreachable_unchecked(),
   |                     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
note: the lint level is defined here
  --> src/lib.rs:1:23
   |
1  | #![warn(missing_docs, unsafe_op_in_unsafe_fn)]
   |                       ^^^^^^^^^^^^^^^^^^^^^^
   = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:159:12
    |
159 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:388:12
    |
388 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:167:56
    |
167 |                           FloatType::F32 => Ok(Self::F32($buffer::alloc(device, len)?)),
    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:166:58
    |
166 |                           FloatType::BF16 => Ok(Self::BF16($buffer::alloc(device, len)?)),
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: field is never read: `descriptor_set_layout`
   --> src/device/engine.rs:529:5
    |
529 |     descriptor_set_layout: Arc<DescriptorSetLayout>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `device`
   --> src/device/engine.rs:635:5
    |
635 |     device: Arc<Device>,
    |     ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `into_device`
   --> src/device/buffer.rs:262:14
    |
262 |     async fn into_device(self, device: DeviceBase) -> Result<DeviceBuffer<T>>
    |              ^^^^^^^^^^^

warning: associated function is never used: `specialization_size`
   --> src/device/shader.rs:181:19
    |
181 |     pub(super) fn specialization_size(&self) -> usize {
    |                   ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `size`
   --> src/device/shader.rs:203:19
    |
203 |     pub(super) fn size(&self) -> usize {
    |                   ^^^^

warning: field is never read: `local_size`
   --> src/device.rs:281:5
    |
281 |     local_size: [u32; 3],
    |     ^^^^^^^^^^^^^^^^^^^^

warning: `autograph` (lib test) generated 25 warnings
    Finished test [unoptimized + debuginfo] target(s) in 3.03s
     Running unittests (target/debug/deps/autograph-6651538b3f305376)

running 1 test
[mvk-info] MoltenVK version 1.1.5, supporting Vulkan version 1.1.189.
    The following 72 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v32
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xa140
        pipelineCacheUUID: C1D03328-0400-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 0 Vulkan extensions enabled:
test device::tests::device_new ... FAILED

failures:

---- device::tests::device_new stdout ----
Error: Device doesn't support required_features! Features {
    acceleration_structure: false,
    acceleration_structure_capture_replay: false,
    acceleration_structure_host_commands: false,
    acceleration_structure_indirect_build: false,
    advanced_blend_coherent_operations: false,
    alpha_to_one: false,
    attachment_fragment_shading_rate: false,
    bresenham_lines: false,
    buffer_device_address: false,
    buffer_device_address_capture_replay: false,
    buffer_device_address_multi_device: false,
    color_write_enable: false,
    compute_derivative_group_linear: false,
    compute_derivative_group_quads: false,
    compute_full_subgroups: false,
    conditional_rendering: false,
    constant_alpha_color_blend_factors: false,
    cooperative_matrix: false,
    cooperative_matrix_robust_buffer_access: false,
    corner_sampled_image: false,
    coverage_reduction_mode: false,
    custom_border_color_without_format: false,
    custom_border_colors: false,
    decode_mode_shared_exponent: false,
    dedicated_allocation_image_aliasing: false,
    depth_bias_clamp: false,
    depth_bounds: false,
    depth_clamp: false,
    depth_clip_enable: false,
    descriptor_binding_acceleration_structure_update_after_bind: false,
    descriptor_binding_inline_uniform_block_update_after_bind: false,
    descriptor_binding_partially_bound: false,
    descriptor_binding_sampled_image_update_after_bind: false,
    descriptor_binding_storage_buffer_update_after_bind: false,
    descriptor_binding_storage_image_update_after_bind: false,
    descriptor_binding_storage_texel_buffer_update_after_bind: false,
    descriptor_binding_uniform_buffer_update_after_bind: false,
    descriptor_binding_uniform_texel_buffer_update_after_bind: false,
    descriptor_binding_update_unused_while_pending: false,
    descriptor_binding_variable_descriptor_count: false,
    descriptor_indexing: false,
    device_coherent_memory: false,
    device_generated_commands: false,
    device_memory_report: false,
    diagnostics_config: false,
    draw_indirect_count: false,
    draw_indirect_first_instance: false,
    dual_src_blend: false,
    events: false,
    exclusive_scissor: false,
    extended_dynamic_state: false,
    extended_dynamic_state2: false,
    extended_dynamic_state2_logic_op: false,
    extended_dynamic_state2_patch_control_points: false,
    external_memory_rdma: false,
    fill_mode_non_solid: false,
    format_a4b4g4r4: false,
    format_a4r4g4b4: false,
    fragment_density_map: false,
    fragment_density_map_deferred: false,
    fragment_density_map_dynamic: false,
    fragment_density_map_non_subsampled_images: false,
    fragment_shader_barycentric: false,
    fragment_shader_pixel_interlock: false,
    fragment_shader_sample_interlock: false,
    fragment_shader_shading_rate_interlock: false,
    fragment_shading_rate_enums: false,
    fragment_stores_and_atomics: false,
    full_draw_index_uint32: false,
    geometry_shader: false,
    geometry_streams: false,
    global_priority_query: false,
    host_query_reset: false,
    image_cube_array: false,
    image_footprint: false,
    image_view2_d_on3_d_image: false,
    image_view_format_reinterpretation: false,
    image_view_format_swizzle: false,
    imageless_framebuffer: false,
    independent_blend: false,
    index_type_uint8: false,
    inherited_conditional_rendering: false,
    inherited_queries: false,
    inherited_viewport_scissor2_d: false,
    inline_uniform_block: false,
    invocation_mask: false,
    large_points: false,
    logic_op: false,
    memory_priority: false,
    mesh_shader: false,
    multi_draw: false,
    multi_draw_indirect: false,
    multi_viewport: false,
    multisample_array_image: false,
    multiview: false,
    multiview_geometry_shader: false,
    multiview_tessellation_shader: false,
    mutable_comparison_samplers: false,
    mutable_descriptor_type: false,
    no_invocation_fragment_shading_rates: false,
    null_descriptor: false,
    occlusion_query_precise: false,
    pageable_device_local_memory: false,
    performance_counter_multiple_query_pools: false,
    performance_counter_query_pools: false,
    pipeline_creation_cache_control: false,
    pipeline_executable_info: false,
    pipeline_fragment_shading_rate: false,
    pipeline_statistics_query: false,
    point_polygons: false,
    present_id: false,
    present_wait: false,
    primitive_fragment_shading_rate: false,
    primitive_topology_list_restart: false,
    primitive_topology_patch_list_restart: false,
    private_data: false,
    protected_memory: false,
    provoking_vertex_last: false,
    ray_query: false,
    ray_tracing_motion_blur: false,
    ray_tracing_motion_blur_pipeline_trace_rays_indirect: false,
    ray_tracing_pipeline: false,
    ray_tracing_pipeline_shader_group_handle_capture_replay: false,
    ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: false,
    ray_tracing_pipeline_trace_rays_indirect: false,
    ray_traversal_primitive_culling: false,
    rectangular_lines: false,
    representative_fragment_test: false,
    robust_buffer_access: false,
    robust_buffer_access2: false,
    robust_image_access: false,
    robust_image_access2: false,
    runtime_descriptor_array: false,
    sample_rate_shading: false,
    sampler_anisotropy: false,
    sampler_filter_minmax: false,
    sampler_mip_lod_bias: false,
    sampler_mirror_clamp_to_edge: false,
    sampler_ycbcr_conversion: false,
    scalar_block_layout: false,
    separate_depth_stencil_layouts: false,
    separate_stencil_mask_ref: false,
    shader_buffer_float16_atomic_add: false,
    shader_buffer_float16_atomic_min_max: false,
    shader_buffer_float16_atomics: false,
    shader_buffer_float32_atomic_add: false,
    shader_buffer_float32_atomic_min_max: false,
    shader_buffer_float32_atomics: false,
    shader_buffer_float64_atomic_add: false,
    shader_buffer_float64_atomic_min_max: false,
    shader_buffer_float64_atomics: false,
    shader_buffer_int64_atomics: false,
    shader_clip_distance: false,
    shader_cull_distance: false,
    shader_demote_to_helper_invocation: false,
    shader_device_clock: false,
    shader_draw_parameters: false,
    shader_float16: false,
    shader_float64: false,
    shader_image_float32_atomic_add: false,
    shader_image_float32_atomic_min_max: false,
    shader_image_float32_atomics: false,
    shader_image_gather_extended: false,
    shader_image_int64_atomics: false,
    shader_input_attachment_array_dynamic_indexing: false,
    shader_input_attachment_array_non_uniform_indexing: false,
    shader_int16: false,
    shader_int64: false,
    shader_int8: false,
    shader_integer_dot_product: false,
    shader_integer_functions2: false,
    shader_output_layer: false,
    shader_output_viewport_index: false,
    shader_resource_min_lod: false,
    shader_resource_residency: false,
    shader_sample_rate_interpolation_functions: false,
    shader_sampled_image_array_dynamic_indexing: false,
    shader_sampled_image_array_non_uniform_indexing: false,
    shader_shared_float16_atomic_add: false,
    shader_shared_float16_atomic_min_max: false,
    shader_shared_float16_atomics: false,
    shader_shared_float32_atomic_add: false,
    shader_shared_float32_atomic_min_max: false,
    shader_shared_float32_atomics: false,
    shader_shared_float64_atomic_add: false,
    shader_shared_float64_atomic_min_max: false,
    shader_shared_float64_atomics: false,
    shader_shared_int64_atomics: false,
    shader_sm_builtins: false,
    shader_storage_buffer_array_dynamic_indexing: false,
    shader_storage_buffer_array_non_uniform_indexing: false,
    shader_storage_image_array_dynamic_indexing: false,
    shader_storage_image_array_non_uniform_indexing: false,
    shader_storage_image_extended_formats: false,
    shader_storage_image_multisample: false,
    shader_storage_image_read_without_format: false,
    shader_storage_image_write_without_format: false,
    shader_storage_texel_buffer_array_dynamic_indexing: false,
    shader_storage_texel_buffer_array_non_uniform_indexing: false,
    shader_subgroup_clock: false,
    shader_subgroup_extended_types: false,
    shader_subgroup_uniform_control_flow: false,
    shader_terminate_invocation: false,
    shader_tessellation_and_geometry_point_size: false,
    shader_uniform_buffer_array_dynamic_indexing: false,
    shader_uniform_buffer_array_non_uniform_indexing: false,
    shader_uniform_texel_buffer_array_dynamic_indexing: false,
    shader_uniform_texel_buffer_array_non_uniform_indexing: false,
    shader_zero_initialize_workgroup_memory: false,
    shading_rate_coarse_sample_order: false,
    shading_rate_image: false,
    smooth_lines: false,
    sparse_binding: false,
    sparse_image_float32_atomic_add: false,
    sparse_image_float32_atomic_min_max: false,
    sparse_image_float32_atomics: false,
    sparse_image_int64_atomics: false,
    sparse_residency16_samples: false,
    sparse_residency2_samples: false,
    sparse_residency4_samples: false,
    sparse_residency8_samples: false,
    sparse_residency_aliased: false,
    sparse_residency_buffer: false,
    sparse_residency_image2_d: false,
    sparse_residency_image3_d: false,
    stippled_bresenham_lines: false,
    stippled_rectangular_lines: false,
    stippled_smooth_lines: false,
    storage_buffer16_bit_access: false,
    storage_buffer8_bit_access: false,
    storage_input_output16: false,
    storage_push_constant16: false,
    storage_push_constant8: false,
    subgroup_broadcast_dynamic_id: false,
    subgroup_size_control: false,
    subpass_shading: false,
    supersample_fragment_shading_rates: false,
    synchronization2: false,
    task_shader: false,
    tessellation_isolines: false,
    tessellation_point_mode: false,
    tessellation_shader: false,
    texel_buffer_alignment: false,
    texture_compression_astc_hdr: false,
    texture_compression_astc_ldr: false,
    texture_compression_bc: false,
    texture_compression_etc2: false,
    timeline_semaphore: false,
    transform_feedback: false,
    transform_feedback_preserves_provoking_vertex: false,
    triangle_fans: false,
    uniform_and_storage_buffer16_bit_access: false,
    uniform_and_storage_buffer8_bit_access: false,
    uniform_buffer_standard_layout: false,
    variable_multisample_rate: false,
    variable_pointers: false,
    variable_pointers_storage_buffer: false,
    vertex_attribute_access_beyond_stride: false,
    vertex_attribute_instance_rate_divisor: false,
    vertex_attribute_instance_rate_zero_divisor: false,
    vertex_input_dynamic_state: false,
    vertex_pipeline_stores_and_atomics: false,
    vulkan_memory_model: true,
    vulkan_memory_model_availability_visibility_chains: false,
    vulkan_memory_model_device_scope: false,
    wide_lines: false,
    workgroup_memory_explicit_layout: false,
    workgroup_memory_explicit_layout16_bit_access: false,
    workgroup_memory_explicit_layout8_bit_access: false,
    workgroup_memory_explicit_layout_scalar_block_layout: false,
    ycbcr2plane444_formats: false,
    ycbcr_image_arrays: false,
}
thread 'device::tests::device_new' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/f1edd0429582dd29cccacaf50fd134b05593bd9c/library/test/src/lib.rs:195:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    device::tests::device_new
charles-r-earp commented 2 years ago

I think it doesn't support the vulkan_memory_model, which is the only feature I required. But I think this isn't necessary when it will be converted to metal anyway. I removed the requirement, see it that works.

rjzak commented 2 years ago

Making some progress!! The "device new" test worked, so I also ran all of the tests. 145 passed, 1 failed, 2 ignored.

% git status                                   
On branch vulkano
Your branch is up to date with 'origin/vulkano'.

nothing to commit, working tree clean
% cargo test --features device_tests device_new
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
warning: unused imports: `SliceMut`, `Slice`
 --> src/device.rs:2:14
  |
2 |     buffer::{Slice, SliceMut},
  |              ^^^^^  ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `bytemuck::Pod`
 --> src/device.rs:6:5
  |
6 | use bytemuck::Pod;
  |     ^^^^^^^^^^^^^

warning: unused imports: `Weak`, `drop`, `iter`, `take`, `time::Duration`
  --> src/device/engine.rs:17:5
   |
17 |     iter,
   |     ^^^^
18 |     iter::once,
19 |     mem::{drop, take, transmute},
   |           ^^^^  ^^^^
...
23 |         Arc, Weak,
   |              ^^^^
24 |     },
25 |     time::Duration,
   |     ^^^^^^^^^^^^^^

warning: unused imports: `AutoCommandBufferBuilder`, `DescriptorSetResources`, `DescriptorSetWithOffsets`, `DescriptorWrite`, `FenceSignalFuture`, `FenceWaitError`, `StdDescriptorPool`, `UnsafeDescriptorSet`, `memory::DeviceMemoryAllocError`, `now`
  --> src/device/engine.rs:39:9
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^
...
46 |             StdDescriptorPool,
   |             ^^^^^^^^^^^^^^^^^
47 |         },
48 |         sys::{DescriptorWrite, UnsafeDescriptorSet},
   |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
...
57 |     memory::DeviceMemoryAllocError,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |            ^^^                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Capability`
 --> src/device/shader.rs:8:13
  |
8 |     spirv::{Capability, Decoration, ExecutionMode, ExecutionModel, Op, StorageClass, Word},
  |             ^^^^^^^^^^

warning: unused import: `ModuleId`
  --> src/device.rs:26:23
   |
26 | use shader::{EntryId, ModuleId};
   |                       ^^^^^^^^

warning: unused import: `PrimaryCommandBuffer`
  --> src/device/engine.rs:39:75
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |                                                                           ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DescriptorSet`
  --> src/device/engine.rs:49:9
   |
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |         ^^^^^^^^^^^^^

warning: unused import: `GpuFuture`
  --> src/device/engine.rs:63:72
   |
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |                                                                        ^^^^^^^^^

warning: unused variable: `base`
   --> src/device.rs:460:21
    |
460 |         if let Some(base) = self.base.as_ref() {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `src`
   --> src/device/buffer.rs:606:36
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`

warning: unused variable: `device`
   --> src/device/buffer.rs:606:47
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `guard`
   --> src/device/buffer.rs:942:26
    |
942 |             Self::Device(guard) => todo!(), // guard.as_slice().to_vec(),
    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`

warning: unnecessary `unsafe` block
   --> src/device/engine.rs:538:27
    |
538 |         let mut barrier = unsafe { UnsafeCommandBufferBuilderPipelineBarrier::new() };
    |                           ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` on by default

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
  --> src/util.rs:35:21
   |
35 |             None => unreachable_unchecked(),
   |                     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
note: the lint level is defined here
  --> src/lib.rs:1:23
   |
1  | #![warn(missing_docs, unsafe_op_in_unsafe_fn)]
   |                       ^^^^^^^^^^^^^^^^^^^^^^
   = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:159:12
    |
159 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:388:12
    |
388 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:167:56
    |
167 |                           FloatType::F32 => Ok(Self::F32($buffer::alloc(device, len)?)),
    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:166:58
    |
166 |                           FloatType::BF16 => Ok(Self::BF16($buffer::alloc(device, len)?)),
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: field is never read: `descriptor_set_layout`
   --> src/device/engine.rs:528:5
    |
528 |     descriptor_set_layout: Arc<DescriptorSetLayout>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `device`
   --> src/device/engine.rs:634:5
    |
634 |     device: Arc<Device>,
    |     ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `into_device`
   --> src/device/buffer.rs:262:14
    |
262 |     async fn into_device(self, device: DeviceBase) -> Result<DeviceBuffer<T>>
    |              ^^^^^^^^^^^

warning: associated function is never used: `specialization_size`
   --> src/device/shader.rs:181:19
    |
181 |     pub(super) fn specialization_size(&self) -> usize {
    |                   ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `size`
   --> src/device/shader.rs:203:19
    |
203 |     pub(super) fn size(&self) -> usize {
    |                   ^^^^

warning: field is never read: `local_size`
   --> src/device.rs:281:5
    |
281 |     local_size: [u32; 3],
    |     ^^^^^^^^^^^^^^^^^^^^

warning: `autograph` (lib test) generated 25 warnings
    Finished test [unoptimized + debuginfo] target(s) in 4.87s
     Running unittests (target/debug/deps/autograph-6651538b3f305376)

running 1 test
[mvk-info] MoltenVK version 1.1.5, supporting Vulkan version 1.1.189.
    The following 72 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v32
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xa140
        pipelineCacheUUID: C1D03328-0400-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 0 Vulkan extensions enabled:
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::tests::device_new ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 41 filtered out; finished in 0.10s

% cargo test --features "full device_tests" --no-fail-fast
   Compiling indexmap v1.8.0
   Compiling tokio v1.14.0
   Compiling serde_json v1.0.72
   Compiling naga v0.5.0
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
   Compiling plist v1.3.1
   Compiling envmnt v0.8.4
   Compiling gfx-hal v0.9.0
   Compiling vulkano v0.27.1
   Compiling ci_info v0.10.2
   Compiling ash-molten v0.12.0+1.1.5
   Compiling rusty-hook v0.11.2
   Compiling tokio-util v0.6.9
   Compiling tokio-native-tls v0.3.0
   Compiling h2 v0.3.9
   Compiling hyper v0.14.16
   Compiling hyper-tls v0.5.0
   Compiling reqwest v0.11.7
   Compiling downloader v0.2.6
warning: unused imports: `SliceMut`, `Slice`
 --> src/device.rs:2:14
  |
2 |     buffer::{Slice, SliceMut},
  |              ^^^^^  ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `bytemuck::Pod`
 --> src/device.rs:6:5
  |
6 | use bytemuck::Pod;
  |     ^^^^^^^^^^^^^

warning: unused imports: `Weak`, `drop`, `iter`, `take`, `time::Duration`
  --> src/device/engine.rs:17:5
   |
17 |     iter,
   |     ^^^^
18 |     iter::once,
19 |     mem::{drop, take, transmute},
   |           ^^^^  ^^^^
...
23 |         Arc, Weak,
   |              ^^^^
24 |     },
25 |     time::Duration,
   |     ^^^^^^^^^^^^^^

warning: unused imports: `AutoCommandBufferBuilder`, `DescriptorSetResources`, `DescriptorSetWithOffsets`, `DescriptorWrite`, `FenceSignalFuture`, `FenceWaitError`, `StdDescriptorPool`, `UnsafeDescriptorSet`, `memory::DeviceMemoryAllocError`, `now`
  --> src/device/engine.rs:39:9
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^
...
46 |             StdDescriptorPool,
   |             ^^^^^^^^^^^^^^^^^
47 |         },
48 |         sys::{DescriptorWrite, UnsafeDescriptorSet},
   |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
...
57 |     memory::DeviceMemoryAllocError,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |            ^^^                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Capability`
 --> src/device/shader.rs:8:13
  |
8 |     spirv::{Capability, Decoration, ExecutionMode, ExecutionModel, Op, StorageClass, Word},
  |             ^^^^^^^^^^

warning: unused import: `ModuleId`
  --> src/device.rs:26:23
   |
26 | use shader::{EntryId, ModuleId};
   |                       ^^^^^^^^

warning: unused import: `PrimaryCommandBuffer`
  --> src/device/engine.rs:39:75
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |                                                                           ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DescriptorSet`
  --> src/device/engine.rs:49:9
   |
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |         ^^^^^^^^^^^^^

warning: unused import: `GpuFuture`
  --> src/device/engine.rs:63:72
   |
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |                                                                        ^^^^^^^^^

warning: unused variable: `base`
   --> src/device.rs:460:21
    |
460 |         if let Some(base) = self.base.as_ref() {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `src`
   --> src/device/buffer.rs:606:36
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`

warning: unused variable: `device`
   --> src/device/buffer.rs:606:47
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `guard`
   --> src/device/buffer.rs:942:26
    |
942 |             Self::Device(guard) => todo!(), // guard.as_slice().to_vec(),
    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`

warning: unnecessary `unsafe` block
   --> src/device/engine.rs:538:27
    |
538 |         let mut barrier = unsafe { UnsafeCommandBufferBuilderPipelineBarrier::new() };
    |                           ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` on by default

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
  --> src/util.rs:35:21
   |
35 |             None => unreachable_unchecked(),
   |                     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
note: the lint level is defined here
  --> src/lib.rs:1:23
   |
1  | #![warn(missing_docs, unsafe_op_in_unsafe_fn)]
   |                       ^^^^^^^^^^^^^^^^^^^^^^
   = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:159:12
    |
159 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:388:12
    |
388 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/tensor/float.rs:338:35
    |
338 |         let data = S::from_buffer(FloatBuffer::alloc(float_type, device, dim.size())?);
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:167:56
    |
167 |                           FloatType::F32 => Ok(Self::F32($buffer::alloc(device, len)?)),
    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:166:58
    |
166 |                           FloatType::BF16 => Ok(Self::BF16($buffer::alloc(device, len)?)),
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: field is never read: `descriptor_set_layout`
   --> src/device/engine.rs:528:5
    |
528 |     descriptor_set_layout: Arc<DescriptorSetLayout>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `device`
   --> src/device/engine.rs:634:5
    |
634 |     device: Arc<Device>,
    |     ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `into_device`
   --> src/device/buffer.rs:262:14
    |
262 |     async fn into_device(self, device: DeviceBase) -> Result<DeviceBuffer<T>>
    |              ^^^^^^^^^^^

warning: associated function is never used: `specialization_size`
   --> src/device/shader.rs:181:19
    |
181 |     pub(super) fn specialization_size(&self) -> usize {
    |                   ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `size`
   --> src/device/shader.rs:203:19
    |
203 |     pub(super) fn size(&self) -> usize {
    |                   ^^^^

warning: field is never read: `local_size`
   --> src/device.rs:281:5
    |
281 |     local_size: [u32; 3],
    |     ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `half::bf16`
   --> src/tensor/linalg.rs:181:9
    |
181 |     use half::bf16;
    |         ^^^^^^^^^^

warning: `autograph` (lib) generated 26 warnings
warning: `autograph` (lib test) generated 27 warnings (26 duplicates)
    Finished test [unoptimized + debuginfo] target(s) in 36.74s
     Running unittests (target/debug/deps/autograph-6263cc1c4b31f23f)

running 148 tests
[mvk-info] MoltenVK version 1.1.5, supporting Vulkan version 1.1.189.
    The following 72 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v32
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xa140
        pipelineCacheUUID: C1D03328-0400-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 0 Vulkan extensions enabled:
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::device_buffer_from_vec ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::device_buffer_serde ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::device_buffer_copy_from_slice ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_i64 ... ok
test buffer::tests::fill_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_bf16 ... ok
test buffer::tests::fill_i8 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::host_buffer_copy_from_slice ... ok
test buffer::tests::fill_u16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::host_buffer_serde ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_f16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_u8 ... ok
test buffer::tests::fill_u64 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_i16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_f64 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
test buffer::tests::scale::f32::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
test buffer::tests::scale::bf16::i32 ... ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::f32::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::i32::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::bf16::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::bf16::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::i32::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::i32::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::f32::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u16::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u16::i32 ... ok
test device::engine::tests::instance ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u32::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::tests::device_new ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u32::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u16::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u8::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u8::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u8::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u32::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::bias_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::cross_entropy_loss_f32 ... FAILED
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::kmeans::tests::compute_distances_f32_m11_k5_n13 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::max_pool_2d_backward_atomic_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::bias_backward_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::shader::tests::shader_module_from_spirv ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::relu_backward_f32 ... ok[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1

[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
test learn::neural_network::layer::tests::relu_backward_bf16 ... [mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::max_pool_2d_f32 ... ok
test learn::neural_network::layer::tests::mean_pool_2d_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::mean_pool_2d_backward_atomic_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::mean_pool_2d_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::max_pool_2d_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::relu_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test glsl_shaders::tests::to_metal ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::relu_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::accuracy::tests::accuracy_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test rust_shaders::tests::core_to_metal ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N ... ok
test tensor::ops::tests::im2col_convolution_bf16 ... ignored
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::ops::tests::col2im_convolution_f32 ... ok
test tensor::reduce::tests::atomic_add_f32 ... ignored
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::ops::tests::im2col_convolution_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 ... ok
test tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 ... ok
test tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
test tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 ... ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_f32_22x23_axis1 ... ok
test tensor::reduce::tests::tensor_sum_f32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_u32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_u32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_i32_22x23_axis1 ... ok
test tensor::reduce::tests::tensor_sum_i32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reorder::tests::into_standard_layout_4d_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reorder::tests::into_standard_layout_6d_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reorder::tests::reorder_2d_f32_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_bf16_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_bf16_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_bf16_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u8_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_i32_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_i32_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u8_f32 ... ok
test tensor::tests::scaled_cast_i32_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u16_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u16_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u16_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u8_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u32_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_u32 ... ok
test tensor::tests::scaled_cast_u32_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u32_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u8_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u8_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u8_i32 ... ok
test tensor::tests::tensor_from_array0 ... ok
test tensor::tests::tensor_from_array1 ... ok
test tensor::tests::tensor_from_array2 ... ok
test tensor::tests::tensor_from_array3 ... ok
test tensor::tests::scaled_cast_u8_u32 ... ok
test tensor::tests::tensor_from_array4 ... ok
test tensor::tests::tensor_from_array6 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::tensor_from_arrayD ... ok
test tensor::tests::tensor_serde_host ... ok
test tensor::tests::tensor_serde_device ... ok
test util::tests::size_eq ... ok
test tensor::tests::test_from_array5 ... ok
test util::tests::type_eq ... ok
test tensor::tests::scaled_cast_bf16_bf16 ... ok
test tensor::tests::scaled_cast_i32_bf16 ... ok
test tensor::tests::scaled_cast_u32_bf16 ... ok
test tensor::tests::scaled_cast_u8_bf16 ... ok
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T ... ok
test tensor::tests::scaled_cast_u16_bf16 ... ok

failures:

---- learn::neural_network::autograd::tests::cross_entropy_loss_f32 stdout ----
[src/device/engine.rs:191] physical_device.supported_features() = Features {
    acceleration_structure: false,
    acceleration_structure_capture_replay: false,
    acceleration_structure_host_commands: false,
    acceleration_structure_indirect_build: false,
    advanced_blend_coherent_operations: false,
    alpha_to_one: true,
    attachment_fragment_shading_rate: false,
    bresenham_lines: false,
    buffer_device_address: false,
    buffer_device_address_capture_replay: false,
    buffer_device_address_multi_device: false,
    color_write_enable: false,
    compute_derivative_group_linear: false,
    compute_derivative_group_quads: false,
    compute_full_subgroups: true,
    conditional_rendering: false,
    constant_alpha_color_blend_factors: true,
    cooperative_matrix: false,
    cooperative_matrix_robust_buffer_access: false,
    corner_sampled_image: false,
    coverage_reduction_mode: false,
    custom_border_color_without_format: false,
    custom_border_colors: false,
    decode_mode_shared_exponent: false,
    dedicated_allocation_image_aliasing: false,
    depth_bias_clamp: true,
    depth_bounds: false,
    depth_clamp: true,
    depth_clip_enable: false,
    descriptor_binding_acceleration_structure_update_after_bind: false,
    descriptor_binding_inline_uniform_block_update_after_bind: true,
    descriptor_binding_partially_bound: true,
    descriptor_binding_sampled_image_update_after_bind: true,
    descriptor_binding_storage_buffer_update_after_bind: true,
    descriptor_binding_storage_image_update_after_bind: true,
    descriptor_binding_storage_texel_buffer_update_after_bind: true,
    descriptor_binding_uniform_buffer_update_after_bind: true,
    descriptor_binding_uniform_texel_buffer_update_after_bind: true,
    descriptor_binding_update_unused_while_pending: true,
    descriptor_binding_variable_descriptor_count: true,
    descriptor_indexing: false,
    device_coherent_memory: false,
    device_generated_commands: false,
    device_memory_report: false,
    diagnostics_config: false,
    draw_indirect_count: false,
    draw_indirect_first_instance: true,
    dual_src_blend: true,
    events: true,
    exclusive_scissor: false,
    extended_dynamic_state: false,
    extended_dynamic_state2: false,
    extended_dynamic_state2_logic_op: false,
    extended_dynamic_state2_patch_control_points: false,
    external_memory_rdma: false,
    fill_mode_non_solid: true,
    format_a4b4g4r4: false,
    format_a4r4g4b4: false,
    fragment_density_map: false,
    fragment_density_map_deferred: false,
    fragment_density_map_dynamic: false,
    fragment_density_map_non_subsampled_images: false,
    fragment_shader_barycentric: false,
    fragment_shader_pixel_interlock: true,
    fragment_shader_sample_interlock: true,
    fragment_shader_shading_rate_interlock: false,
    fragment_shading_rate_enums: false,
    fragment_stores_and_atomics: true,
    full_draw_index_uint32: true,
    geometry_shader: false,
    geometry_streams: false,
    global_priority_query: false,
    host_query_reset: true,
    image_cube_array: true,
    image_footprint: false,
    image_view2_d_on3_d_image: false,
    image_view_format_reinterpretation: true,
    image_view_format_swizzle: true,
    imageless_framebuffer: true,
    independent_blend: true,
    index_type_uint8: false,
    inherited_conditional_rendering: false,
    inherited_queries: true,
    inherited_viewport_scissor2_d: false,
    inline_uniform_block: true,
    invocation_mask: false,
    large_points: true,
    logic_op: false,
    memory_priority: false,
    mesh_shader: false,
    multi_draw: false,
    multi_draw_indirect: true,
    multi_viewport: true,
    multisample_array_image: true,
    multiview: true,
    multiview_geometry_shader: false,
    multiview_tessellation_shader: false,
    mutable_comparison_samplers: true,
    mutable_descriptor_type: false,
    no_invocation_fragment_shading_rates: false,
    null_descriptor: false,
    occlusion_query_precise: true,
    pageable_device_local_memory: false,
    performance_counter_multiple_query_pools: false,
    performance_counter_query_pools: false,
    pipeline_creation_cache_control: false,
    pipeline_executable_info: false,
    pipeline_fragment_shading_rate: false,
    pipeline_statistics_query: false,
    point_polygons: false,
    present_id: false,
    present_wait: false,
    primitive_fragment_shading_rate: false,
    primitive_topology_list_restart: false,
    primitive_topology_patch_list_restart: false,
    private_data: true,
    protected_memory: false,
    provoking_vertex_last: false,
    ray_query: false,
    ray_tracing_motion_blur: false,
    ray_tracing_motion_blur_pipeline_trace_rays_indirect: false,
    ray_tracing_pipeline: false,
    ray_tracing_pipeline_shader_group_handle_capture_replay: false,
    ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: false,
    ray_tracing_pipeline_trace_rays_indirect: false,
    ray_traversal_primitive_culling: false,
    rectangular_lines: false,
    representative_fragment_test: false,
    robust_buffer_access: true,
    robust_buffer_access2: false,
    robust_image_access: true,
    robust_image_access2: true,
    runtime_descriptor_array: true,
    sample_rate_shading: true,
    sampler_anisotropy: true,
    sampler_filter_minmax: false,
    sampler_mip_lod_bias: false,
    sampler_mirror_clamp_to_edge: false,
    sampler_ycbcr_conversion: true,
    scalar_block_layout: true,
    separate_depth_stencil_layouts: false,
    separate_stencil_mask_ref: true,
    shader_buffer_float16_atomic_add: false,
    shader_buffer_float16_atomic_min_max: false,
    shader_buffer_float16_atomics: false,
    shader_buffer_float32_atomic_add: false,
    shader_buffer_float32_atomic_min_max: false,
    shader_buffer_float32_atomics: false,
    shader_buffer_float64_atomic_add: false,
    shader_buffer_float64_atomic_min_max: false,
    shader_buffer_float64_atomics: false,
    shader_buffer_int64_atomics: false,
    shader_clip_distance: true,
    shader_cull_distance: false,
    shader_demote_to_helper_invocation: false,
    shader_device_clock: false,
    shader_draw_parameters: true,
    shader_float16: true,
    shader_float64: false,
    shader_image_float32_atomic_add: false,
    shader_image_float32_atomic_min_max: false,
    shader_image_float32_atomics: false,
    shader_image_gather_extended: true,
    shader_image_int64_atomics: false,
    shader_input_attachment_array_dynamic_indexing: true,
    shader_input_attachment_array_non_uniform_indexing: true,
    shader_int16: true,
    shader_int64: true,
    shader_int8: true,
    shader_integer_dot_product: false,
    shader_integer_functions2: true,
    shader_output_layer: false,
    shader_output_viewport_index: false,
    shader_resource_min_lod: true,
    shader_resource_residency: false,
    shader_sample_rate_interpolation_functions: true,
    shader_sampled_image_array_dynamic_indexing: true,
    shader_sampled_image_array_non_uniform_indexing: true,
    shader_shared_float16_atomic_add: false,
    shader_shared_float16_atomic_min_max: false,
    shader_shared_float16_atomics: false,
    shader_shared_float32_atomic_add: false,
    shader_shared_float32_atomic_min_max: false,
    shader_shared_float32_atomics: false,
    shader_shared_float64_atomic_add: false,
    shader_shared_float64_atomic_min_max: false,
    shader_shared_float64_atomics: false,
    shader_shared_int64_atomics: false,
    shader_sm_builtins: false,
    shader_storage_buffer_array_dynamic_indexing: true,
    shader_storage_buffer_array_non_uniform_indexing: false,
    shader_storage_image_array_dynamic_indexing: true,
    shader_storage_image_array_non_uniform_indexing: true,
    shader_storage_image_extended_formats: true,
    shader_storage_image_multisample: false,
    shader_storage_image_read_without_format: true,
    shader_storage_image_write_without_format: true,
    shader_storage_texel_buffer_array_dynamic_indexing: true,
    shader_storage_texel_buffer_array_non_uniform_indexing: true,
    shader_subgroup_clock: false,
    shader_subgroup_extended_types: true,
    shader_subgroup_uniform_control_flow: false,
    shader_terminate_invocation: false,
    shader_tessellation_and_geometry_point_size: true,
    shader_uniform_buffer_array_dynamic_indexing: true,
    shader_uniform_buffer_array_non_uniform_indexing: false,
    shader_uniform_texel_buffer_array_dynamic_indexing: true,
    shader_uniform_texel_buffer_array_non_uniform_indexing: true,
    shader_zero_initialize_workgroup_memory: false,
    shading_rate_coarse_sample_order: false,
    shading_rate_image: false,
    smooth_lines: false,
    sparse_binding: false,
    sparse_image_float32_atomic_add: false,
    sparse_image_float32_atomic_min_max: false,
    sparse_image_float32_atomics: false,
    sparse_image_int64_atomics: false,
    sparse_residency16_samples: false,
    sparse_residency2_samples: false,
    sparse_residency4_samples: false,
    sparse_residency8_samples: false,
    sparse_residency_aliased: false,
    sparse_residency_buffer: false,
    sparse_residency_image2_d: false,
    sparse_residency_image3_d: false,
    stippled_bresenham_lines: false,
    stippled_rectangular_lines: false,
    stippled_smooth_lines: false,
    storage_buffer16_bit_access: true,
    storage_buffer8_bit_access: true,
    storage_input_output16: true,
    storage_push_constant16: true,
    storage_push_constant8: true,
    subgroup_broadcast_dynamic_id: false,
    subgroup_size_control: true,
    subpass_shading: false,
    supersample_fragment_shading_rates: false,
    synchronization2: false,
    task_shader: false,
    tessellation_isolines: false,
    tessellation_point_mode: false,
    tessellation_shader: true,
    texel_buffer_alignment: true,
    texture_compression_astc_hdr: true,
    texture_compression_astc_ldr: true,
    texture_compression_bc: true,
    texture_compression_etc2: true,
    timeline_semaphore: true,
    transform_feedback: false,
    transform_feedback_preserves_provoking_vertex: false,
    triangle_fans: false,
    uniform_and_storage_buffer16_bit_access: true,
    uniform_and_storage_buffer8_bit_access: true,
    uniform_buffer_standard_layout: true,
    variable_multisample_rate: false,
    variable_pointers: true,
    variable_pointers_storage_buffer: true,
    vertex_attribute_access_beyond_stride: true,
    vertex_attribute_instance_rate_divisor: true,
    vertex_attribute_instance_rate_zero_divisor: true,
    vertex_input_dynamic_state: false,
    vertex_pipeline_stores_and_atomics: true,
    vulkan_memory_model: false,
    vulkan_memory_model_availability_visibility_chains: false,
    vulkan_memory_model_device_scope: false,
    wide_lines: false,
    workgroup_memory_explicit_layout: false,
    workgroup_memory_explicit_layout16_bit_access: false,
    workgroup_memory_explicit_layout8_bit_access: false,
    workgroup_memory_explicit_layout_scalar_block_layout: false,
    ycbcr2plane444_formats: false,
    ycbcr_image_arrays: false,
}
thread 'learn::neural_network::autograd::tests::cross_entropy_loss_f32' panicked at 'assert_relative_eq!(y_array, y_true, max_relative = 0.000_001)

    left  = [[761.26965, 663.8111, 568.35254, 474.89398, 383.43542, 293.97687, 206.51831, 121.05977, 37.601215],
 [685.14264, 596.6841, 510.22556, 425.767, 343.30847, 262.8499, 184.39136, 107.9328, 33.47425],
 [609.0157, 529.5571, 452.0986, 376.64005, 303.1815, 231.72295, 162.26439, 94.80584, 29.34729],
 [532.88885, 462.4303, 393.97174, 327.51318, 263.05466, 200.5961, 140.13754, 81.678986, 25.220432],
 [456.76187, 395.3033, 335.8448, 278.38623, 222.92767, 169.46912, 118.01056, 68.552, 21.093452],
 ...,
 [372.17633, 320.7178, 271.25925, 223.80069, 178.34213, 134.88358, 93.425026, 53.966473, 16.50792],
 [296.04938, 253.59082, 213.13226, 174.6737, 138.21515, 103.7566, 71.29805, 40.839493, 12.3809395],
 [219.92229, 186.46375, 155.00519, 125.54664, 98.08809, 72.62954, 49.17099, 27.71244, 8.253891],
 [143.79535, 119.33679, 96.87824, 76.41969, 57.961143, 41.502594, 27.044044, 14.585495, 4.1269455],
 [67.668396, 52.209846, 38.751297, 27.292747, 17.834198, 10.3756485, 4.917099, 1.4585495, 0.0]], shape=[67, 9], strides=[9, 1], layout=Cc (0x5), const ndim=2
    right = [[761.26965, 663.8111, 568.35254, 474.894, 383.43546, 293.9769, 206.51834, 121.0598, 37.601242],
 [685.14264, 596.68414, 510.2256, 425.76706, 343.3085, 262.8499, 184.39137, 107.93283, 33.474277],
 [609.0157, 529.5572, 452.09863, 376.64008, 303.18152, 231.72296, 162.2644, 94.80586, 29.347311],
 [532.88873, 462.4302, 393.97168, 327.51312, 263.05457, 200.596, 140.13745, 81.6789, 25.220345],
 [456.76178, 395.30325, 335.8447, 278.38614, 222.9276, 169.46902, 118.01048, 68.55193, 21.09338],
 ...,
 [372.17627, 320.71774, 271.2592, 223.80063, 178.34207, 134.88351, 93.424965, 53.966415, 16.507862],
 [296.0493, 253.59076, 213.13222, 174.67366, 138.2151, 103.756546, 71.298, 40.83945, 12.380897],
 [219.92233, 186.46379, 155.00525, 125.54669, 98.08814, 72.629585, 49.171032, 27.712484, 8.253931],
 [143.79538, 119.33683, 96.87828, 76.41972, 57.961174, 41.50262, 27.044067, 14.585518, 4.1269655],
 [67.66841, 52.20986, 38.751312, 27.292759, 17.834208, 10.375655, 4.9171033, 1.4585518, 0.0]], shape=[67, 9], strides=[9, 1], layout=Cc (0x5), const ndim=2

', src/learn/neural_network/autograd.rs:1369:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    learn::neural_network::autograd::tests::cross_entropy_loss_f32

test result: FAILED. 145 passed; 1 failed; 2 ignored; 0 measured; 0 filtered out; finished in 5.21s

   Doc-tests autograph

running 2 tests
test src/lib.rs - buffer (line 62) - compile ... ok
test src/learn.rs - learn::neural_network (line 26) - compile ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s
charles-r-earp commented 2 years ago

Looks like potentially rounding error. I changed it to print everything out to make sure.

rjzak commented 2 years ago
% cargo test --features device_tests device_new           
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
warning: unused imports: `SliceMut`, `Slice`
 --> src/device.rs:2:14
  |
2 |     buffer::{Slice, SliceMut},
  |              ^^^^^  ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `bytemuck::Pod`
 --> src/device.rs:6:5
  |
6 | use bytemuck::Pod;
  |     ^^^^^^^^^^^^^

warning: unused imports: `Weak`, `drop`, `iter`, `take`, `time::Duration`
  --> src/device/engine.rs:17:5
   |
17 |     iter,
   |     ^^^^
18 |     iter::once,
19 |     mem::{drop, take, transmute},
   |           ^^^^  ^^^^
...
23 |         Arc, Weak,
   |              ^^^^
24 |     },
25 |     time::Duration,
   |     ^^^^^^^^^^^^^^

warning: unused imports: `AutoCommandBufferBuilder`, `DescriptorSetResources`, `DescriptorSetWithOffsets`, `DescriptorWrite`, `FenceSignalFuture`, `FenceWaitError`, `StdDescriptorPool`, `UnsafeDescriptorSet`, `memory::DeviceMemoryAllocError`, `now`
  --> src/device/engine.rs:39:9
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^
...
46 |             StdDescriptorPool,
   |             ^^^^^^^^^^^^^^^^^
47 |         },
48 |         sys::{DescriptorWrite, UnsafeDescriptorSet},
   |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
...
57 |     memory::DeviceMemoryAllocError,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |            ^^^                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Capability`
 --> src/device/shader.rs:8:13
  |
8 |     spirv::{Capability, Decoration, ExecutionMode, ExecutionModel, Op, StorageClass, Word},
  |             ^^^^^^^^^^

warning: unused import: `ModuleId`
  --> src/device.rs:26:23
   |
26 | use shader::{EntryId, ModuleId};
   |                       ^^^^^^^^

warning: unused import: `PrimaryCommandBuffer`
  --> src/device/engine.rs:39:75
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |                                                                           ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DescriptorSet`
  --> src/device/engine.rs:49:9
   |
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |         ^^^^^^^^^^^^^

warning: unused import: `GpuFuture`
  --> src/device/engine.rs:63:72
   |
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |                                                                        ^^^^^^^^^

warning: unused variable: `base`
   --> src/device.rs:460:21
    |
460 |         if let Some(base) = self.base.as_ref() {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `src`
   --> src/device/buffer.rs:606:36
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`

warning: unused variable: `device`
   --> src/device/buffer.rs:606:47
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `guard`
   --> src/device/buffer.rs:942:26
    |
942 |             Self::Device(guard) => todo!(), // guard.as_slice().to_vec(),
    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`

warning: unnecessary `unsafe` block
   --> src/device/engine.rs:538:27
    |
538 |         let mut barrier = unsafe { UnsafeCommandBufferBuilderPipelineBarrier::new() };
    |                           ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` on by default

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
  --> src/util.rs:35:21
   |
35 |             None => unreachable_unchecked(),
   |                     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
note: the lint level is defined here
  --> src/lib.rs:1:23
   |
1  | #![warn(missing_docs, unsafe_op_in_unsafe_fn)]
   |                       ^^^^^^^^^^^^^^^^^^^^^^
   = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:159:12
    |
159 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:388:12
    |
388 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:167:56
    |
167 |                           FloatType::F32 => Ok(Self::F32($buffer::alloc(device, len)?)),
    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:166:58
    |
166 |                           FloatType::BF16 => Ok(Self::BF16($buffer::alloc(device, len)?)),
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: field is never read: `descriptor_set_layout`
   --> src/device/engine.rs:528:5
    |
528 |     descriptor_set_layout: Arc<DescriptorSetLayout>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `device`
   --> src/device/engine.rs:634:5
    |
634 |     device: Arc<Device>,
    |     ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `into_device`
   --> src/device/buffer.rs:262:14
    |
262 |     async fn into_device(self, device: DeviceBase) -> Result<DeviceBuffer<T>>
    |              ^^^^^^^^^^^

warning: associated function is never used: `specialization_size`
   --> src/device/shader.rs:181:19
    |
181 |     pub(super) fn specialization_size(&self) -> usize {
    |                   ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `size`
   --> src/device/shader.rs:203:19
    |
203 |     pub(super) fn size(&self) -> usize {
    |                   ^^^^

warning: field is never read: `local_size`
   --> src/device.rs:281:5
    |
281 |     local_size: [u32; 3],
    |     ^^^^^^^^^^^^^^^^^^^^

warning: `autograph` (lib test) generated 25 warnings
    Finished test [unoptimized + debuginfo] target(s) in 2.93s
     Running unittests (target/debug/deps/autograph-6651538b3f305376)

running 1 test
[mvk-info] MoltenVK version 1.1.5, supporting Vulkan version 1.1.189.
    The following 72 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v32
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xa140
        pipelineCacheUUID: C1D03328-0400-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 0 Vulkan extensions enabled:
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::tests::device_new ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 41 filtered out; finished in 0.01s

% cargo test --features "full device_tests" --no-fail-fast
   Compiling autograph v0.1.1 (/Users/rjzak/Downloads/autograph)
warning: unused imports: `SliceMut`, `Slice`
 --> src/device.rs:2:14
  |
2 |     buffer::{Slice, SliceMut},
  |              ^^^^^  ^^^^^^^^
  |
  = note: `#[warn(unused_imports)]` on by default

warning: unused import: `bytemuck::Pod`
 --> src/device.rs:6:5
  |
6 | use bytemuck::Pod;
  |     ^^^^^^^^^^^^^

warning: unused imports: `Weak`, `drop`, `iter`, `take`, `time::Duration`
  --> src/device/engine.rs:17:5
   |
17 |     iter,
   |     ^^^^
18 |     iter::once,
19 |     mem::{drop, take, transmute},
   |           ^^^^  ^^^^
...
23 |         Arc, Weak,
   |              ^^^^
24 |     },
25 |     time::Duration,
   |     ^^^^^^^^^^^^^^

warning: unused imports: `AutoCommandBufferBuilder`, `DescriptorSetResources`, `DescriptorSetWithOffsets`, `DescriptorWrite`, `FenceSignalFuture`, `FenceWaitError`, `StdDescriptorPool`, `UnsafeDescriptorSet`, `memory::DeviceMemoryAllocError`, `now`
  --> src/device/engine.rs:39:9
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |         ^^^^^^^^^^^^^^^^^^^^^^^^
...
46 |             StdDescriptorPool,
   |             ^^^^^^^^^^^^^^^^^
47 |         },
48 |         sys::{DescriptorWrite, UnsafeDescriptorSet},
   |               ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |                        ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^
...
57 |     memory::DeviceMemoryAllocError,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |            ^^^                      ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^

warning: unused import: `Capability`
 --> src/device/shader.rs:8:13
  |
8 |     spirv::{Capability, Decoration, ExecutionMode, ExecutionModel, Op, StorageClass, Word},
  |             ^^^^^^^^^^

warning: unused import: `ModuleId`
  --> src/device.rs:26:23
   |
26 | use shader::{EntryId, ModuleId};
   |                       ^^^^^^^^

warning: unused import: `PrimaryCommandBuffer`
  --> src/device/engine.rs:39:75
   |
39 |         AutoCommandBufferBuilder, CommandBufferLevel, CommandBufferUsage, PrimaryCommandBuffer,
   |                                                                           ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `DescriptorSet`
  --> src/device/engine.rs:49:9
   |
49 |         DescriptorSet, DescriptorSetResources, DescriptorSetWithOffsets,
   |         ^^^^^^^^^^^^^

warning: unused import: `GpuFuture`
  --> src/device/engine.rs:63:72
   |
63 |     sync::{now, AccessFlags, Fence, FenceSignalFuture, FenceWaitError, GpuFuture, PipelineStages},
   |                                                                        ^^^^^^^^^

warning: unused variable: `base`
   --> src/device.rs:460:21
    |
460 |         if let Some(base) = self.base.as_ref() {
    |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_base`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `src`
   --> src/device/buffer.rs:606:36
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                    ^^^ help: if this is intentional, prefix it with an underscore: `_src`

warning: unused variable: `device`
   --> src/device/buffer.rs:606:47
    |
606 |             (DynBufferBase::Device(src), Some(device)) => todo!(), // Ok(src.into_device(device).await?.into()),
    |                                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_device`

warning: unused variable: `guard`
   --> src/device/buffer.rs:942:26
    |
942 |             Self::Device(guard) => todo!(), // guard.as_slice().to_vec(),
    |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_guard`

warning: unnecessary `unsafe` block
   --> src/device/engine.rs:538:27
    |
538 |         let mut barrier = unsafe { UnsafeCommandBufferBuilderPipelineBarrier::new() };
    |                           ^^^^^^ unnecessary `unsafe` block
    |
    = note: `#[warn(unused_unsafe)]` on by default

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
  --> src/util.rs:35:21
   |
35 |             None => unreachable_unchecked(),
   |                     ^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
note: the lint level is defined here
  --> src/lib.rs:1:23
   |
1  | #![warn(missing_docs, unsafe_op_in_unsafe_fn)]
   |                       ^^^^^^^^^^^^^^^^^^^^^^
   = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:159:12
    |
159 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer.rs:388:12
    |
388 |         Ok(Buffer::alloc(device, len)?.into())
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/tensor/float.rs:338:35
    |
338 |         let data = S::from_buffer(FloatBuffer::alloc(float_type, device, dim.size())?);
    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:167:56
    |
167 |                           FloatType::F32 => Ok(Self::F32($buffer::alloc(device, len)?)),
    |                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: call to unsafe function is unsafe and requires unsafe block (error E0133)
   --> src/buffer/float.rs:166:58
    |
166 |                           FloatType::BF16 => Ok(Self::BF16($buffer::alloc(device, len)?)),
    |                                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
...
210 | / impl_float_buffer_owned! {
211 | |     (FloatBuffer, Buffer),
212 | |     (FloatArcBuffer, ArcBuffer),
213 | |     (FloatCowBuffer<'a>, CowBuffer<'a>),
214 | | }
    | |_- in this macro invocation
    |
    = note: consult the function's documentation for information on how to avoid undefined behavior
    = note: this warning originates in the macro `impl_float_buffer_owned` (in Nightly builds, run with -Z macro-backtrace for more info)

warning: field is never read: `descriptor_set_layout`
   --> src/device/engine.rs:528:5
    |
528 |     descriptor_set_layout: Arc<DescriptorSetLayout>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: field is never read: `device`
   --> src/device/engine.rs:634:5
    |
634 |     device: Arc<Device>,
    |     ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `into_device`
   --> src/device/buffer.rs:262:14
    |
262 |     async fn into_device(self, device: DeviceBase) -> Result<DeviceBuffer<T>>
    |              ^^^^^^^^^^^

warning: associated function is never used: `specialization_size`
   --> src/device/shader.rs:181:19
    |
181 |     pub(super) fn specialization_size(&self) -> usize {
    |                   ^^^^^^^^^^^^^^^^^^^

warning: associated function is never used: `size`
   --> src/device/shader.rs:203:19
    |
203 |     pub(super) fn size(&self) -> usize {
    |                   ^^^^

warning: field is never read: `local_size`
   --> src/device.rs:281:5
    |
281 |     local_size: [u32; 3],
    |     ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `half::bf16`
   --> src/tensor/linalg.rs:181:9
    |
181 |     use half::bf16;
    |         ^^^^^^^^^^

warning: `autograph` (lib) generated 26 warnings
warning: `autograph` (lib test) generated 27 warnings (26 duplicates)
    Finished test [unoptimized + debuginfo] target(s) in 7.93s
     Running unittests (target/debug/deps/autograph-6263cc1c4b31f23f)

running 148 tests
[mvk-info] MoltenVK version 1.1.5, supporting Vulkan version 1.1.189.
    The following 72 Vulkan extensions are supported:
        VK_KHR_16bit_storage v1
        VK_KHR_8bit_storage v1
        VK_KHR_bind_memory2 v1
        VK_KHR_create_renderpass2 v1
        VK_KHR_dedicated_allocation v3
        VK_KHR_depth_stencil_resolve v1
        VK_KHR_descriptor_update_template v1
        VK_KHR_device_group v4
        VK_KHR_device_group_creation v1
        VK_KHR_driver_properties v1
        VK_KHR_external_fence v1
        VK_KHR_external_fence_capabilities v1
        VK_KHR_external_memory v1
        VK_KHR_external_memory_capabilities v1
        VK_KHR_external_semaphore v1
        VK_KHR_external_semaphore_capabilities v1
        VK_KHR_get_memory_requirements2 v1
        VK_KHR_get_physical_device_properties2 v2
        VK_KHR_get_surface_capabilities2 v1
        VK_KHR_imageless_framebuffer v1
        VK_KHR_image_format_list v1
        VK_KHR_maintenance1 v2
        VK_KHR_maintenance2 v1
        VK_KHR_maintenance3 v1
        VK_KHR_multiview v1
        VK_KHR_portability_subset v1
        VK_KHR_push_descriptor v2
        VK_KHR_relaxed_block_layout v1
        VK_KHR_sampler_mirror_clamp_to_edge v3
        VK_KHR_sampler_ycbcr_conversion v14
        VK_KHR_shader_draw_parameters v1
        VK_KHR_shader_float16_int8 v1
        VK_KHR_shader_subgroup_extended_types v1
        VK_KHR_storage_buffer_storage_class v1
        VK_KHR_surface v25
        VK_KHR_swapchain v70
        VK_KHR_swapchain_mutable_format v1
        VK_KHR_timeline_semaphore v2
        VK_KHR_uniform_buffer_standard_layout v1
        VK_KHR_variable_pointers v1
        VK_EXT_debug_marker v4
        VK_EXT_debug_report v10
        VK_EXT_debug_utils v2
        VK_EXT_descriptor_indexing v2
        VK_EXT_fragment_shader_interlock v1
        VK_EXT_hdr_metadata v2
        VK_EXT_host_query_reset v1
        VK_EXT_image_robustness v1
        VK_EXT_inline_uniform_block v1
        VK_EXT_memory_budget v1
        VK_EXT_metal_surface v1
        VK_EXT_post_depth_coverage v1
        VK_EXT_private_data v1
        VK_EXT_robustness2 v1
        VK_EXT_scalar_block_layout v1
        VK_EXT_shader_stencil_export v1
        VK_EXT_shader_viewport_index_layer v1
        VK_EXT_subgroup_size_control v2
        VK_EXT_swapchain_colorspace v4
        VK_EXT_texel_buffer_alignment v1
        VK_EXT_texture_compression_astc_hdr v1
        VK_EXT_vertex_attribute_divisor v3
        VK_AMD_gpu_shader_half_float v2
        VK_AMD_negative_viewport_height v1
        VK_AMD_shader_image_load_store_lod v1
        VK_AMD_shader_trinary_minmax v1
        VK_IMG_format_pvrtc v1
        VK_INTEL_shader_integer_functions2 v1
        VK_GOOGLE_display_timing v1
        VK_MVK_macos_surface v3
        VK_MVK_moltenvk v32
        VK_NV_glsl_shader v1
[mvk-info] GPU device:
        model: Apple M1
        type: Integrated
        vendorID: 0x106b
        deviceID: 0xa140
        pipelineCacheUUID: C1D03328-0400-03EF-0000-000000000000
    supports the following Metal Versions, GPU's and Feature Sets:
        Metal Shading Language 2.3
        GPU Family Apple 7
        GPU Family Apple 6
        GPU Family Apple 5
        GPU Family Apple 4
        GPU Family Apple 3
        GPU Family Apple 2
        GPU Family Apple 1
        GPU Family Mac 2
        GPU Family Mac 1
        GPU Family Common 3
        GPU Family Common 2
        GPU Family Common 1
        macOS GPU Family 2 v1
        macOS GPU Family 1 v4
        macOS GPU Family 1 v3
        macOS GPU Family 1 v2
        macOS GPU Family 1 v1
[mvk-info] Created VkInstance for Vulkan version 1.1.0, as requested by app, with the following 0 Vulkan extensions enabled:
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::device_buffer_from_vec ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::device_buffer_serde ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::device_buffer_copy_from_slice ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_i64 ... ok
test buffer::tests::fill_f16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_u16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_u32 ... ok
test buffer::tests::fill_i8 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::host_buffer_copy_from_slice ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::host_buffer_serde ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_f32 ... ok
test buffer::tests::fill_u8 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_u64 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::bf16::u32 ... [mvk-info] Using MTLEvent for Vulkan semaphores.
ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_i16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::f32::f32 ... ok
test buffer::tests::scale::bf16::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::bf16::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
test buffer::tests::scale::f32::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::fill_f64 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::i32::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
test buffer::tests::scale::i32::u32 ... ok
test buffer::tests::scale::u16::u32 ... ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u16::f32 ... [mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::i32::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
test buffer::tests::scale::f32::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::engine::tests::instance ... [mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u32::u32 ... [mvk-info] Using MTLEvent for Vulkan semaphores.
ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::tests::device_new ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u8::u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u8::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u32::f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u8::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u16::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test buffer::tests::scale::u32::i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::cross_entropy_loss_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::cross_entropy_loss_f32 ... FAILED
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::max_pool_2d_backward_atomic_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::max_pool_2d_f32 ... ok
test learn::neural_network::layer::tests::max_pool_2d_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::mean_pool_2d_backward_atomic_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::mean_pool_2d_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::mean_pool_2d_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::relu_backward_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::relu_backward_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::layer::tests::relu_bf16 ... ok
test learn::neural_network::layer::tests::relu_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::accuracy::tests::accuracy_u32 ... ok
test learn::neural_network::autograd::tests::bias_backward_f32 ... ok
test learn::kmeans::tests::compute_distances_f32_m11_k5_n13 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::neural_network::autograd::tests::bias_backward_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test learn::kmeans::tests::compute_distances_bf16_m11_k5_n13 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m21_k31_n41_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m25_k611_n6_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test device::shader::tests::shader_module_from_spirv ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test glsl_shaders::tests::to_metal ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_T ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_f32_m121_k131_n141_T_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m21_k31_n41_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test rust_shaders::tests::core_to_metal ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_u32_m21_k31_n41_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_N_T ... ok
test tensor::ops::tests::im2col_convolution_bf16 ... ignored
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::ops::tests::col2im_convolution_f32 ... ok
test tensor::reduce::tests::atomic_add_f32 ... ignored
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_bf16_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_bf16_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::ops::tests::im2col_convolution_f32 ... ok
test tensor::reduce::tests::tensor_argmax_f32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_f32_22x23_axis1 ... ok
test tensor::reduce::tests::tensor_argmax_i32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_u32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmax_i32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_bf16_11x12_axis0 ... ok
test tensor::reduce::tests::tensor_argmax_u32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_f32_11x12_axis0 ... ok
test tensor::reduce::tests::tensor_argmin_bf16_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_i32_11x12_axis0 ... ok
test tensor::reduce::tests::tensor_argmin_f32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_u32_11x12_axis0 ... ok
test tensor::reduce::tests::tensor_argmin_i32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_argmin_u32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_bf16_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_bf16_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_f32_11x12_axis0 ... ok
test tensor::reduce::tests::tensor_sum_f32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_i32_11x12_axis0 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_i32_22x23_axis1 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_N ... ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reduce::tests::tensor_sum_u32_22x23_axis1 ... ok
test tensor::reduce::tests::tensor_sum_u32_11x12_axis0 ... ok
test tensor::reorder::tests::into_standard_layout_4d_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_N ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::reorder::tests::into_standard_layout_6d_u32 ... ok
test tensor::reorder::tests::reorder_2d_f32_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u16_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_bf16 ... ok
test tensor::tests::one_hot_u32_f32 ... ok
test tensor::tests::one_hot_u16_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u8_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u32_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::one_hot_u8_bf16 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_bf16_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_bf16_bf16 ... ok
test tensor::tests::one_hot_u8_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_bf16_u32 ... ok
test tensor::tests::one_hot_u8_u32 ... ok
test tensor::tests::scaled_cast_i32_bf16 ... ok
test tensor::tests::scaled_cast_bf16_i32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_i32_i32 ... ok
test tensor::tests::scaled_cast_u16_bf16 ... ok[mvk-info] Using MTLEvent for Vulkan semaphores.

[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_i32_u32 ... ok
test tensor::tests::scaled_cast_i32_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u16_f32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u32_bf16 ... ok
test tensor::tests::scaled_cast_u16_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
test tensor::tests::scaled_cast_u16_i32 ... ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::scaled_cast_u32_i32 ... ok
test tensor::tests::scaled_cast_u8_bf16 ... ok
test tensor::tests::scaled_cast_u32_u32 ... ok
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
test tensor::tests::scaled_cast_u32_f32 ... ok
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
[mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
test tensor::tests::tensor_from_array0 ... ok
test tensor::tests::tensor_from_array1 ... ok
test tensor::tests::tensor_from_array2 ... ok
test tensor::tests::tensor_from_array3 ... ok
test tensor::tests::tensor_from_array4 ... ok
test tensor::tests::tensor_from_array6 ... ok
test tensor::tests::scaled_cast_u8_f32 ... ok
test tensor::tests::scaled_cast_u8_u32 ... ok
test tensor::tests::scaled_cast_u8_i32 ... [mvk-info] Using MTLEvent for Vulkan semaphores.
[mvk-info] Created VkDevice to run on GPU Apple M1 with the following 1 Vulkan extensions enabled:
        VK_KHR_portability_subset v1
ok
test tensor::tests::tensor_serde_host ... ok
test util::tests::size_eq ... ok
test tensor::tests::tensor_from_arrayD ... ok
test tensor::tests::test_from_array5 ... ok
test util::tests::type_eq ... ok
test tensor::tests::tensor_serde_device ... ok
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_N_T ... ok
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_N ... ok
test tensor::linalg::tests::tensor_dot_i32_m121_k131_n141_T_T ... ok
test tensor::linalg::tests::tensor_dot_u32_m121_k131_n141_T_T ... ok

failures:

---- learn::neural_network::autograd::tests::cross_entropy_loss_f32 stdout ----
[src/device/engine.rs:191] physical_device.supported_features() = Features {
    acceleration_structure: false,
    acceleration_structure_capture_replay: false,
    acceleration_structure_host_commands: false,
    acceleration_structure_indirect_build: false,
    advanced_blend_coherent_operations: false,
    alpha_to_one: true,
    attachment_fragment_shading_rate: false,
    bresenham_lines: false,
    buffer_device_address: false,
    buffer_device_address_capture_replay: false,
    buffer_device_address_multi_device: false,
    color_write_enable: false,
    compute_derivative_group_linear: false,
    compute_derivative_group_quads: false,
    compute_full_subgroups: true,
    conditional_rendering: false,
    constant_alpha_color_blend_factors: true,
    cooperative_matrix: false,
    cooperative_matrix_robust_buffer_access: false,
    corner_sampled_image: false,
    coverage_reduction_mode: false,
    custom_border_color_without_format: false,
    custom_border_colors: false,
    decode_mode_shared_exponent: false,
    dedicated_allocation_image_aliasing: false,
    depth_bias_clamp: true,
    depth_bounds: false,
    depth_clamp: true,
    depth_clip_enable: false,
    descriptor_binding_acceleration_structure_update_after_bind: false,
    descriptor_binding_inline_uniform_block_update_after_bind: true,
    descriptor_binding_partially_bound: true,
    descriptor_binding_sampled_image_update_after_bind: true,
    descriptor_binding_storage_buffer_update_after_bind: true,
    descriptor_binding_storage_image_update_after_bind: true,
    descriptor_binding_storage_texel_buffer_update_after_bind: true,
    descriptor_binding_uniform_buffer_update_after_bind: true,
    descriptor_binding_uniform_texel_buffer_update_after_bind: true,
    descriptor_binding_update_unused_while_pending: true,
    descriptor_binding_variable_descriptor_count: true,
    descriptor_indexing: false,
    device_coherent_memory: false,
    device_generated_commands: false,
    device_memory_report: false,
    diagnostics_config: false,
    draw_indirect_count: false,
    draw_indirect_first_instance: true,
    dual_src_blend: true,
    events: true,
    exclusive_scissor: false,
    extended_dynamic_state: false,
    extended_dynamic_state2: false,
    extended_dynamic_state2_logic_op: false,
    extended_dynamic_state2_patch_control_points: false,
    external_memory_rdma: false,
    fill_mode_non_solid: true,
    format_a4b4g4r4: false,
    format_a4r4g4b4: false,
    fragment_density_map: false,
    fragment_density_map_deferred: false,
    fragment_density_map_dynamic: false,
    fragment_density_map_non_subsampled_images: false,
    fragment_shader_barycentric: false,
    fragment_shader_pixel_interlock: true,
    fragment_shader_sample_interlock: true,
    fragment_shader_shading_rate_interlock: false,
    fragment_shading_rate_enums: false,
    fragment_stores_and_atomics: true,
    full_draw_index_uint32: true,
    geometry_shader: false,
    geometry_streams: false,
    global_priority_query: false,
    host_query_reset: true,
    image_cube_array: true,
    image_footprint: false,
    image_view2_d_on3_d_image: false,
    image_view_format_reinterpretation: true,
    image_view_format_swizzle: true,
    imageless_framebuffer: true,
    independent_blend: true,
    index_type_uint8: false,
    inherited_conditional_rendering: false,
    inherited_queries: true,
    inherited_viewport_scissor2_d: false,
    inline_uniform_block: true,
    invocation_mask: false,
    large_points: true,
    logic_op: false,
    memory_priority: false,
    mesh_shader: false,
    multi_draw: false,
    multi_draw_indirect: true,
    multi_viewport: true,
    multisample_array_image: true,
    multiview: true,
    multiview_geometry_shader: false,
    multiview_tessellation_shader: false,
    mutable_comparison_samplers: true,
    mutable_descriptor_type: false,
    no_invocation_fragment_shading_rates: false,
    null_descriptor: false,
    occlusion_query_precise: true,
    pageable_device_local_memory: false,
    performance_counter_multiple_query_pools: false,
    performance_counter_query_pools: false,
    pipeline_creation_cache_control: false,
    pipeline_executable_info: false,
    pipeline_fragment_shading_rate: false,
    pipeline_statistics_query: false,
    point_polygons: false,
    present_id: false,
    present_wait: false,
    primitive_fragment_shading_rate: false,
    primitive_topology_list_restart: false,
    primitive_topology_patch_list_restart: false,
    private_data: true,
    protected_memory: false,
    provoking_vertex_last: false,
    ray_query: false,
    ray_tracing_motion_blur: false,
    ray_tracing_motion_blur_pipeline_trace_rays_indirect: false,
    ray_tracing_pipeline: false,
    ray_tracing_pipeline_shader_group_handle_capture_replay: false,
    ray_tracing_pipeline_shader_group_handle_capture_replay_mixed: false,
    ray_tracing_pipeline_trace_rays_indirect: false,
    ray_traversal_primitive_culling: false,
    rectangular_lines: false,
    representative_fragment_test: false,
    robust_buffer_access: true,
    robust_buffer_access2: false,
    robust_image_access: true,
    robust_image_access2: true,
    runtime_descriptor_array: true,
    sample_rate_shading: true,
    sampler_anisotropy: true,
    sampler_filter_minmax: false,
    sampler_mip_lod_bias: false,
    sampler_mirror_clamp_to_edge: false,
    sampler_ycbcr_conversion: true,
    scalar_block_layout: true,
    separate_depth_stencil_layouts: false,
    separate_stencil_mask_ref: true,
    shader_buffer_float16_atomic_add: false,
    shader_buffer_float16_atomic_min_max: false,
    shader_buffer_float16_atomics: false,
    shader_buffer_float32_atomic_add: false,
    shader_buffer_float32_atomic_min_max: false,
    shader_buffer_float32_atomics: false,
    shader_buffer_float64_atomic_add: false,
    shader_buffer_float64_atomic_min_max: false,
    shader_buffer_float64_atomics: false,
    shader_buffer_int64_atomics: false,
    shader_clip_distance: true,
    shader_cull_distance: false,
    shader_demote_to_helper_invocation: false,
    shader_device_clock: false,
    shader_draw_parameters: true,
    shader_float16: true,
    shader_float64: false,
    shader_image_float32_atomic_add: false,
    shader_image_float32_atomic_min_max: false,
    shader_image_float32_atomics: false,
    shader_image_gather_extended: true,
    shader_image_int64_atomics: false,
    shader_input_attachment_array_dynamic_indexing: true,
    shader_input_attachment_array_non_uniform_indexing: true,
    shader_int16: true,
    shader_int64: true,
    shader_int8: true,
    shader_integer_dot_product: false,
    shader_integer_functions2: true,
    shader_output_layer: false,
    shader_output_viewport_index: false,
    shader_resource_min_lod: true,
    shader_resource_residency: false,
    shader_sample_rate_interpolation_functions: true,
    shader_sampled_image_array_dynamic_indexing: true,
    shader_sampled_image_array_non_uniform_indexing: true,
    shader_shared_float16_atomic_add: false,
    shader_shared_float16_atomic_min_max: false,
    shader_shared_float16_atomics: false,
    shader_shared_float32_atomic_add: false,
    shader_shared_float32_atomic_min_max: false,
    shader_shared_float32_atomics: false,
    shader_shared_float64_atomic_add: false,
    shader_shared_float64_atomic_min_max: false,
    shader_shared_float64_atomics: false,
    shader_shared_int64_atomics: false,
    shader_sm_builtins: false,
    shader_storage_buffer_array_dynamic_indexing: true,
    shader_storage_buffer_array_non_uniform_indexing: false,
    shader_storage_image_array_dynamic_indexing: true,
    shader_storage_image_array_non_uniform_indexing: true,
    shader_storage_image_extended_formats: true,
    shader_storage_image_multisample: false,
    shader_storage_image_read_without_format: true,
    shader_storage_image_write_without_format: true,
    shader_storage_texel_buffer_array_dynamic_indexing: true,
    shader_storage_texel_buffer_array_non_uniform_indexing: true,
    shader_subgroup_clock: false,
    shader_subgroup_extended_types: true,
    shader_subgroup_uniform_control_flow: false,
    shader_terminate_invocation: false,
    shader_tessellation_and_geometry_point_size: true,
    shader_uniform_buffer_array_dynamic_indexing: true,
    shader_uniform_buffer_array_non_uniform_indexing: false,
    shader_uniform_texel_buffer_array_dynamic_indexing: true,
    shader_uniform_texel_buffer_array_non_uniform_indexing: true,
    shader_zero_initialize_workgroup_memory: false,
    shading_rate_coarse_sample_order: false,
    shading_rate_image: false,
    smooth_lines: false,
    sparse_binding: false,
    sparse_image_float32_atomic_add: false,
    sparse_image_float32_atomic_min_max: false,
    sparse_image_float32_atomics: false,
    sparse_image_int64_atomics: false,
    sparse_residency16_samples: false,
    sparse_residency2_samples: false,
    sparse_residency4_samples: false,
    sparse_residency8_samples: false,
    sparse_residency_aliased: false,
    sparse_residency_buffer: false,
    sparse_residency_image2_d: false,
    sparse_residency_image3_d: false,
    stippled_bresenham_lines: false,
    stippled_rectangular_lines: false,
    stippled_smooth_lines: false,
    storage_buffer16_bit_access: true,
    storage_buffer8_bit_access: true,
    storage_input_output16: true,
    storage_push_constant16: true,
    storage_push_constant8: true,
    subgroup_broadcast_dynamic_id: false,
    subgroup_size_control: true,
    subpass_shading: false,
    supersample_fragment_shading_rates: false,
    synchronization2: false,
    task_shader: false,
    tessellation_isolines: false,
    tessellation_point_mode: false,
    tessellation_shader: true,
    texel_buffer_alignment: true,
    texture_compression_astc_hdr: true,
    texture_compression_astc_ldr: true,
    texture_compression_bc: true,
    texture_compression_etc2: true,
    timeline_semaphore: true,
    transform_feedback: false,
    transform_feedback_preserves_provoking_vertex: false,
    triangle_fans: false,
    uniform_and_storage_buffer16_bit_access: true,
    uniform_and_storage_buffer8_bit_access: true,
    uniform_buffer_standard_layout: true,
    variable_multisample_rate: false,
    variable_pointers: true,
    variable_pointers_storage_buffer: true,
    vertex_attribute_access_beyond_stride: true,
    vertex_attribute_instance_rate_divisor: true,
    vertex_attribute_instance_rate_zero_divisor: true,
    vertex_input_dynamic_state: false,
    vertex_pipeline_stores_and_atomics: true,
    vulkan_memory_model: false,
    vulkan_memory_model_availability_visibility_chains: false,
    vulkan_memory_model_device_scope: false,
    wide_lines: false,
    workgroup_memory_explicit_layout: false,
    workgroup_memory_explicit_layout16_bit_access: false,
    workgroup_memory_explicit_layout8_bit_access: false,
    workgroup_memory_explicit_layout_scalar_block_layout: false,
    ycbcr2plane444_formats: false,
    ycbcr_image_arrays: false,
}
thread 'learn::neural_network::autograd::tests::cross_entropy_loss_f32' panicked at '!relative_eq [
    (
        [761.26965, 663.8111, 568.35254, 474.89398, 383.43542, 293.97687, 206.51831, 121.05977, 37.601215], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [761.26965, 663.8111, 568.35254, 474.894, 383.43546, 293.9769, 206.51834, 121.0598, 37.601242], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [685.14264, 596.6841, 510.22556, 425.767, 343.30847, 262.8499, 184.39136, 107.9328, 33.47425], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [685.14264, 596.68414, 510.2256, 425.76706, 343.3085, 262.8499, 184.39137, 107.93283, 33.474277], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [609.0157, 529.5571, 452.0986, 376.64005, 303.1815, 231.72295, 162.26439, 94.80584, 29.34729], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [609.0157, 529.5572, 452.09863, 376.64008, 303.18152, 231.72296, 162.2644, 94.80586, 29.347311], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [532.88885, 462.4303, 393.97174, 327.51318, 263.05466, 200.5961, 140.13754, 81.678986, 25.220432], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [532.88873, 462.4302, 393.97168, 327.51312, 263.05457, 200.596, 140.13745, 81.6789, 25.220345], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [456.76187, 395.3033, 335.8448, 278.38623, 222.92767, 169.46912, 118.01056, 68.552, 21.093452], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [456.76178, 395.30325, 335.8447, 278.38614, 222.9276, 169.46902, 118.01048, 68.55193, 21.09338], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [380.6349, 328.17633, 277.7178, 229.25925, 182.80069, 138.34213, 95.883575, 55.425026, 16.966473], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [380.63483, 328.17627, 277.71774, 229.25919, 182.80063, 138.34207, 95.883514, 55.42497, 16.966413], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [304.50793, 261.04938, 219.59082, 180.13226, 142.6737, 107.21515, 73.7566, 42.298046, 12.839493], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [304.50784, 261.04932, 219.59076, 180.13222, 142.67366, 107.2151, 73.756546, 42.298, 12.839449], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [228.38083, 193.92229, 161.46375, 131.00519, 102.54664, 76.08809, 51.62954, 29.17099, 8.7124405], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [228.38089, 193.92235, 161.46379, 131.00525, 102.54669, 76.088135, 51.629585, 29.171036, 8.712483], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [152.25389, 126.79534, 103.33679, 81.87824, 62.419693, 44.961143, 29.502594, 16.044044, 4.585495], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [152.25392, 126.79538, 103.33683, 81.87828, 62.419727, 44.96117, 29.50262, 16.04407, 4.5855174], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [76.126945, 59.668396, 45.209846, 32.751297, 22.292747, 13.834198, 7.3756485, 2.917099, 0.4585495], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [76.12696, 59.668415, 45.20986, 32.751312, 22.292759, 13.834207, 7.375655, 2.9171035, 0.45855173], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [0.0, 1901.9302, 1640.4716, 1381.0131, 1123.5544, 868.09595, 614.6374, 363.17883, 113.720276], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [0.0, 1901.9308, 1640.4722, 1381.0137, 1123.555, 868.09644, 614.63794, 363.17938, 113.72083], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [2089.2617, 1834.8032, 1582.3446, 1331.8861, 1083.4275, 836.969, 592.51044, 350.05188, 109.59333], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [2089.2622, 1834.8037, 1582.3452, 1331.8867, 1083.4281, 836.9695, 592.5109, 350.05243, 109.593864], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [2013.1348, 1767.6763, 1524.2177, 1282.7592, 1043.3005, 805.84204, 570.3835, 336.92493, 105.466385], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [2013.1353, 1767.6768, 1524.2183, 1282.7596, 1043.3011, 805.8425, 570.384, 336.92545, 105.466896], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1937.0078, 1700.5493, 1466.0907, 1233.6322, 1003.17365, 774.7151, 548.25653, 323.79797, 101.33944], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1937.0083, 1700.5498, 1466.0913, 1233.6327, 1003.1742, 774.7156, 548.257, 323.7985, 101.339935], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1860.8826, 1633.4241, 1407.9655, 1184.5068, 963.04834, 743.5898, 526.1312, 310.67267, 97.21411], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1860.8813, 1633.4229, 1407.9644, 1184.5057, 963.0472, 743.5886, 526.13007, 310.67154, 97.21297], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1784.7556, 1566.297, 1349.8384, 1135.3799, 922.9213, 712.46277, 504.0042, 297.54565, 93.0871], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1784.7544, 1566.2959, 1349.8374, 1135.3788, 922.9202, 712.4616, 504.00308, 297.54456, 93.086], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1708.6285, 1499.1699, 1291.7114, 1086.2529, 882.7943, 681.33575, 481.8772, 284.41864, 88.96008], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1708.6274, 1499.169, 1291.7103, 1086.2518, 882.7933, 681.33466, 481.87613, 284.4176, 88.95904], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1632.5015, 1432.043, 1233.5845, 1037.1259, 842.6673, 650.20874, 459.75018, 271.29163, 84.83307], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1632.5004, 1432.042, 1233.5834, 1037.1249, 842.6663, 650.2077, 459.74915, 271.29062, 84.83207], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1556.3745, 1364.916, 1175.4574, 987.99884, 802.5403, 619.0817, 437.62317, 258.1646, 80.706055], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1556.3734, 1364.915, 1175.4564, 987.99786, 802.53937, 619.08075, 437.6222, 258.16367, 80.70511], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1480.2476, 1297.789, 1117.3303, 938.8718, 762.41327, 587.9547, 415.49615, 245.0376, 76.57904], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1480.2465, 1297.7881, 1117.3295, 938.8709, 762.41235, 587.9538, 415.49524, 245.0367, 76.57814], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1404.1205, 1230.6619, 1059.2034, 889.7448, 722.28625, 556.8277, 393.36914, 231.91058, 72.45203], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1404.1195, 1230.661, 1059.2025, 889.74396, 722.2854, 556.82684, 393.36826, 231.90973, 72.45117], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1327.9934, 1163.5349, 1001.07635, 840.6178, 682.15924, 525.7007, 371.24213, 218.78357, 68.32501], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1327.9926, 1163.534, 1001.07556, 840.617, 682.15845, 525.6998, 371.2413, 218.78276, 68.32421], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1251.8665, 1096.408, 942.94934, 791.4908, 642.0322, 494.57367, 349.1151, 205.65656, 64.198], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1251.8656, 1096.4071, 942.94855, 791.49005, 642.0315, 494.57288, 349.11432, 205.65579, 64.19724], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1175.7395, 1029.2809, 884.8223, 742.3638, 601.9052, 463.44666, 326.9881, 192.52954, 60.070984], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1175.7386, 1029.2802, 884.8216, 742.36304, 601.9045, 463.44592, 326.98737, 192.52884, 60.07028], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1099.6124, 962.1539, 826.6953, 693.23676, 561.7782, 432.31964, 304.86108, 179.40253, 55.94397], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1099.6117, 962.1532, 826.69464, 693.2361, 561.7775, 432.31897, 304.8604, 179.40187, 55.94331], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1023.4854, 895.02686, 768.5683, 644.10974, 521.6512, 401.19263, 282.73407, 166.27551, 51.816956], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1023.48474, 895.02625, 768.5677, 644.10913, 521.6506, 401.192, 282.73343, 166.2749, 51.816345], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [947.3584, 827.89984, 710.4413, 594.9827, 481.52417, 370.0656, 260.60706, 153.1485, 47.68994], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [947.3578, 827.89923, 710.44073, 594.9822, 481.5236, 370.06503, 260.60648, 153.14793, 47.68938], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [871.2314, 760.7728, 652.3143, 545.8557, 441.39716, 338.9386, 238.48004, 140.02148, 43.562927], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [871.2308, 760.7723, 652.3137, 545.85516, 441.39664, 338.93805, 238.4795, 140.02097, 43.562416], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [323.37744, 226.93726, 132.49707, 40.056885, 22989.617, 22645.176, 22302.736, 21962.297, 21623.855], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [323.3778, 226.93764, 132.49745, 40.057262, 22989.617, 22645.176, 22302.736, 21962.297, 21623.855], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [718.97687, 626.5183, 536.05975, 447.60123, 361.14267, 276.6841, 194.22556, 113.76701, 35.308456], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [718.97687, 626.5184, 536.0598, 447.60126, 361.1427, 276.68414, 194.22559, 113.76704, 35.308483], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [642.8499, 559.39136, 477.9328, 398.47424, 321.0157, 245.55714, 172.0986, 100.640045, 31.181496], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [642.8499, 559.3914, 477.93283, 398.47427, 321.01575, 245.55716, 172.09862, 100.64007, 31.181519], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [566.72296, 492.2644, 419.80585, 349.3473, 280.88873, 214.43019, 149.97163, 87.513084, 27.054533], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [566.72296, 492.26443, 419.80588, 349.34732, 280.88876, 214.4302, 149.97165, 87.51311, 27.054552], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [490.5961, 425.13754, 361.679, 300.22043, 240.76187, 183.30333, 127.84477, 74.386215, 22.927666], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [490.59598, 425.13745, 361.6789, 300.22037, 240.7618, 183.30324, 127.84469, 74.38614, 22.927588], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [414.46912, 358.01056, 303.552, 251.09344, 200.6349, 152.17635, 105.71779, 61.25924, 18.800686], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [414.46902, 358.0105, 303.55194, 251.09338, 200.63484, 152.17627, 105.71772, 61.259174, 18.800621], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [338.34213, 290.88358, 245.42502, 201.96648, 160.50792, 121.04936, 83.59081, 48.13226, 14.673706], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [338.34204, 290.8835, 245.42497, 201.96642, 160.50787, 121.04931, 83.59076, 48.13221, 14.6736555], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [262.21503, 223.75648, 187.29794, 152.83939, 120.38084, 89.92229, 61.463737, 35.005188, 10.5466385], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [262.2151, 223.75656, 187.298, 152.83945, 120.3809, 89.92234, 61.46379, 35.00524, 10.54669], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [186.08809, 156.62955, 129.17099, 103.71244, 80.25389, 58.79534, 39.336792, 21.878242, 6.419693], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [186.08813, 156.6296, 129.17104, 103.71249, 80.25394, 58.79538, 39.336826, 21.878277, 6.4197245], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [109.96114, 89.502594, 71.044044, 54.585495, 40.126945, 27.668396, 17.209846, 8.751297, 2.2927475], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [109.96117, 89.502625, 71.04407, 54.585518, 40.12697, 27.668413, 17.209862, 8.75131, 2.2927587], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [33.834198, 22.375648, 12.917099, 5.4585495, 0.0, 881.9301, 624.47156, 369.01303, 115.554474], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [33.834206, 22.375656, 12.917104, 5.458552, 0.0, 881.93066, 624.4721, 369.0136, 115.55504], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [2123.096, 1864.6373, 1608.1788, 1353.7202, 1101.2617, 850.80316, 602.3446, 355.88608, 111.42753], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [2123.0964, 1864.638, 1608.1794, 1353.7208, 1101.2623, 850.8037, 602.34515, 355.88663, 111.42807], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [2046.969, 1797.5104, 1550.0519, 1304.5934, 1061.1348, 819.6762, 580.21765, 342.75912, 107.30058], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [2046.9695, 1797.511, 1550.0525, 1304.5939, 1061.1354, 819.67676, 580.2182, 342.75967, 107.30111], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1970.842, 1730.3835, 1491.9249, 1255.4664, 1021.0078, 788.5493, 558.09076, 329.6322, 103.17364], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1970.8425, 1730.384, 1491.9255, 1255.4669, 1021.00836, 788.5498, 558.09125, 329.6327, 103.17414], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1894.7168, 1663.2583, 1433.7997, 1206.3411, 980.88257, 757.424, 535.96545, 316.5069, 99.04834], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1894.7156, 1663.2571, 1433.7985, 1206.34, 980.8814, 757.4228, 535.96423, 316.50574, 99.04717], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1818.5898, 1596.1312, 1375.6726, 1157.2141, 940.75555, 726.297, 513.83844, 303.37988, 94.921326], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1818.5885, 1596.1301, 1375.6715, 1157.213, 940.75446, 726.29584, 513.8373, 303.37875, 94.92021], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1742.4628, 1529.0042, 1317.5457, 1108.0872, 900.62854, 695.17, 491.71143, 290.25287, 90.79431], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1742.4615, 1529.0032, 1317.5446, 1108.086, 900.6275, 695.1689, 491.71033, 290.2518, 90.79324], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1666.3357, 1461.8772, 1259.4187, 1058.9601, 860.5015, 664.04297, 469.5844, 277.12585, 86.6673], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1666.3346, 1461.8762, 1259.4176, 1058.9591, 860.5005, 664.04193, 469.58337, 277.12485, 86.666275], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1590.2087, 1394.7502, 1201.2916, 1009.83307, 820.3745, 632.91595, 447.4574, 263.99884, 82.54028], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1590.2076, 1394.7491, 1201.2906, 1009.8321, 820.37354, 632.915, 447.4564, 263.99786, 82.539314], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1514.0818, 1327.6232, 1143.1646, 960.70605, 780.2475, 601.78894, 425.33038, 250.87183, 78.41327], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1514.0807, 1327.6222, 1143.1637, 960.70514, 780.2466, 601.78796, 425.32944, 250.87091, 78.412346], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1437.9547, 1260.4961, 1085.0376, 911.57904, 740.1205, 570.6619, 403.20337, 237.74481, 74.286255], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1437.9537, 1260.4952, 1085.0367, 911.5782, 740.1196, 570.661, 403.20248, 237.74394, 74.28538], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1361.8276, 1193.3691, 1026.9106, 862.452, 699.99347, 539.5349, 381.07635, 224.6178, 70.15924], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1361.8268, 1193.3683, 1026.9098, 862.4512, 699.9927, 539.53406, 381.0755, 224.61697, 70.15842], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1285.7007, 1126.2422, 968.78357, 813.325, 659.86646, 508.4079, 358.94934, 211.49078, 66.03223], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1285.6998, 1126.2413, 968.7828, 813.3242, 659.86566, 508.4071, 358.94855, 211.49, 66.03145], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1209.5737, 1059.1151, 910.65656, 764.198, 619.73944, 477.28088, 336.82233, 198.36377, 61.905212], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1209.5729, 1059.1144, 910.6558, 764.19727, 619.7387, 477.28012, 336.82156, 198.36304, 61.904484], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1133.4467, 991.9881, 852.52954, 715.071, 579.6124, 446.15387, 314.6953, 185.23676, 57.7782], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1133.4459, 991.9874, 852.5289, 715.0703, 579.61176, 446.15317, 314.6946, 185.23607, 57.77752], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [1057.3196, 924.8611, 794.4025, 665.944, 539.4854, 415.02686, 292.5683, 172.10974, 53.651184], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [1057.319, 924.8604, 794.40186, 665.94336, 539.4848, 415.02618, 292.56766, 172.10912, 53.650555], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [981.1926, 857.7341, 736.2755, 616.81696, 499.3584, 383.89984, 270.44128, 158.98273, 49.52417], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [981.19196, 857.73346, 736.2749, 616.81635, 499.35782, 383.89923, 270.44067, 158.98215, 49.523586], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [905.0656, 790.60706, 678.1485, 567.68994, 459.23138, 352.77283, 248.31427, 145.85571, 45.397156], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [905.065, 790.6065, 678.14795, 567.6894, 459.23083, 352.77228, 248.31372, 145.85518, 45.39662], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [730.91766, 626.45935, 524.001, 423.54263, 325.0843, 228.62595, 134.1676, 41.70926, 22991.25], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [730.9173, 626.4589, 524.0006, 423.54227, 325.08392, 228.6256, 134.16725, 41.708908, 22991.25], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [752.8111, 656.35254, 561.894, 469.43542, 378.97687, 290.5183, 204.05977, 119.60121, 37.142662], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [752.8111, 656.35254, 561.89404, 469.43546, 378.9769, 290.51834, 204.05978, 119.60124, 37.14269], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [676.6841, 589.2256, 503.767, 420.30847, 338.8499, 259.39136, 181.9328, 106.47425, 33.0157], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [676.6841, 589.2256, 503.76706, 420.3085, 338.84995, 259.3914, 181.93282, 106.47428, 33.015724], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [600.5571, 522.0986, 445.64005, 371.1815, 298.72293, 228.26439, 159.80585, 93.34729, 28.888739], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [600.5571, 522.09863, 445.64008, 371.18152, 298.72296, 228.2644, 159.80586, 93.34731, 28.88876], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [524.4303, 454.97174, 387.51318, 322.05466, 258.5961, 197.13754, 137.67899, 80.22043, 24.761879], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [524.4302, 454.97168, 387.51312, 322.05457, 258.596, 197.13745, 137.6789, 80.220345, 24.761793], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [448.3033, 387.8448, 329.38623, 272.92767, 218.46912, 166.01056, 115.552, 67.09345, 20.6349], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [448.30322, 387.8447, 329.38614, 272.92758, 218.46904, 166.01048, 115.551926, 67.09338, 20.634829], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [372.17633, 320.7178, 271.25925, 223.80069, 178.34213, 134.88358, 93.425026, 53.966473, 16.50792], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [372.17627, 320.71774, 271.2592, 223.80063, 178.34207, 134.88351, 93.424965, 53.966415, 16.507862], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [296.04938, 253.59082, 213.13226, 174.6737, 138.21515, 103.7566, 71.29805, 40.839493, 12.3809395], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [296.0493, 253.59076, 213.13222, 174.67366, 138.2151, 103.756546, 71.298, 40.83945, 12.380897], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [219.92229, 186.46375, 155.00519, 125.54664, 98.08809, 72.62954, 49.17099, 27.71244, 8.253891], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [219.92233, 186.46379, 155.00525, 125.54669, 98.08814, 72.629585, 49.171032, 27.712484, 8.253931], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [143.79535, 119.33679, 96.87824, 76.41969, 57.961143, 41.502594, 27.044044, 14.585495, 4.1269455], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [143.79538, 119.33683, 96.87828, 76.41972, 57.961174, 41.50262, 27.044067, 14.585518, 4.1269655], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
    (
        [67.668396, 52.209846, 38.751297, 27.292747, 17.834198, 10.3756485, 4.917099, 1.4585495, 0.0], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
        [67.66841, 52.20986, 38.751312, 27.292759, 17.834208, 10.375655, 4.9171033, 1.4585518, 0.0], shape=[9], strides=[1], layout=CFcf (0xf), const ndim=1,
    ),
]', src/learn/neural_network/autograd.rs:1374:17
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    learn::neural_network::autograd::tests::cross_entropy_loss_f32

test result: FAILED. 145 passed; 1 failed; 2 ignored; 0 measured; 0 filtered out; finished in 3.08s

   Doc-tests autograph

running 2 tests
test src/lib.rs - buffer (line 62) - compile ... ok
test src/learn.rs - learn::neural_network (line 26) - compile ... ok

test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
charles-r-earp commented 2 years ago

Vulkano is merged!