module Bob.Build.SM86 import Bob.ArenaPlan import Accelerator.SM86.Capability import Bob.Learner import Bob.System import Bob.TrainingRun import Model.Config import Model.Parameter import Model.Word32 import Model.Word64 import Representation.BuildPlan import Std.Physical import Std.Word family BobSM86BuildBinding : Type 0 constructor BobSM86BuildBindingValue field unrestricted bobBuildSystem : (family BobSystemConfiguration) field unrestricted bobBuildRequirements : (family SM86CapabilityRequirements) field unrestricted bobBuildCheckpoint : (family BobCheckpointTransportSchema) field unrestricted bobBuildForwardRealizationIdentity : Bytes field unrestricted bobBuildLossRealizationIdentity : Bytes field unrestricted bobBuildOptimizerRealizationIdentity : Bytes field unrestricted bobBuildPredictionRealizationIdentity : Bytes end-family def bobSM86ProfileIdentity : Bytes = b"bob-sm86-native-v1" def bobSM86MinimumVideoMemory : ByteCount = (stdByteCount (modelWord64FromNaturalTruncated bobMinimumVideoBytes)) def bobSM86MappedAddressEnd : DeviceAddress = (stdDeviceAddress (modelWord64FromNaturalTruncated bobMappedEnd)) def bobSM86MaximumGridX : GridDimension = (stdGridDimension 256) def bobSM86CapabilityRequirements : (family SM86CapabilityRequirements) = (record SM86CapabilityRequirements (sm86RequirementComputeMajor = 8) (sm86RequirementComputeMinor = 6) (sm86RequirementAvailableVideoMemoryBytes = (stdByteCountValue bobSM86MinimumVideoMemory)) (sm86RequirementMappedAddressEnd = (stdDeviceAddressValue bobSM86MappedAddressEnd)) (sm86RequirementMaximumGridX = (stdU32ToNatural (stdGridDimensionValue bobSM86MaximumGridX))) (sm86RequirementUVM = 1) (sm86RequirementResourceManager = 1) (sm86RequirementQMD = 1) (sm86RequirementPushbuffer = 1) (sm86RequirementGPFIFO = 1) (sm86RequirementDeviceTimestamps = 1) (sm86RequirementNoHostFallback = 1)) def bobSM86Admit = (lambda unrestricted observed : (family SM86DeviceCapabilities) . (sm86CapabilityAdmit bobSM86CapabilityRequirements observed)) def bobSM86BuildBinding : (family BobSM86BuildBinding) = (record BobSM86BuildBinding (bobBuildSystem = bobSystem) (bobBuildRequirements = bobSM86CapabilityRequirements) (bobBuildCheckpoint = bobCheckpointSchema) (bobBuildForwardRealizationIdentity = b"sm86-byte-row-gather-f32-v1") (bobBuildLossRealizationIdentity = b"sm86-exact-full-256-cross-entropy-v1") (bobBuildOptimizerRealizationIdentity = b"sm86-adamw-f32-bounded-v1") (bobBuildPredictionRealizationIdentity = b"sm86-greedy-argmax-256-v1")) def bobSM86BuildPlanEntries = (lambda unrestricted targetIdentity : Bytes . (lambda unrestricted capabilityEvidence : Bytes . (lambda unrestricted finalELF : Bytes . (buildPlanCons b"system" b"bob" (buildPlanCons b"model" b"raw-byte-bigram-256x256-f32" (buildPlanCons b"objective" bobObjectiveIdentity (buildPlanCons b"learner" bobLearnerIdentity (buildPlanCons b"target" targetIdentity (buildPlanCons b"requirements" bobSM86ProfileIdentity (buildPlanCons b"capability-evidence" capabilityEvidence (buildPlanCons b"schedule" b"row-gather-ece256-adamw-greedy" (buildPlanCons b"memory" b"bob-sm86-static-arena-16-mib" (buildPlanCons b"host-emitter" b"alpha-x86_64-host-emitter" (buildPlanCons b"final-host-elf" finalELF (buildPlanCons b"device-image" b"embedded-sm86-bob-program-table" (buildPlanCons b"qmd" b"embedded-sm86-qmd-table" (buildPlanCons b"pushbuffer" b"embedded-sm86-pushbuffer" (buildPlanCons b"gpfifo" b"embedded-sm86-gpfifo" (buildPlanCons b"checkpoint" b"bob-raw-pmv-f32-v1" (buildPlanCons b"request-protocol" b"alpha-text-artifact-request-v1" (buildPlanCons b"evidence" b"r6-qualification-pending" (buildPlanCons b"physical-lane" b"r6-qualification-pending" buildPlanEmpty))))))))))))))))))))))