IMPORTANT: To view this page as Markdown, append `.md` to the URL (e.g. /docs/manual/basics.md). For the complete Mojo documentation index, see llms.txt.
Skip to main content
Version: Nightly
For the complete Mojo documentation index, see llms.txt. Markdown versions of all pages are available by appending .md to any URL (e.g. /docs/manual/basics.md).

info

Contains information about GPU architectures and their capabilities.

This module provides detailed specifications for various GPU models including NVIDIA and AMD GPUs. It includes information about compute capabilities, memory specifications, thread organization, and performance characteristics.

comptime values

A10

comptime A10 = GPUInfo.from_family(NvidiaAmpereWorkstationFamily, StringSlice("A10"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ampere"), SIMD(8.5999999999999996), StringSlice("sm_86"), 72)

NVIDIA A10 GPU configuration.

A100

comptime A100 = GPUInfo.from_family(NvidiaAmpereDatacenterFamily, StringSlice("A100"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ampere"), SIMD(8), StringSlice("sm_80"), 108)

NVIDIA A100 GPU configuration.

AMDCDNA2Family

comptime AMDCDNA2Family = AcceleratorArchitectureFamily(64, 2048, 65536, 65536, 1024)

AMD CDNA2 architecture family (gfx90a).

AMDCDNA3Family

comptime AMDCDNA3Family = AcceleratorArchitectureFamily(64, 2048, 65536, 65536, 1024)

AMD CDNA3 architecture family (gfx94x).

AMDCDNA4Family

comptime AMDCDNA4Family = AcceleratorArchitectureFamily(64, 2048, 163840, 65536, 1024)

AMD CDNA4 architecture family (gfx95x).

AMDRDNAFamily

comptime AMDRDNAFamily = AcceleratorArchitectureFamily(32, 1024, 32768, 32768, 1024)

AMD RDNA architecture family.

AppleMetalFamily

comptime AppleMetalFamily = AcceleratorArchitectureFamily(32, 1024, 32768, 65536, 1024)

Apple Metal GPU architecture family.

B100

comptime B100 = GPUInfo.from_family(NvidiaBlackwellFamily, StringSlice("B100"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("blackwell"), SIMD(10), StringSlice("sm_100a"), 132)

NVIDIA B100 GPU configuration.

B200

comptime B200 = GPUInfo.from_family(NvidiaBlackwellFamily, StringSlice("B200"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("blackwell"), SIMD(10), StringSlice("sm_100a"), 148)

NVIDIA B200 GPU configuration.

B300

comptime B300 = GPUInfo.from_family(NvidiaBlackwellFamily, StringSlice("B300"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("blackwell"), SIMD(10.300000000000001), StringSlice("sm_103a"), 160)

NVIDIA B300 GPU configuration.

DGXSpark

comptime DGXSpark = GPUInfo.from_family(NvidiaBlackwellConsumerFamily, StringSlice("DGX Spark"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("blackwell"), SIMD(12.1), StringSlice("sm_121"), 48)

NVIDIA DGX Spark GPU configuration.

GTX1060

comptime GTX1060 = GPUInfo.from_family(NvidiaPascalFamily, StringSlice("NVIDIA GeForce GTX 1060"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("pascal"), SIMD(6.0999999999999996), StringSlice("sm_61"), 10)

NVIDIA GeForce GTX 1060 GPU configuration.

GTX1080Ti

comptime GTX1080Ti = GPUInfo.from_family(NvidiaPascalFamily, StringSlice("NVIDIA GeForce GTX 1080 Ti"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("pascal"), SIMD(6.0999999999999996), StringSlice("sm_61"), 28)

NVIDIA GeForce GTX 1080 Ti GPU configuration.

GTX970

comptime GTX970 = GPUInfo.from_family(NvidiaMaxwellFamily, StringSlice("NVIDIA GeForce GTX 970"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("maxwell"), SIMD(5.2000000000000002), StringSlice("sm_52"), 13)

NVIDIA GeForce GTX 970 GPU configuration.

H100

comptime H100 = GPUInfo.from_family(NvidiaHopperFamily, StringSlice("H100"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("hopper"), SIMD(9), StringSlice("sm_90a"), 132)

NVIDIA H100 GPU configuration.

JetsonThor

comptime JetsonThor = GPUInfo.from_family(NvidiaBlackwellFamily, StringSlice("Jetson Thor"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("blackwell"), SIMD(11), StringSlice("sm_110"), 20)

NVIDIA Jetson Thor GPU configuration.

L4

comptime L4 = GPUInfo.from_family(NvidiaAdaFamily, StringSlice("L4"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ada"), SIMD(8.9000000000000004), StringSlice("sm_89"), 58)

NVIDIA L4 GPU configuration.

MetalM1

comptime MetalM1 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M1"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m1"), SIMD(3), StringSlice("metal_3"), 8)

Apple M1 GPU configuration.

MetalM1Metal4

comptime MetalM1Metal4 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M1 Metal4"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m1-metal4"), SIMD(4), StringSlice("metal_4"), 8)

Apple M1 GPU configuration for Metal 4.

MetalM2

comptime MetalM2 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M2"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m2"), SIMD(3), StringSlice("metal_3"), 10)

Apple M2 GPU configuration.

MetalM2Metal4

comptime MetalM2Metal4 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M2 Metal4"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m2-metal4"), SIMD(4), StringSlice("metal_4"), 10)

Apple M2 GPU configuration for Metal 4.

MetalM3

comptime MetalM3 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M3"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m3"), SIMD(3), StringSlice("metal_3"), 10)

Apple M3 GPU configuration.

MetalM3Metal4

comptime MetalM3Metal4 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M3 Metal4"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m3-metal4"), SIMD(4), StringSlice("metal_4"), 10)

Apple M3 GPU configuration for Metal 4.

MetalM4

comptime MetalM4 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M4"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m4"), SIMD(3), StringSlice("metal_3"), 10)

Apple M4 GPU configuration.

MetalM4Metal4

comptime MetalM4Metal4 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M4 Metal4"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m4-metal4"), SIMD(4), StringSlice("metal_4"), 10)

Apple M4 GPU configuration for Metal 4.

MetalM5

comptime MetalM5 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M5"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m5"), SIMD(3), StringSlice("metal_3"), 10)

Apple M5 GPU configuration.

MetalM5Metal4

comptime MetalM5Metal4 = GPUInfo.from_family(AppleMetalFamily, StringSlice("M5 Metal4"), Vendor.APPLE_GPU, StringSlice("metal"), StringSlice("apple-m5-metal4"), SIMD(4), StringSlice("metal_4"), 10)

Apple M5 GPU configuration for Metal 4.

MI250X

comptime MI250X = GPUInfo.from_family(AMDCDNA2Family, StringSlice("MI250X"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx90a"), SIMD(9), StringSlice("CDNA2"), 220)

AMD MI250X GPU configuration.

MI300X

comptime MI300X = GPUInfo.from_family(AMDCDNA3Family, StringSlice("MI300X"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx942"), SIMD(9.4000000000000003), StringSlice("CDNA3"), 304)

AMD MI300X GPU configuration.

MI355X

comptime MI355X = GPUInfo.from_family(AMDCDNA4Family, StringSlice("MI355X"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx950"), SIMD(9.5), StringSlice("CDNA4"), 256)

AMD MI355X GPU configuration.

NoGPU

comptime NoGPU = GPUInfo(StringSlice("NoGPU"), Vendor.NO_GPU, StringSlice("none"), StringSlice("no_gpu"), Float32("0"), StringSlice(""), 0, 0, 0, 0, 0, 0)

Placeholder for when no GPU is available.

NvidiaAdaFamily

comptime NvidiaAdaFamily = AcceleratorArchitectureFamily(32, 1536, 102400, 65536, 1024)

NVIDIA Ada Lovelace architecture family (sm_89).

NvidiaAmpereDatacenterFamily

comptime NvidiaAmpereDatacenterFamily = AcceleratorArchitectureFamily(32, 2048, 167936, 65536, 1024)

NVIDIA Ampere datacenter architecture family (sm_80).

NvidiaAmpereEmbeddedFamily

comptime NvidiaAmpereEmbeddedFamily = AcceleratorArchitectureFamily(32, 1536, 167936, 65536, 1024)

NVIDIA Ampere embedded architecture family (sm_87).

NvidiaAmpereWorkstationFamily

comptime NvidiaAmpereWorkstationFamily = AcceleratorArchitectureFamily(32, 1536, 102400, 65536, 1024)

NVIDIA Ampere workstation architecture family (sm_86).

NvidiaBlackwellConsumerFamily

comptime NvidiaBlackwellConsumerFamily = AcceleratorArchitectureFamily(32, 1536, 102400, 65536, 1024)

NVIDIA Blackwell consumer architecture family (sm_120).

NvidiaBlackwellFamily

comptime NvidiaBlackwellFamily = AcceleratorArchitectureFamily(32, 2048, 233472, 65536, 1024)

NVIDIA Blackwell datacenter architecture family (sm_100).

NvidiaHopperFamily

comptime NvidiaHopperFamily = AcceleratorArchitectureFamily(32, 2048, 233472, 65536, 1024)

NVIDIA Hopper architecture family (sm_90).

NvidiaMaxwellFamily

comptime NvidiaMaxwellFamily = AcceleratorArchitectureFamily(32, 2048, 98304, 65536, 1024)

NVIDIA Maxwell architecture family (sm_50-sm_53).

NvidiaPascalFamily

comptime NvidiaPascalFamily = AcceleratorArchitectureFamily(32, 2048, 65536, 65536, 1024)

NVIDIA Pascal architecture family (sm_60-sm_62).

NvidiaTuringFamily

comptime NvidiaTuringFamily = AcceleratorArchitectureFamily(32, 2048, 65536, 32768, 1024)

NVIDIA Turing architecture family (sm_75).

OrinNano

comptime OrinNano = GPUInfo.from_family(NvidiaAmpereEmbeddedFamily, StringSlice("Orin Nano"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ampere"), SIMD(8.6999999999999993), StringSlice("sm_87"), 8)

NVIDIA Orin Nano GPU configuration.

Radeon6900

comptime Radeon6900 = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 6900"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1102"), SIMD(10.300000000000001), StringSlice("RDNA2"), 60)

AMD Radeon 6900 GPU configuration.

Radeon7600

comptime Radeon7600 = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 7600"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1102"), SIMD(11), StringSlice("RDNA3"), 32)

AMD Radeon 7600 GPU configuration.

Radeon7800

comptime Radeon7800 = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 7800/7700"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1101"), SIMD(11), StringSlice("RDNA3"), 60)

AMD Radeon 7800/7700 GPU configuration.

Radeon780m

comptime Radeon780m = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 780M"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1103"), SIMD(11), StringSlice("RDNA3"), 12)

AMD Radeon 780M GPU configuration.

Radeon7900

comptime Radeon7900 = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 7900"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1100"), SIMD(11), StringSlice("RDNA3"), 96)

AMD Radeon 7900 GPU configuration.

Radeon8060s

comptime Radeon8060s = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 8060S"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1151"), SIMD(11.5), StringSlice("RDNA3.5"), 40)

AMD Radeon 8060S GPU configuration.

Radeon860m

comptime Radeon860m = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 860M"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1152"), SIMD(11.5), StringSlice("RDNA3.5"), 8)

AMD Radeon 860M GPU configuration.

Radeon880m

comptime Radeon880m = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 880M"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1150"), SIMD(11.5), StringSlice("RDNA3.5"), 12)

AMD Radeon 880M GPU configuration.

Radeon9060

comptime Radeon9060 = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 9060"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1200"), SIMD(12), StringSlice("RDNA4"), 32)

AMD Radeon 9060 GPU configuration.

Radeon9070

comptime Radeon9070 = GPUInfo.from_family(AMDRDNAFamily, StringSlice("Radeon 9070"), Vendor.AMD_GPU, StringSlice("hip"), StringSlice("gfx1201"), SIMD(12), StringSlice("RDNA4"), 64)

AMD Radeon 9070 GPU configuration.

RTX2060

comptime RTX2060 = GPUInfo.from_family(NvidiaTuringFamily, StringSlice("RTX2060"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("turing"), SIMD(7.5), StringSlice("sm_75"), 30)

NVIDIA RTX 2060 GPU configuration.

RTX3090

comptime RTX3090 = GPUInfo.from_family(NvidiaAmpereWorkstationFamily, StringSlice("NVIDIA GeForce RTX 3090"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ampere"), SIMD(8.5999999999999996), StringSlice("sm_86"), 82)

NVIDIA GeForce RTX 3090 GPU configuration.

RTX4090

comptime RTX4090 = GPUInfo.from_family(NvidiaAdaFamily, StringSlice("RTX4090"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ada lovelace"), SIMD(8.9000000000000004), StringSlice("sm_89"), 128)

NVIDIA RTX 4090 GPU configuration.

RTX4090m

comptime RTX4090m = GPUInfo.from_family(NvidiaAdaFamily, StringSlice("RTX4090m"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("ada lovelace"), SIMD(8.9000000000000004), StringSlice("sm_89"), 76)

NVIDIA RTX 4090 Mobile GPU configuration.

RTX5090

comptime RTX5090 = GPUInfo.from_family(NvidiaBlackwellConsumerFamily, StringSlice("RTX5090"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("blackwell"), SIMD(12), StringSlice("sm_120a"), 170)

NVIDIA RTX 5090 GPU configuration.

TeslaP100

comptime TeslaP100 = GPUInfo.from_family(NvidiaPascalFamily, StringSlice("NVIDIA Tesla P100"), Vendor.NVIDIA_GPU, StringSlice("cuda"), StringSlice("pascal"), SIMD(6), StringSlice("sm_60"), 56)

NVIDIA Tesla P100 GPU configuration.

Structs

Functions

  • is_cpu: Checks if the target is a CPU (compile-time version).
  • is_gpu: Checks if the target is a GPU (compile-time version).
  • is_valid_target: Checks if the target is valid (compile-time version).