Results

Device classes

A run only ranks against identical hardware, so the class has to be right.

InputsWebGPU vendor + architecture, WebGL rendererSoftware adapter?SwiftShader, WARP, llvmpipeSanitized or mismatched?“or similar”, “Apple GPU”, vendors differModel parsed?RTX 4090, RX 7900 XTX, Apple M2 ProIn the spec table?published memory specification on fileSoftware renderermeasured, unrankedVendor + architecturemeasured, unranked (model hidden)Unlisted modelmeasured, unranked until the class is addedDevice class, can rankyesyesnonoyes
A run only ranks when every check passes. Anything uncertain is still measured and joins The Stack.

Sources

SourceGivesLimits
WebGPU adapter infoVendor and architecture, e.g. nvidia, lovelaceModel is usually blank
WebGL renderer stringThe model in Chromium, e.g. NVIDIA GeForce RTX 4090Firefox returns a representative model (“or similar”); Safari returns “Apple GPU”

Rules

  • The model is trusted only when WebGL and WebGPU name the same vendor. Dual-GPU laptops can route them to different chips.
  • Sanitized strings keep vendor and architecture only. The run is unranked with model-unresolved.
  • A parsed model that is not in the spec table is unranked with model-unlisted, so invented names never rank.
  • Adapter strings are accepted only as short lowercase tokens before they become part of a class id.
  • Workstation parts are matched first: RTX 6000 Ada never collapses into the older RTX 6000.

Form factor

Laptop parts are detected from their names (Laptop GPU, Max-Q, an M or S suffix). The “This computer is a laptop” checkbox fills the gap for integrated GPUs and Apple silicon. It cannot relabel a name that proves a desktop part (RTX desktop cards, RX 5000 and later, Arc desktop cards), which keeps desktops out of Laptop Week.

Published specs

Peak bandwidth is the vendor-published figure for the reference configuration. Board partners and laptop makers may ship other memory clocks; those classes are marked variable, are judged against their highest published configuration, and stay off the efficiency board. HBM never names who manufactured the memory.

ClassVendorMemoryBusPeak GB/sMin GBConfig
RTX 5090NVIDIAGDDR7512-bit1,79232fixed
RTX 5080NVIDIAGDDR7256-bit96016fixed
RTX 5070 TiNVIDIAGDDR7256-bit89616fixed
RTX 5070NVIDIAGDDR7192-bit67212fixed
RTX 5060 TiNVIDIAGDDR7128-bit4488fixed
RTX 5060NVIDIAGDDR7128-bit4488fixed
RTX 5050NVIDIAGDDR6128-bit3208fixed
RTX 4090NVIDIAGDDR6X384-bit1,00824fixed
RTX 4080 SUPERNVIDIAGDDR6X256-bit73616fixed
RTX 4080NVIDIAGDDR6X256-bit716.816fixed
RTX 4070 Ti SUPERNVIDIAGDDR6X256-bit67216fixed
RTX 4070 TiNVIDIAGDDR6X192-bit50412fixed
RTX 4070 SUPERNVIDIAGDDR6X192-bit50412fixed
RTX 4070NVIDIAGDDR6X192-bit50412variable
RTX 4060 TiNVIDIAGDDR6128-bit2888fixed
RTX 4060NVIDIAGDDR6128-bit2728fixed
RTX 3090 TiNVIDIAGDDR6X384-bit1,00824fixed
RTX 3090NVIDIAGDDR6X384-bit93624fixed
RTX 3080 TiNVIDIAGDDR6X384-bit91212fixed
RTX 3080NVIDIAGDDR6X320-bit760 to 91210variable
RTX 3070 TiNVIDIAGDDR6X256-bit6088fixed
RTX 3070NVIDIAGDDR6256-bit4488fixed
RTX 3060 TiNVIDIAGDDR6256-bit448 to 6088variable
RTX 3060NVIDIAGDDR6192-bit3608variable
RTX 3050NVIDIAGDDR6128-bit2246variable
RTX 2080 TiNVIDIAGDDR6352-bit61611fixed
RTX 2080 SUPERNVIDIAGDDR6256-bit4968fixed
RTX 2080NVIDIAGDDR6256-bit4488fixed
RTX 2070 SUPERNVIDIAGDDR6256-bit4488fixed
RTX 2070NVIDIAGDDR6256-bit4488fixed
RTX 2060 SUPERNVIDIAGDDR6256-bit4488fixed
RTX 2060NVIDIAGDDR6192-bit3366fixed
TITAN RTXNVIDIAGDDR6384-bit67224fixed
GTX 1660 TiNVIDIAGDDR6192-bit2886fixed
GTX 1660 SUPERNVIDIAGDDR6192-bit3366fixed
GTX 1660NVIDIAGDDR5192-bit1926fixed
GTX 1650 SUPERNVIDIAGDDR6128-bit1924fixed
GTX 1650NVIDIAGDDR5128-bit128 to 1924variable
GTX 1080 TiNVIDIAGDDR5X352-bit48411fixed
GTX 1080NVIDIAGDDR5X256-bit320 to 3528variable
GTX 1070 TiNVIDIAGDDR5256-bit2568fixed
GTX 1070NVIDIAGDDR5256-bit2568fixed
GTX 1060NVIDIAGDDR5192-bit192 to 2163variable
GTX 1050 TiNVIDIAGDDR5128-bit1124fixed
TITAN XpNVIDIAGDDR5X384-bit547.712fixed
TITAN VNVIDIAHBM23072-bit652.812fixed
RTX 5090 LaptopNVIDIAGDDR7256-bit89624variable
RTX 5080 LaptopNVIDIAGDDR7256-bit89616variable
RTX 5070 Ti LaptopNVIDIAGDDR7192-bit67212variable
RTX 5070 LaptopNVIDIAGDDR7128-bit384 to 4488variable
RTX 5060 LaptopNVIDIAGDDR7128-bit384 to 4488variable
RTX 4090 LaptopNVIDIAGDDR6256-bit57616variable
RTX 4080 LaptopNVIDIAGDDR6192-bit43212variable
RTX 4070 LaptopNVIDIAGDDR6128-bit2568variable
RTX 4060 LaptopNVIDIAGDDR6128-bit2568variable
RTX 4050 LaptopNVIDIAGDDR696-bit1926variable
RTX 3080 Ti LaptopNVIDIAGDDR6256-bit51216variable
RTX 3080 LaptopNVIDIAGDDR6256-bit4488variable
RTX 3070 Ti LaptopNVIDIAGDDR6256-bit4488variable
RTX 3070 LaptopNVIDIAGDDR6256-bit4488variable
RTX 3060 LaptopNVIDIAGDDR6192-bit3366variable
RTX 3050 Ti LaptopNVIDIAGDDR6128-bit1924variable
RTX 3050 LaptopNVIDIAGDDR6128-bit1924variable
RX 9070 XTAMDGDDR6256-bit64016fixed
RX 9070AMDGDDR6256-bit64016fixed
RX 9060 XTAMDGDDR6128-bit3208fixed
RX 7900 XTXAMDGDDR6384-bit96024fixed
RX 7900 XTAMDGDDR6320-bit80020fixed
RX 7900 GREAMDGDDR6256-bit57616fixed
RX 7800 XTAMDGDDR6256-bit62416fixed
RX 7700 XTAMDGDDR6192-bit43212fixed
RX 7600 XTAMDGDDR6128-bit28816fixed
RX 7600AMDGDDR6128-bit2888fixed
RX 6950 XTAMDGDDR6256-bit57616fixed
RX 6900 XTAMDGDDR6256-bit51216fixed
RX 6800 XTAMDGDDR6256-bit51216fixed
RX 6800AMDGDDR6256-bit51216fixed
RX 6750 XTAMDGDDR6192-bit43212fixed
RX 6700 XTAMDGDDR6192-bit38412fixed
RX 6700AMDGDDR6160-bit32010fixed
RX 6650 XTAMDGDDR6128-bit2808fixed
RX 6600 XTAMDGDDR6128-bit2568fixed
RX 6600AMDGDDR6128-bit2248fixed
RX 6500 XTAMDGDDR664-bit1444fixed
RX 5700 XTAMDGDDR6256-bit4488fixed
RX 5700AMDGDDR6256-bit4488fixed
RX 5600 XTAMDGDDR6192-bit3366variable
RX 580AMDGDDR5256-bit2564variable
RX 570AMDGDDR5256-bit2244fixed
Radeon VIIAMDHBM24096-bit1,02416fixed
RX Vega 64AMDHBM22048-bit483.88fixed
RX Vega 56AMDHBM22048-bit409.68fixed
Radeon 8060SAMDLPDDR5X256-bit25632fixed
Radeon 8050SAMDLPDDR5X256-bit25632fixed
Radeon 890MAMDLPDDR5X / DDR5128-bit12016variable
Radeon 880MAMDLPDDR5X / DDR5128-bit12016variable
Radeon 780MAMDLPDDR5X / DDR5128-bit1208variable
Radeon 760MAMDLPDDR5X / DDR5128-bit1208variable
Radeon 680MAMDLPDDR5 / DDR5128-bit102.48variable
Radeon 660MAMDLPDDR5 / DDR5128-bit102.48variable
Arc B580IntelGDDR6192-bit45612fixed
Arc B570IntelGDDR6160-bit38010fixed
Arc A770IntelGDDR6256-bit5608variable
Arc A750IntelGDDR6256-bit5128fixed
Arc A580IntelGDDR6256-bit5128fixed
Arc A380IntelGDDR696-bit1866fixed
Arc A310IntelGDDR664-bit1244fixed
Arc 140VIntelLPDDR5X128-bit136.516fixed
Arc 130VIntelLPDDR5X128-bit136.516fixed
Arc 140TIntelLPDDR5X / DDR5128-bit120 to 136.516variable
Arc GraphicsIntelLPDDR5X / DDR5128-bit120 to 136.516variable
Iris XeIntelLPDDR4X / LPDDR5 / DDR4 / DDR5128-bit68.3 to 102.48variable
Iris PlusIntelLPDDR4X / DDR4128-bit59.7 to 68.38variable
UHD GraphicsIntelDDR4 / DDR5128-bit51.2 to 102.48variable
Apple M1AppleLPDDR4X128-bit68.258fixed
Apple M1 ProAppleLPDDR5256-bit20016fixed
Apple M1 MaxAppleLPDDR5512-bit40032fixed
Apple M1 UltraAppleLPDDR51024-bit80064fixed
Apple M2AppleLPDDR5128-bit1008fixed
Apple M2 ProAppleLPDDR5256-bit20016fixed
Apple M2 MaxAppleLPDDR5512-bit40032fixed
Apple M2 UltraAppleLPDDR51024-bit80064fixed
Apple M3AppleLPDDR5128-bit1008fixed
Apple M3 ProAppleLPDDR5192-bit15018fixed
Apple M3 MaxAppleLPDDR5512-bit40036variable
Apple M3 UltraAppleLPDDR51024-bit81996fixed
Apple M4AppleLPDDR5X128-bit12016fixed
Apple M4 ProAppleLPDDR5X256-bit27324fixed
Apple M4 MaxAppleLPDDR5X512-bit54636variable
Apple M5AppleLPDDR5X128-bit15316fixed
Adreno X1-85QualcommLPDDR5X128-bit13516fixed
Adreno X1-45QualcommLPDDR5X128-bit13516variable

132 classes. The table is rendered from src/lib/device/specs.ts; adding a class there makes it rankable.