Source/Packages

Realization.Nvidia.SM86.StreamingAttentionSM86

packages/realizations/cooperative/nvidia-sm86/src/Realization/Nvidia/SM86/StreamingAttentionSM86.alpha

3,230 lines493 declarations193.3 KiBSHA-256 cc0366b3d857

def · lines 1108–1121

sfpCopy

Full file
K's (into `keyBuffer`, guard `keyGuard`) and V's (`valueBuffer`, `valueGuard`) four chunk rows of their next tiles, as sfCopyTile's
1108def sfpCopy = (lambda unrestricted keyBuffer : Nat . (lambda unrestricted keyGuard : Nat .
1109  (lambda unrestricted valueBuffer : Nat . (lambda unrestricted valueGuard : Nat .
1110  (lambda unrestricted tail : (family SM86Program) .
1111    (saFor 4 (lambda unrestricted i : Nat .
1112      (sfWide (sfPair i) (sfKeyOffset i) (saArgument 1) (naturalSelect (naturalIsZero i) saWait5 saWaitNone)))
1113    (saFor 4 (lambda unrestricted i : Nat .
1114      (sfWide (sfPair (naturalAdd 4 i)) (sfValueOffset i) (saArgument 2) saWaitNone))
1115    (saFor 8 (lambda unrestricted j : Nat .
1116      (sfpOp (naturalSelect (naturalLess j 4) keyGuard valueGuard)
1117        (sfCopyBody
1118          (naturalAdd (naturalSelect (naturalLess j 4) keyBuffer valueBuffer)
1119            (naturalMultiply (naturalModuloUnchecked j 4) (naturalMultiply 16 sfRowBytes)))
1120          j (naturalSelect (naturalIsZero j) saWaitNone saWait5))))
1121    (sfCommit tail)))))))))

The compiler supplied declaration spans and resolved links from this source snapshot. This page does not assert that this file belongs to a checked closure.