A gradient evaluation uploads the current parameter and one sample, issues
the checked kernel, awaits its own retired fence, and consumes device
readback. No host equation supplies the gradient. The program is the same
for x=1 and x=2; samples are runtime state, not prerecorded output bytes.
93def pgGradient =
94 (lambda unrestricted layout : (family NvidiaPlanHostLayout) .
95 (lambda unrestricted entry : Nat .
96 (lambda unrestricted data : Nat .
97 (lambda unrestricted inputOffset : Nat .
98 (lambda unrestricted targetOffset : Nat .
99 (lambda unrestricted outputOffset : Nat .
100 (lambda unrestricted counter : Nat .
101 (lambda unrestricted scratch : Nat .
102 (lambda unrestricted weight : Nat .
103 (lambda unrestricted destination : Nat .
104 (lambda unrestricted sample : Nat .
105 (nlsEvaluateScalar
106 b"peer-arithmetic"
107 layout
108 entry
109 data
110 inputOffset
111 targetOffset
112 outputOffset
113 counter
114 scratch
115 (constructor
116 NvidiaLinearScalarInput
117 NvidiaLinearScalarBinary64
118 (frameNativeLoad weight))
119 (constructor NvidiaLinearScalarInput NvidiaLinearScalarNatural sample)
120 (constructor NvidiaLinearScalarInput NvidiaLinearScalarNatural 0)
121 (constructor NvidiaLinearScalarResult NvidiaLinearScalarGradient)
122 destination))))))))))))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.