Source/Systems

Coppelius.SM86Capability

systems/coppelius/src/Coppelius/SM86Capability.alpha

54 lines7 declarations2.0 KiBSHA-256 6121ce306ef2

Complete file · line 29

SM86Capability.alpha

Definition view
1module Coppelius.SM86Capability
2
3import Accelerator.SM86.Capability
4import Model.Config
5import Model.Parameter
6import Model.Word32
7import Model.Word64
8import Std.Physical
9import Std.Word
10
11-- The compatibility profile is the intersection of what the existing
12-- Coppelius artifact uses on the qualified RTX 3070 and what an arbitrary
13-- device must demonstrate.  There is intentionally no product-name field.
14def coppeliusSM86CompatProfileIdentity : Bytes =
15  b"coppelius-sm86-compat-v1"
16
17def coppeliusSM86CompatMinimumVideoMemory : ByteCount =
18  (stdByteCount 0x0000_0000_8000_0000)
19
20def coppeliusSM86CompatMappedAddressEnd : DeviceAddress =
21  (stdDeviceAddress 0x0000_0009_8000_0000)
22
23-- the shared memory a block may use on every compatible card: compute
24-- capability 8.6's 48 KiB of static shared memory per block (the RTX 3090
25-- profile's supply; the GB10 gives more).  Coppelius's one realization
26-- serves both, so its tiles fit this.
27def coppeliusSM86CompatSharedBytesPerBlock : Nat = sm86StaticSharedBytesPerBlock
28
29def coppeliusSM86CompatMaximumGridX : GridDimension =
30  (stdGridDimension 1_024)
31
32def coppeliusSM86CompatCapabilityRequirements : (family SM86CapabilityRequirements) =
33  (record
34    SM86CapabilityRequirements
35    (sm86RequirementComputeMajor = 8)
36    (sm86RequirementComputeMinor = 6)
37    (sm86RequirementAvailableVideoMemoryBytes
38      =
39      (stdByteCountValue coppeliusSM86CompatMinimumVideoMemory))
40    (sm86RequirementMappedAddressEnd = (stdDeviceAddressValue coppeliusSM86CompatMappedAddressEnd))
41    (sm86RequirementMaximumGridX
42      =
43      (stdU32ToNatural (stdGridDimensionValue coppeliusSM86CompatMaximumGridX)))
44    (sm86RequirementUVM = 1)
45    (sm86RequirementResourceManager = 1)
46    (sm86RequirementQMD = 1)
47    (sm86RequirementPushbuffer = 1)
48    (sm86RequirementGPFIFO = 1)
49    (sm86RequirementDeviceTimestamps = 1)
50    (sm86RequirementNoHostFallback = 1))
51
52def coppeliusSM86CompatAdmit =
53  (lambda unrestricted observed : (family SM86DeviceCapabilities) .
54    (sm86CapabilityAdmit coppeliusSM86CompatCapabilityRequirements observed))

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.