skip to content
==> program.toml <==
1# blocks: the block collectives of a multi-warp node (mesh-rt block.rs,
2# mesh_rt.h), checked by kcheck bitwise against mesh-ref::block on every GPU.
3# op 0 (OP_TASK) arg = seed: thread t takes mesh_ref::block::test_values(seed, t)
4# and the node computes every reduction, scan, a broadcast and a shared-memory
5# round trip; the results go to region ticket % 4 of the view (layout below).
6# op 2: warps 1.. return at once while warp 0 runs a warp sum (the node loop's
7# barrier must still be reached by every thread: no hang).
8# View: 0x0 magic, 0x4 tasks; region r at 0x1000 + 0x10000 r: a 0x40-byte header
9# (threads, f32 sum, f32 max, u32 sum, u32 max, u64 sum, u64 max, broadcast,
10# node, warps), then 48 bytes a thread (f32 scan incl/excl, u32 scan incl/excl,
11# u64 scan incl/excl, the shared word read back from thread threads-1-t).
12# variants/blocks-w4.toml: the same image with 4 warps a node.
13name         = "blocks"
14abi          = 6
15view_bytes   = 0x41000
16nodes        = 4
17warps        = 32
18shared_bytes = 0x1000
19policy       = "on_demand"
20counters     = ["tasks", "early", "", ""]
21fields       = ["magic:u32:0x0", "tasks:u32:0x4"]
22backends     = ["cuda", "metal"]