skip to content
==> program.toml <==
1# pipehash: the pipe demo's GPU stage (layout: mesh_abi::v2::views::pipedemo, H_*).
2# Its inbox takes `msg` records from a CPU source (pipesrc: wasm, pipesrc-n: native);
3# each warp pops up to 32, its lanes hash one each (sha256d of the 64 bytes),
4# and the warp pushes the `digest`s into a CPU sink (pipesink: native, pipesink-w: wasm).
5# A sink without room for a warp's 32 stops the warp before it pops (backpressure up the pipe).
6name       = "pipehash"
7abi        = 6
8view_bytes = 0x16000
9inbox      = "0x80:1024:64"
10inbox_type = "msg"
11nodes      = 4
12fanout     = 4
13policy     = "continuous"
14in_flight  = "free"
15feeds      = ["pipesink:digest", "pipesink-w:digest"]
16counters   = ["hashed", "stalls", "carried", ""]
17fields     = ["dst:u32:0xc", "in_head:u32:0x80", "in_full:u32:0x84", "in_tail:u32:0xc0"]
18autostart  = false
19backends   = ["cuda", "metal"]
20replicas   = 1  # a fleet runs one hashing stage (pipes are single-machine; its source and sinks are colocated with it)