Source/Packages

Realization.Nvidia.SM86.ExactCrossEntropyBackwardSM86

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

702 lines118 declarations31.2 KiBSHA-256 adcd1f5d6195

Complete file · line 218

ExactCrossEntropyBackwardSM86.alpha

Definition view
1module Realization.Nvidia.SM86.ExactCrossEntropyBackwardSM86
2
3import Accelerator.SM86.Control
4import Accelerator.SM86.Immediate
5import Accelerator.SM86.Instruction
6import Accelerator.SM86.InstructionEncoding
7import Accelerator.SM86.NumericSemantics
8import Accelerator.SM86.Program
9import Accelerator.SM86.Types
10import Data.SHA256Digest
11import Realization.Nvidia.SM86.ExactCrossEntropySM86
12import Std.Natural
13
14-- Exact full-vocabulary logit gradient for coppelius. The preceding exact
15-- forward pass supplies loss[r] = logsumexp(logits[r]) - correct[r], so this
16-- kernel reconstructs logsumexp as loss + correct and writes
17-- (exp(logit - logsumexp) - one_hot(target)) / rows. Grid Y selects one of 48
18-- vocabulary tiles, avoiding a source-level 48-way instruction expansion.
19family ExactCrossEntropyBackwardSM86FailureCode : Type 0
20constructor ExactCrossEntropyBackwardInstructionCountMismatch
21constructor ExactCrossEntropyBackwardEncodedByteCountMismatch
22constructor ExactCrossEntropyBackwardEncodingFailed
23constructor ExactCrossEntropyBackwardIdentityFailed
24constructor ExactCrossEntropyBackwardIdentityLengthInvalid
25
26end-family
27
28family ExactCrossEntropyBackwardSM86ABI : Type 0
29constructor ExactCrossEntropyBackwardSM86ABIValue
30field unrestricted exactCrossEntropyBackwardABIGradient : Nat
31field unrestricted exactCrossEntropyBackwardABILogits : Nat
32field unrestricted exactCrossEntropyBackwardABILoss : Nat
33field unrestricted exactCrossEntropyBackwardABICorrectLogit : Nat
34field unrestricted exactCrossEntropyBackwardABITarget : Nat
35field unrestricted exactCrossEntropyBackwardABILog2E : Nat
36field unrestricted exactCrossEntropyBackwardABIInverseRows : Nat
37
38end-family
39
40family ExactCrossEntropyBackwardSM86Extents : Type 0
41constructor ExactCrossEntropyBackwardSM86ExtentsValue
42field unrestricted exactCrossEntropyBackwardExtentRows : Nat
43field unrestricted exactCrossEntropyBackwardExtentVocabulary : Nat
44field unrestricted exactCrossEntropyBackwardExtentLogitsRead : Nat
45field unrestricted exactCrossEntropyBackwardExtentGradientWrite : Nat
46field unrestricted exactCrossEntropyBackwardExtentLossRead : Nat
47field unrestricted exactCrossEntropyBackwardExtentCorrectLogitRead : Nat
48field unrestricted exactCrossEntropyBackwardExtentTargetRead : Nat
49
50end-family
51
52family ExactCrossEntropyBackwardSM86Manifest : Type 0
53constructor ExactCrossEntropyBackwardSM86ManifestValue
54field unrestricted exactCrossEntropyBackwardManifestExpectedInstructions : Nat
55field unrestricted exactCrossEntropyBackwardManifestExpectedEncodedBytes : Nat
56field unrestricted exactCrossEntropyBackwardManifestRegisters : Nat
57field unrestricted exactCrossEntropyBackwardManifestSharedBytes : Nat
58field unrestricted exactCrossEntropyBackwardManifestGridX : Nat
59field unrestricted exactCrossEntropyBackwardManifestGridY : Nat
60field unrestricted exactCrossEntropyBackwardManifestBlockX : Nat
61field unrestricted exactCrossEntropyBackwardManifestABI : (family ExactCrossEntropyBackwardSM86ABI)
62field unrestricted exactCrossEntropyBackwardManifestExtents : (family ExactCrossEntropyBackwardSM86Extents)
63field unrestricted exactCrossEntropyBackwardManifestHostFallbackOperations : Nat
64
65end-family
66
67family ExactCrossEntropyBackwardSM86Telemetry : Type 0
68constructor ExactCrossEntropyBackwardSM86TelemetryValue
69field unrestricted exactCrossEntropyBackwardTelemetryManifest : (family ExactCrossEntropyBackwardSM86Manifest)
70field unrestricted exactCrossEntropyBackwardTelemetryObservedInstructions : Nat
71field unrestricted exactCrossEntropyBackwardTelemetryObservedEncodedBytes : Nat
72
73end-family
74
75family ExactCrossEntropyBackwardSM86BuildResult : Type 0
76constructor ExactCrossEntropyBackwardSM86BuildSucceeded
77field unrestricted exactCrossEntropyBackwardEncodedBytes : Bytes
78field unrestricted exactCrossEntropyBackwardImageIdentity : Bytes
79field unrestricted exactCrossEntropyBackwardProgramEncodingTelemetry : (family SM86ProgramEncodingTelemetry)
80field unrestricted exactCrossEntropyBackwardIdentityTelemetry : (family SHA256DigestTelemetry)
81field unrestricted exactCrossEntropyBackwardBuildTelemetry : (family ExactCrossEntropyBackwardSM86Telemetry)
82constructor ExactCrossEntropyBackwardSM86ContractFailed
83field unrestricted exactCrossEntropyBackwardContractFailure : (family ExactCrossEntropyBackwardSM86FailureCode)
84field unrestricted exactCrossEntropyBackwardContractFailureTelemetry : (family ExactCrossEntropyBackwardSM86Telemetry)
85constructor ExactCrossEntropyBackwardSM86ImageEncodingFailed
86field unrestricted exactCrossEntropyBackwardEncodingFailure : (family ExactCrossEntropyBackwardSM86FailureCode)
87field unrestricted exactCrossEntropyBackwardFailedEncoding : (family SM86ProgramEncodingResult)
88field unrestricted exactCrossEntropyBackwardEncodingFailureTelemetry : (family ExactCrossEntropyBackwardSM86Telemetry)
89constructor ExactCrossEntropyBackwardSM86ImageIdentityFailed
90field unrestricted exactCrossEntropyBackwardIdentityFailure : (family ExactCrossEntropyBackwardSM86FailureCode)
91field unrestricted exactCrossEntropyBackwardFailedIdentity : (family SHA256HexResult)
92field unrestricted exactCrossEntropyBackwardIdentityFailureTelemetry : (family ExactCrossEntropyBackwardSM86Telemetry)
93
94end-family
95
96def exactCrossEntropyBackwardR0 =
97  (sm86Register (byte 0))
98
99def exactCrossEntropyBackwardR1 =
100  (sm86Register (byte 1))
101
102def exactCrossEntropyBackwardR2 =
103  (sm86Register (byte 2))
104
105def exactCrossEntropyBackwardR3 =
106  (sm86Register (byte 3))
107
108def exactCrossEntropyBackwardR4 =
109  (sm86Register (byte 4))
110
111def exactCrossEntropyBackwardR5 =
112  (sm86Register (byte 5))
113
114def exactCrossEntropyBackwardR6 =
115  (sm86Register (byte 6))
116
117def exactCrossEntropyBackwardR7 =
118  (sm86Register (byte 7))
119
120def exactCrossEntropyBackwardR8 =
121  (sm86Register (byte 8))
122
123def exactCrossEntropyBackwardR9 =
124  (sm86Register (byte 9))
125
126def exactCrossEntropyBackwardR10 =
127  (sm86Register (byte 10))
128
129def exactCrossEntropyBackwardR11 =
130  (sm86Register (byte 11))
131
132def exactCrossEntropyBackwardR12 =
133  (sm86Register (byte 12))
134
135def exactCrossEntropyBackwardR13 =
136  (sm86Register (byte 13))
137
138def exactCrossEntropyBackwardR14 =
139  (sm86Register (byte 14))
140
141def exactCrossEntropyBackwardR15 =
142  (sm86Register (byte 15))
143
144def exactCrossEntropyBackwardR16 =
145  (sm86Register (byte 16))
146
147def exactCrossEntropyBackwardR17 =
148  (sm86Register (byte 17))
149
150def exactCrossEntropyBackwardR18 =
151  (sm86Register (byte 18))
152
153def exactCrossEntropyBackwardR19 =
154  (sm86Register (byte 19))
155
156def exactCrossEntropyBackwardR20 =
157  (sm86Register (byte 20))
158
159def exactCrossEntropyBackwardR21 =
160  (sm86Register (byte 21))
161
162def exactCrossEntropyBackwardR22 =
163  (sm86Register (byte 22))
164
165def exactCrossEntropyBackwardR23 =
166  (sm86Register (byte 23))
167
168def exactCrossEntropyBackwardR24 =
169  (sm86Register (byte 24))
170
171def exactCrossEntropyBackwardR25 =
172  (sm86Register (byte 25))
173
174def exactCrossEntropyBackwardP0 : (family SM86Predicate) =
175  (constructor SM86Predicate SM86Predicate0)
176
177def exactCrossEntropyBackwardGradientArgument : Nat = 0
178def exactCrossEntropyBackwardLogitsArgument : Nat = 1
179def exactCrossEntropyBackwardLossRowsArgument : Nat = 2
180def exactCrossEntropyBackwardCorrectLogitArgument : Nat = 3
181def exactCrossEntropyBackwardTargetsArgument : Nat = 4
182def exactCrossEntropyBackwardLog2EArgument : Nat = 6
183def exactCrossEntropyBackwardInverseRowsArgument : Nat = 7
184
185def exactCrossEntropyBackwardU0 =
186  sm86Unsigned32Zero
187
188def exactCrossEntropyBackwardU4 =
189  (sm86Unsigned32 (byte 4) (byte 0) (byte 0) (byte 0))
190
191def exactCrossEntropyBackwardU256 =
192  (sm86Unsigned32 (byte 0) (byte 1) (byte 0) (byte 0))
193
194def exactCrossEntropyBackwardU12288 =
195  (sm86Unsigned32 (byte 0) (byte 48) (byte 0) (byte 0))
196
197def exactCrossEntropyBackwardOffset160 =
198  (sm86Unsigned32 (byte 96) (byte 1) (byte 0) (byte 0))
199
200def exactCrossEntropyBackwardOffset168 =
201  (sm86Unsigned32 (byte 104) (byte 1) (byte 0) (byte 0))
202
203def exactCrossEntropyBackwardOffset170 =
204  (sm86Unsigned32 (byte 112) (byte 1) (byte 0) (byte 0))
205
206def exactCrossEntropyBackwardOffset178 =
207  (sm86Unsigned32 (byte 120) (byte 1) (byte 0) (byte 0))
208
209def exactCrossEntropyBackwardOffset180 =
210  (sm86Unsigned32 (byte 128) (byte 1) (byte 0) (byte 0))
211
212def exactCrossEntropyBackwardOffset190 =
213  (sm86Unsigned32 (byte 144) (byte 1) (byte 0) (byte 0))
214
215def exactCrossEntropyBackwardOffset198 =
216  (sm86Unsigned32 (byte 152) (byte 1) (byte 0) (byte 0))
217
218def exactCrossEntropyBackwardNext =
219  (lambda unrestricted body : (family SM86InstructionBody) .
220    (lambda unrestricted tail : (family SM86Program) .
221      (constructor SM86Program SM86ProgramNext (sm86Instruction body) tail)))
222
223def exactCrossEntropyBackwardGuardedNext =
224  (lambda unrestricted instruction : (family SM86Instruction) .
225    (lambda unrestricted tail : (family SM86Program) .
226      (constructor SM86Program SM86ProgramNext instruction tail)))
227
228def exactCrossEntropyBackwardEnd : (family SM86Program) =
229  (constructor SM86Program SM86ProgramEnd)
230
231def exactCrossEntropyBackwardProgramForUnchecked =
232  (lambda unrestricted vocabulary : Nat .
233  (exactCrossEntropyBackwardNext
234    (constructor
235      SM86InstructionBody
236      SM86SpecialToRegister
237      exactCrossEntropyBackwardR0
238      (constructor SM86SpecialRegister SM86ThreadIdX)
239      exactCrossEntropyRowsSet0)
240    (exactCrossEntropyBackwardNext
241      (constructor
242        SM86InstructionBody
243        SM86SpecialToRegister
244        exactCrossEntropyBackwardR1
245        (constructor SM86SpecialRegister SM86CooperativeThreadArrayIdX)
246        exactCrossEntropyRowsSet0)
247      (exactCrossEntropyBackwardNext
248        (constructor
249          SM86InstructionBody
250          SM86SpecialToRegister
251          exactCrossEntropyBackwardR2
252          (constructor SM86SpecialRegister SM86CooperativeThreadArrayIdY)
253          exactCrossEntropyRowsSet0)
254        (exactCrossEntropyBackwardNext
255          (constructor
256            SM86InstructionBody
257            SM86IntegerMultiplyAddImmediate
258            exactCrossEntropyBackwardR3
259            exactCrossEntropyBackwardR2
260            exactCrossEntropyBackwardU256
261            exactCrossEntropyBackwardR0
262            exactCrossEntropyRowsWait0)
263          (exactCrossEntropyBackwardNext
264            (constructor
265              SM86InstructionBody
266              SM86MoveImmediate
267              exactCrossEntropyBackwardR5
268              exactCrossEntropyBackwardU4
269              sm86SafeControl)
270            (exactCrossEntropyBackwardNext
271              (constructor
272                SM86InstructionBody
273                SM86IntegerMultiplyAddImmediate
274                exactCrossEntropyBackwardR4
275                exactCrossEntropyBackwardR1
276                (sm86Unsigned32FromNaturalTruncated vocabulary)
277                exactCrossEntropyBackwardR3
278                sm86SafeControl)
279              (exactCrossEntropyBackwardNext
280                (constructor
281                  SM86InstructionBody
282                  SM86IntegerMultiplyAddWideConstant
283                  exactCrossEntropyBackwardR6
284                  exactCrossEntropyBackwardR4
285                  exactCrossEntropyBackwardR5
286                  (byte 0)
287                  exactCrossEntropyBackwardOffset168
288                  sm86SafeControl)
289                (exactCrossEntropyBackwardNext
290                  (constructor
291                    SM86InstructionBody
292                    SM86IntegerMultiplyAddWideConstant
293                    exactCrossEntropyBackwardR8
294                    exactCrossEntropyBackwardR4
295                    exactCrossEntropyBackwardR5
296                    (byte 0)
297                    exactCrossEntropyBackwardOffset160
298                    sm86SafeControl)
299                  (exactCrossEntropyBackwardNext
300                    (constructor
301                      SM86InstructionBody
302                      SM86IntegerMultiplyAddWideConstant
303                      exactCrossEntropyBackwardR10
304                      exactCrossEntropyBackwardR1
305                      exactCrossEntropyBackwardR5
306                      (byte 0)
307                      exactCrossEntropyBackwardOffset170
308                      sm86SafeControl)
309                    (exactCrossEntropyBackwardNext
310                      (constructor
311                        SM86InstructionBody
312                        SM86IntegerMultiplyAddWideConstant
313                        exactCrossEntropyBackwardR12
314                        exactCrossEntropyBackwardR1
315                        exactCrossEntropyBackwardR5
316                        (byte 0)
317                        exactCrossEntropyBackwardOffset178
318                        sm86SafeControl)
319                      (exactCrossEntropyBackwardNext
320                        (constructor
321                          SM86InstructionBody
322                          SM86IntegerMultiplyAddWideConstant
323                          exactCrossEntropyBackwardR14
324                          exactCrossEntropyBackwardR1
325                          exactCrossEntropyBackwardR5
326                          (byte 0)
327                          exactCrossEntropyBackwardOffset180
328                          sm86SafeControl)
329                        (exactCrossEntropyBackwardNext
330                          (constructor
331                            SM86InstructionBody
332                            SM86LoadGlobal
333                            exactCrossEntropyBackwardR16
334                            exactCrossEntropyBackwardR10
335                            exactCrossEntropyBackwardU0
336                            exactCrossEntropyRowsSet0)
337                          (exactCrossEntropyBackwardNext
338                            (constructor
339                              SM86InstructionBody
340                              SM86LoadGlobal
341                              exactCrossEntropyBackwardR17
342                              exactCrossEntropyBackwardR12
343                              exactCrossEntropyBackwardU0
344                              exactCrossEntropyRowsSet1)
345                            (exactCrossEntropyBackwardNext
346                              (constructor
347                                SM86InstructionBody
348                                SM86LoadGlobal
349                                exactCrossEntropyBackwardR21
350                                exactCrossEntropyBackwardR14
351                                exactCrossEntropyBackwardU0
352                                exactCrossEntropyRowsSet2)
353                              (exactCrossEntropyBackwardNext
354                                (constructor
355                                  SM86InstructionBody
356                                  SM86IntegerAddThreeImmediate
357                                  exactCrossEntropyBackwardR21
358                                  exactCrossEntropyBackwardR21
359                                  exactCrossEntropyBackwardU0
360                                  exactCrossEntropyRowsWait2)
361                                (exactCrossEntropyBackwardNext
362                                  (constructor
363                                    SM86InstructionBody
364                                    SM86IntegerAddThreeImmediate
365                                    exactCrossEntropyBackwardR17
366                                    exactCrossEntropyBackwardR17
367                                    exactCrossEntropyBackwardU0
368                                    exactCrossEntropyRowsWait1)
369                                  (exactCrossEntropyBackwardNext
370                                    (constructor
371                                      SM86InstructionBody
372                                      SM86FloatAdd
373                                      exactCrossEntropyBackwardR18
374                                      exactCrossEntropyBackwardR16
375                                      exactCrossEntropyBackwardR17
376                                      exactCrossEntropyRowsWait0)
377                                    (exactCrossEntropyBackwardNext
378                                      (constructor
379                                        SM86InstructionBody
380                                        SM86FloatNegate
381                                        exactCrossEntropyBackwardR19
382                                        exactCrossEntropyBackwardR18
383                                        sm86SafeControl)
384                                      (exactCrossEntropyBackwardNext
385                                        (constructor
386                                        SM86InstructionBody
387                                        SM86MoveConstant
388                                        exactCrossEntropyBackwardR20
389                                        (byte 0)
390                                        exactCrossEntropyBackwardOffset190
391                                        sm86SafeControl)
392                                        (exactCrossEntropyBackwardNext
393                                        (constructor
394                                        SM86InstructionBody
395                                        SM86MoveConstant
396                                        exactCrossEntropyBackwardR22
397                                        (byte 0)
398                                        exactCrossEntropyBackwardOffset198
399                                        sm86SafeControl)
400                                        (exactCrossEntropyBackwardNext
401                                        (constructor
402                                        SM86InstructionBody
403                                        SM86FloatNegate
404                                        exactCrossEntropyBackwardR23
405                                        exactCrossEntropyBackwardR22
406                                        sm86SafeControl)
407                                        (exactCrossEntropyBackwardNext
408                                        (constructor
409                                        SM86InstructionBody
410                                        SM86LoadGlobal
411                                        exactCrossEntropyBackwardR24
412                                        exactCrossEntropyBackwardR6
413                                        exactCrossEntropyBackwardU0
414                                        exactCrossEntropyRowsSet1)
415                                        (exactCrossEntropyBackwardNext
416                                        (constructor
417                                        SM86InstructionBody
418                                        SM86FloatAdd
419                                        exactCrossEntropyBackwardR24
420                                        exactCrossEntropyBackwardR24
421                                        exactCrossEntropyBackwardR19
422                                        exactCrossEntropyRowsWait1)
423                                        (exactCrossEntropyBackwardNext
424                                        (constructor
425                                        SM86InstructionBody
426                                        SM86FloatMultiply
427                                        exactCrossEntropyBackwardR24
428                                        exactCrossEntropyBackwardR24
429                                        exactCrossEntropyBackwardR20
430                                        sm86SafeControl)
431                                        (exactCrossEntropyBackwardNext
432                                        (constructor
433                                        SM86InstructionBody
434                                        SM86MultiFunctionUnitApproximation
435                                        exactCrossEntropyBackwardR24
436                                        exactCrossEntropyBackwardR24
437                                        (constructor SM86MultiFunction SM86ExponentialBase2)
438                                        exactCrossEntropyRowsSet3)
439                                        (exactCrossEntropyBackwardNext
440                                        (constructor
441                                        SM86InstructionBody
442                                        SM86FloatMultiply
443                                        exactCrossEntropyBackwardR24
444                                        exactCrossEntropyBackwardR24
445                                        exactCrossEntropyBackwardR22
446                                        exactCrossEntropyRowsWait3)
447                                        (exactCrossEntropyBackwardNext
448                                        (constructor
449                                        SM86InstructionBody
450                                        SM86LogicThreeInputTruthTable
451                                        exactCrossEntropyBackwardR25
452                                        exactCrossEntropyBackwardR3
453                                        exactCrossEntropyBackwardR21
454                                        (byte 60)
455                                        sm86SafeControl)
456                                        (exactCrossEntropyBackwardNext
457                                        (constructor
458                                        SM86InstructionBody
459                                        SM86PredicateGreaterThanImmediate
460                                        exactCrossEntropyBackwardP0
461                                        exactCrossEntropyBackwardR25
462                                        exactCrossEntropyBackwardU0
463                                        sm86SafeControl)
464                                        (exactCrossEntropyBackwardGuardedNext
465                                        (sm86NegatedPredicatedInstruction
466                                        exactCrossEntropyBackwardP0
467                                        (constructor
468                                        SM86InstructionBody
469                                        SM86FloatAdd
470                                        exactCrossEntropyBackwardR24
471                                        exactCrossEntropyBackwardR24
472                                        exactCrossEntropyBackwardR23
473                                        sm86SafeControl))
474                                        (exactCrossEntropyBackwardNext
475                                        (constructor
476                                        SM86InstructionBody
477                                        SM86StoreGlobal
478                                        exactCrossEntropyBackwardR8
479                                        exactCrossEntropyBackwardR24
480                                        exactCrossEntropyBackwardU0
481                                        sm86SafeControl)
482                                        (exactCrossEntropyBackwardNext
483                                        (constructor SM86InstructionBody SM86Exit sm86SafeControl)
484                                        exactCrossEntropyBackwardEnd))))))))))))))))))))))))))))))))
485
486def exactCrossEntropyBackwardProgramFor =
487  (lambda unrestricted rows : Nat . (lambda unrestricted vocabulary : Nat .
488    (lambda erased admitted :
489      (equal Nat (exactCrossEntropyRowsShapeAdmitted rows vocabulary) 1) .
490      (exactCrossEntropyBackwardProgramForUnchecked vocabulary))))
491def exactCrossEntropyBackwardProgram : (family SM86Program) =
492  (exactCrossEntropyBackwardProgramForUnchecked 12288)
493
494def exactCrossEntropyBackwardABI =
495  (constructor
496    ExactCrossEntropyBackwardSM86ABI
497    ExactCrossEntropyBackwardSM86ABIValue
498    352
499    360
500    368
501    376
502    384
503    400
504    408)
505
506def exactCrossEntropyBackwardElements =
507  (naturalMultiply 1024 12288)
508
509def exactCrossEntropyBackwardExtents =
510  (constructor
511    ExactCrossEntropyBackwardSM86Extents
512    ExactCrossEntropyBackwardSM86ExtentsValue
513    1024
514    12288
515    exactCrossEntropyBackwardElements
516    exactCrossEntropyBackwardElements
517    1024
518    1024
519    1024)
520
521def exactCrossEntropyBackwardManifest =
522  (constructor
523    ExactCrossEntropyBackwardSM86Manifest
524    ExactCrossEntropyBackwardSM86ManifestValue
525    31
526    496
527    32
528    zero
529    1024
530    48
531    256
532    exactCrossEntropyBackwardABI
533    exactCrossEntropyBackwardExtents
534    zero)
535
536def exactCrossEntropyBackwardManifestInstructions =
537  (lambda unrestricted manifest : (family ExactCrossEntropyBackwardSM86Manifest) .
538    (eliminate
539      ExactCrossEntropyBackwardSM86Manifest
540      (lambda unrestricted current : (family ExactCrossEntropyBackwardSM86Manifest) . Nat)
541      manifest
542      (branch
543        ExactCrossEntropyBackwardSM86ManifestValue
544        instructions
545        bytes
546        registers
547        shared
548        gridX
549        gridY
550        blockX
551        abi
552        extents
553        hostFallback
554        .
555        instructions)))
556
557def exactCrossEntropyBackwardManifestBytes =
558  (lambda unrestricted manifest : (family ExactCrossEntropyBackwardSM86Manifest) .
559    (eliminate
560      ExactCrossEntropyBackwardSM86Manifest
561      (lambda unrestricted current : (family ExactCrossEntropyBackwardSM86Manifest) . Nat)
562      manifest
563      (branch
564        ExactCrossEntropyBackwardSM86ManifestValue
565        instructions
566        bytes
567        registers
568        shared
569        gridX
570        gridY
571        blockX
572        abi
573        extents
574        hostFallback
575        .
576        bytes)))
577
578def exactCrossEntropyBackwardTelemetryFor =
579  (lambda unrestricted instructions : Nat .
580    (lambda unrestricted bytes : Nat .
581      (constructor
582        ExactCrossEntropyBackwardSM86Telemetry
583        ExactCrossEntropyBackwardSM86TelemetryValue
584        exactCrossEntropyBackwardManifest
585        instructions
586        bytes)))
587
588def exactCrossEntropyBackwardBuild =
589  (app
590    (lambda unrestricted observedInstructions : Nat .
591      (nat-eliminate
592        (lambda unrestricted countMatched : Nat . (family ExactCrossEntropyBackwardSM86BuildResult))
593        (constructor
594          ExactCrossEntropyBackwardSM86BuildResult
595          ExactCrossEntropyBackwardSM86ContractFailed
596          (constructor
597            ExactCrossEntropyBackwardSM86FailureCode
598            ExactCrossEntropyBackwardInstructionCountMismatch)
599          (exactCrossEntropyBackwardTelemetryFor observedInstructions zero))
600        (lambda unrestricted countPredecessor : Nat .
601          (lambda unrestricted countInduction : (family ExactCrossEntropyBackwardSM86BuildResult) .
602            (app
603              (lambda unrestricted encoding : (family SM86ProgramEncodingResult) .
604                (eliminate
605                  SM86ProgramEncodingResult
606                  (lambda unrestricted current : (family SM86ProgramEncodingResult) .
607                    (family ExactCrossEntropyBackwardSM86BuildResult))
608                  encoding
609                  (branch
610                    SM86ProgramEncodingSucceeded
611                    bytes
612                    encodingTelemetry
613                    .
614                    (app
615                      (lambda unrestricted telemetry : (family ExactCrossEntropyBackwardSM86Telemetry) .
616                        (nat-eliminate
617                          (lambda unrestricted bytesMatched : Nat .
618                            (family ExactCrossEntropyBackwardSM86BuildResult))
619                          (constructor
620                            ExactCrossEntropyBackwardSM86BuildResult
621                            ExactCrossEntropyBackwardSM86ContractFailed
622                            (constructor
623                              ExactCrossEntropyBackwardSM86FailureCode
624                              ExactCrossEntropyBackwardEncodedByteCountMismatch)
625                            telemetry)
626                          (lambda unrestricted bytesPredecessor : Nat .
627                            (lambda unrestricted bytesInduction : (family ExactCrossEntropyBackwardSM86BuildResult) .
628                              (app
629                                (lambda unrestricted identityResult : (family SHA256HexResult) .
630                                  (eliminate
631                                    SHA256HexResult
632                                    (lambda unrestricted current : (family SHA256HexResult) .
633                                      (family ExactCrossEntropyBackwardSM86BuildResult))
634                                    identityResult
635                                    (branch
636                                      SHA256HexSucceeded
637                                      identity
638                                      identityTelemetry
639                                      .
640                                      (nat-eliminate
641                                        (lambda unrestricted identityLengthMatched : Nat .
642                                        (family ExactCrossEntropyBackwardSM86BuildResult))
643                                        (constructor
644                                        ExactCrossEntropyBackwardSM86BuildResult
645                                        ExactCrossEntropyBackwardSM86ImageIdentityFailed
646                                        (constructor
647                                        ExactCrossEntropyBackwardSM86FailureCode
648                                        ExactCrossEntropyBackwardIdentityLengthInvalid)
649                                        identityResult
650                                        telemetry)
651                                        (lambda unrestricted identityLengthPredecessor : Nat .
652                                        (lambda unrestricted identityLengthInduction : (family ExactCrossEntropyBackwardSM86BuildResult) .
653                                        (constructor
654                                        ExactCrossEntropyBackwardSM86BuildResult
655                                        ExactCrossEntropyBackwardSM86BuildSucceeded
656                                        bytes
657                                        identity
658                                        encodingTelemetry
659                                        identityTelemetry
660                                        telemetry)))
661                                        (naturalEqual (bytes-length identity) 64)))
662                                    (branch
663                                      SHA256HexFailed
664                                      error
665                                      ordinal
666                                      identityTelemetry
667                                      .
668                                      (constructor
669                                        ExactCrossEntropyBackwardSM86BuildResult
670                                        ExactCrossEntropyBackwardSM86ImageIdentityFailed
671                                        (constructor
672                                        ExactCrossEntropyBackwardSM86FailureCode
673                                        ExactCrossEntropyBackwardIdentityFailed)
674                                        identityResult
675                                        telemetry))))
676                                (sha256Hex bytes))))
677                          (naturalEqual
678                            (bytes-length bytes)
679                            (exactCrossEntropyBackwardManifestBytes
680                              exactCrossEntropyBackwardManifest))))
681                      (exactCrossEntropyBackwardTelemetryFor
682                        observedInstructions
683                        (bytes-length bytes))))
684                  (branch
685                    SM86ProgramEncodingFailed
686                    instructionIndex
687                    failure
688                    encodingTelemetry
689                    .
690                    (constructor
691                      ExactCrossEntropyBackwardSM86BuildResult
692                      ExactCrossEntropyBackwardSM86ImageEncodingFailed
693                      (constructor
694                        ExactCrossEntropyBackwardSM86FailureCode
695                        ExactCrossEntropyBackwardEncodingFailed)
696                      encoding
697                      (exactCrossEntropyBackwardTelemetryFor observedInstructions zero)))))
698              (sm86EncodeProgram exactCrossEntropyBackwardProgram))))
699        (naturalEqual
700          observedInstructions
701          (exactCrossEntropyBackwardManifestInstructions exactCrossEntropyBackwardManifest))))
702    (sm86ProgramCount exactCrossEntropyBackwardProgram))

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.