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.