Work, original
gpu-specs
Cited specifications for NVIDIA and AMD GPUs. Every number carries its source document and the vendor's own words, so you can check it in one click.
- Role
- Author and maintainer
- With
- On my own
- Status
- Released, version 0.1.0
- Years
- GPUs
- 121
- sources
- 166
- quoted values
- 1721
Release v0.1.0
- Memory, as the vendor prints it
- 80 GB
- GPU Memory | 80GB
- NVIDIA H100 GPU (product page, Product Specifications table)
- Memory bandwidth
- 3350 GB/s
- GPU Memory Bandwidth | 3.35TB/s
- NVIDIA H100 GPU (product page, Product Specifications table)
- Memory, as the driver reports it
- 81 559 MiB
- NVIDIA H100 80GB HBM3 ... 87MiB 81559MiB
- NVIDIA Multi-Instance GPU User Guide (Supported GPUs page and PDF)
curl -LO https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.jsonThe problem
GPU numbers are copied from site to site until nobody knows where they came from. A vendor also prints the same figure in more than one way. A page says an H100 has 80 GB, and the driver reports 81,559 MiB. A reader who needs one number for a calculation needs to know which one, and who said so.
What I built
A dataset of GPU specifications in which every value names its source document and holds a short verbatim quote from it. Release v0.1.0 holds 121 records from 166 sources, almost all of them vendor documents. They cover data center, workstation and GeForce parts, laptop GPUs included, and AMD Instinct. Each memory size, form factor and edition of a part is its own record.
Seven rules keep it honest.
- Vendor documents only. A value comes from the vendor's datasheet, product page, product brief or architecture whitepaper. One exception: memory as the driver reports it, from a public
nvidia-smisample, is marked as a secondary source. - Quote what you cite. Each value holds a short verbatim quote from its source.
- Dense compute only. Tensor figures with sparsity are not stored. Where a vendor prints only a sparse figure and states that dense is half of it, the record says so and keeps the formula.
- Never estimate. A value the vendor does not publish is
TBDwith a reason. A feature the part does not have isnullwith a reason. - One unit per field. The vendor's own number and unit stay beside the converted value.
- Memory as printed, and as reported. Both are stored, so a tool can say which one it uses.
- Conflicts are recorded. When two vendor documents disagree, the record uses the datasheet, and a notes file states both.
A script checks the dataset against these rules, and another writes a CSV with one row per GPU. Pin a release tag, not main, so your numbers do not move under you.
Ask it a question
The dataset is one JSON file, so jq can answer a question in one command. Each command needs curl and jq 1.6 or later, and reads the pinned release. The commands sort and filter inside jq, so they run the same in bash, zsh and PowerShell 7. In Windows PowerShell 5.1, write curl.exe, because curl is an alias there. Change a value after --argjson or --arg to ask a different question.
Which GPUs have at least 192 GB of memory, as the vendor prints it? The result is GB, then the record id, largest first.
curl -s https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.json | jq -r --argjson min 192 '
[.gpus[] | select(.memory.capacity.value | numbers | . >= $min) | [.memory.capacity.value, .id]]
| sort_by(-.[0])[]
| @tsv
'Which GPUs have under 100 GiB of usable memory, as the driver reports it? Only a record with a public nvidia-smi sample has this figure, and the others are skipped, not guessed.
curl -s https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.json | jq -r --argjson max 100 '
[.gpus[] | select(.memory.reported.value | numbers | . < $max * 1024) | [(.memory.reported.value / 1024 * 10 | round / 10), .id]]
| sort_by(-.[0])[]
| @tsv
'Which Blackwell data center parts are there, and what is their dense FP8 compute in TFLOPS? TBD means the vendor does not publish the figure.
curl -s https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.json | jq -r --arg arch Blackwell --arg seg datacenter '
.gpus[]
| select(.architecture.value == $arch and .segment == $seg)
| [.compute.fp8Tensor.value, .id]
| @tsv
'Which data center GPUs give the most memory bandwidth for each watt of maximum board power? The ratio is GB/s per W, and it is derived from two cited values.
curl -s https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.json | jq -r --arg seg datacenter '
[.gpus[]
| select(.segment == $seg)
| (.memory.bandwidth.value | numbers) as $bw
| (.maxPowerW.value | numbers) as $w
| [($bw / $w * 100 | round / 100), .id]]
| sort_by(-.[0])[:5][]
| @tsv
'What did the vendor say about a number, and where? Change the record id and the field to look up another value.
curl -s https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.json | jq -r --arg id h100-sxm5-80gb '
. as $d
| .gpus[] | select(.id == $id)
| .memory.bandwidth as $v
| ($d.sources[] | select(.id == $v.source)) as $s
| $v.value, $v.unit, $v.quote, $s.url
'The data has no launch date for a part. To filter by generation, use architecture, as in the third command.
Give it to an AI agent
Paste this block into a chat or an agent's instructions, then add your question at the end. It tells the agent how to fetch the data, how to filter it, and how to credit it. The data is licensed CC BY 4.0, so reuse is free with credit.
You can use gpu-specs, an open dataset of cited NVIDIA and AMD GPU specifications.
Data (JSON, the source of truth): https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.json
Same GPUs as a table, with no sources or quotes: https://raw.githubusercontent.com/DarkStark9000/gpu-specs/v0.1.0/data/gpus.csv
Rules and field units: https://github.com/DarkStark9000/gpu-specs#readme
Shape of the JSON: { "sources": [...], "gpus": [...] }. A GPU has id, vendor, segment (datacenter, workstation, geforce-desktop or geforce-laptop), name, architecture, formFactor, memory, compute, interconnect and maxPowerW. Each value is an object with value, unit, source and quote. The source is an id in the top-level sources list, which gives the document title, publisher and url.
How to answer:
1. Fetch the file. Never answer a number from memory.
2. Filter it with jq or a short script. Do not read the whole file into the conversation.
3. A value of "TBD" means the vendor does not publish it. A value of null with status "not-supported" means the part does not have the feature. Report both as they are. Never estimate and never fill a gap from another source.
4. Compute figures are dense, not sparse. memory.capacity is the vendor's printed figure in GB. memory.reported is the driver-reported (usable) figure in MiB, and few records have it. Say which one you use.
5. For each number, give the record id, the value with its unit, the vendor's quote and the source url.
6. The data is a snapshot. Give the release tag and the source's retrieval date.
When you publish or reuse the data, credit it as the CC BY 4.0 license (https://creativecommons.org/licenses/by/4.0/) requires, and say if you changed it:
"GPU specifications from gpu-specs by Debarshi Das, CC BY 4.0, https://github.com/DarkStark9000/gpu-specs"
My question:Where it is used
The KV cache calculator on this site reads a pinned release of this dataset for its GPU list and each GPU's memory. A tool that needs a figure the dataset lacks gets it added to the dataset first, with its source.
My role
I collected the documents, wrote the records and quotes, and wrote the validation and the CSV build.
Current limits
Version 0.1.0 covers memory, interconnect, compute and power for the parts listed in its README. It does not hold prices, benchmarks or availability. A value the vendor has not published is marked TBD, not filled from another source.