def select

stelliferous@0.0.2.0 · kernel_planning.bend:220

import stelliferous@0.0.2.0/kernel_planning.bend as KernelPlanning
import Base
import stelliferous@0.0.2.0/kernel_cost.bend as Cost
import stelliferous@0.0.2.0/kernel_window.bend as KernelWindow

220# workers is the runtime's pool size. As in XNNPACK, several workers take up to
221# five tasks each, so idle workers pick up the remaining ones; one worker never
222# splits. Every leaf keeps at least one block and one grain of work, and the
223# scheduling bound must strictly improve.
224def select(+work: Work,workers: U32,+budget: Maybe<&2,Nat>,+config: Cost.Configuration) -> Plan:
225  Work{positions,inner,rows,owners,geometry,activation} = work
226  +workers = U32.max(1,U32.min(workers,858993459))
227  candidates(32n,True{},0,1,Bool.pick(U32,U32.is_eq(workers,1),1,(workers * 5 : U32)),workers,KernelWindow.padded(positions),work,config,budget,
228    Plan{False{},0,0n,0.0})

Uses (14)

Used by (1)