1module Bob.Build.RTX3090
2
3import Accelerator.SM86.Capability
4import Bob.Build.SM86
5import Model.Parameter
6import Model.Word64
7import Platform.RunPod.Nvidia.SM86
8import Representation.BuildRequest
9import Representation.BuildPlan
10import Std.Natural
11import Std.Physical
12import Std.Word
13import Bob.Build.NativeHost
14import Platform.Linux.Nvidia.Compatibility
15
16def bobRTX3090TargetIdentity : Bytes =
17 runPodRTX3090TargetIdentity
18
19def bobRTX3090QualificationIdentity : Bytes =
20 b"bob-rtx3090-target-profile-v1"
21
22def bobRTX3090Capabilities : (family SM86DeviceCapabilities) =
23 (record
24 SM86DeviceCapabilities
25 (sm86CapabilityComputeMajor = 8)
26 (sm86CapabilityComputeMinor = 6)
27 (sm86CapabilityTotalVideoMemoryBytes = (runPodSM86TotalVideoMemory runPodRTX3090TargetProfile))
28 (sm86CapabilityAvailableVideoMemoryBytes = (stdByteCountValue bobSM86MinimumVideoMemory))
29 (sm86CapabilityMappedAddressEnd = (stdDeviceAddressValue bobSM86MappedAddressEnd))
30 (sm86CapabilityMaximumGridX = (stdU32ToNatural (stdGridDimensionValue bobSM86MaximumGridX)))
31 (sm86CapabilityUVMSupported = 1)
32 (sm86CapabilityResourceManagerSupported = 1)
33 (sm86CapabilityQMDSupported = 1)
34 (sm86CapabilityPushbufferSupported = 1)
35 (sm86CapabilityGPFIFOSupported = 1)
36 (sm86CapabilityDeviceTimestampsSupported = 1)
37 (sm86CapabilityHostFallbacks = 0))
38
39def bobRTX3090CapabilityAccepted : Nat =
40 (sm86CapabilityAdmissionAccepted (bobSM86Admit bobRTX3090Capabilities))
41
42-- the compatibility contract: what the artifact demands of the card
43-- against what the RTX 3090 profile supplies (Platform.Linux.Nvidia.
44-- Compatibility); the first demand not met, by name (empty = admitted)
45def bobRTX3090CompatibilityRefusal : Bytes =
46 (nvidiaCompatibilityRefusal (bobCompatDemands runPodSM86QMDArchitecture) runPodRTX3090Supplies)
47
48def bobRTX3090ExactTargetAccepted : Nat =
49 (naturalAnd (naturalIsZero (bytes-length bobRTX3090CompatibilityRefusal))
50 (naturalAnd
51 (runPodSM86TargetMatches
52 runPodRTX3090TargetProfile
53 runPodRTX3090ProductIdentity
54 bobRTX3090Capabilities)
55 bobRTX3090CapabilityAccepted))
56
57def bobRTX3090BuildPlan : (family SystemTargetBuildPlan) =
58 (record
59 SystemTargetBuildPlan
60 (systemTargetBuildPlanIdentity = b"bob-rtx3090-build-plan-v1")
61 (systemTargetBuildPlanCapabilityAccepted = bobRTX3090ExactTargetAccepted)
62 (systemTargetBuildPlanEntries
63 =
64 (bobSM86BuildPlanEntries
65 bobRTX3090TargetIdentity
66 bobRTX3090QualificationIdentity
67 b"bob-rtx3090-sm86.elf")))
68
69def bobRTX3090BuildRequest : (family SystemTargetBuildRequest) =
70 (record
71 SystemTargetBuildRequest
72 (buildRequestSystemIdentity = b"bob")
73 (buildRequestLearnerIdentity = b"adamw")
74 (buildRequestTargetIdentity = bobRTX3090TargetIdentity)
75 (buildRequestAdmissionAccepted = bobRTX3090ExactTargetAccepted)
76 (buildRequestScheduleIdentity = b"row-gather-ece256-adamw-greedy")
77 (buildRequestMemoryIdentity = b"bob-sm86-static-arena-16-mib")
78 (buildRequestProtocolIdentity = b"alpha-text-artifact-request-v1")
79 (buildRequestCheckpointIdentity = b"bob-raw-pmv-f32-v1")
80 (buildRequestOutputFilename = b"bob-rtx3090-sm86.elf")
81 (buildRequestArtifactRoot = b"systems/bob/src/Bob/Build/RTX3090Artifact.alpha")
82 (buildRequestArtifactExpression = b"artifact"))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.