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 1842–1873

sqProjectionEpilogue

Full file
1842def sqProjectionEpilogue = (lambda unrestricted seq : Nat . (lambda unrestricted width : Nat .
1843  (lambda unrestricted tail : (family SM86Program) .
1844  (saMovConst (sqTmp 4) (saArgument 10)
1845  (saFor 32 (lambda unrestricted i : Nat .
1846    (saFmul (naturalAdd 68 i) (naturalAdd 68 i) (sqTmp 4) (naturalSelect (naturalIsZero i) saWait3 saWaitNone)))
1847  (saShr sqrElement saScratch 2
1848  (saMovImm sqrColumn 63
1849  (saAnd sqrColumn sqrElement sqrColumn
1850  (saShr sqrRow sqrElement 6
1851  (saMovImm sqrPosition (naturalSaturatingSubtract seq 1)
1852  (saAnd sqrPosition sqrRow sqrPosition
1853  (saShr sqrHead sqrRow (sqrLog2 seq)
1854  -- the element: position width + 64 head + column
1855  (saImad sqrOutput sqrPosition width sqrColumn
1856  (saImad sqrOutput sqrHead saHeadWidth sqrOutput
1857  (saMovImm sqrFour 4
1858  (saWide sqrPointer sqrOutput sqrFour (saArgument 7)
1859  (saMovImm sqrFour saHalfBytes
1860  (saWide sqpHalfPointer sqrOutput sqrFour (saArgument streamingAttentionQueryProjectionHalfArgument)
1861  (saFor 16 (lambda unrestricted i : Nat .
1862    (let unrestricted nt = (naturalDivideUnchecked i 2) in (let unrestricted h = (naturalModuloUnchecked i 2) in
1863    (lambda unrestricted after : (family SM86Program) .
1864      (saOp (sbStore64 sqrPointer (saElem (saO nt) h 0)
1865        (naturalAdd (naturalMultiply nt 32) (naturalMultiply h (naturalMultiply 8 (naturalMultiply width 4))))
1866        saWaitNone)
1867      (saOp (constructor SM86InstructionBody SM86FloatPairToPackedHalfPair
1868          (saR (sqrOut i)) (saR (saElem (saO nt) h 1)) (saR (saElem (saO nt) h 0)) saPlain)
1869      (saOp (saStore sqpHalfPointer (sqrOut i)
1870        (naturalAdd (naturalMultiply nt 16) (naturalMultiply h (naturalMultiply 8 (naturalMultiply width saHalfBytes))))
1871        saWaitNone)
1872        after)))))))
1873    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.