Log inGet started
World

Builtin Library

Branchmain
Branchesmainpublish
Commitdd348ac6c3

README.md

proc.fusion

The dispatches of a recorded compute list that compute one element each, made into one dispatch per chain. A per-element kernel declares in its bindings.yaml that it is one (fusion:): the function element(i) that is its value at i, the guard that leaves a thread out, and the binding it writes. A dispatch whose output nothing else needs is absorbed into the dispatch that reads it, which calls its element function in place of the read, so a chain is one generated kernel; a dispatch no answer depends on is dropped. plan, build, fuse and apply make and apply the fused list, stages and applyStages schedule a list's per-element dispatches into stage kernels by dependency level, setEnabled turns fusion on or off, and counts and stageCounts report what was fused.

Part of @builtin::systems.procgen.proc; required as @builtin::systems.procgen.proc.fusion.