GitHub Actions runners with the best CPU value
Ubicloud Linux arm64 leads the measured results at 34.6M per USD. 26 of 26 configurations have a score. All value scores use USD compute rates.
The fastest measured CPU and the best CPU value can be different runners. This page divides each single thread CoreMark score by the USD cost per vCPU per minute. A higher ratio means more of that measured CPU score for the same normalized compute rate. Leaders are calculated from the current results and pricing, with EUR rates converted using the dated ECB reference rate shown below.
By TechCompare · Updated
Current leaders
Results imported 2026-10-10. Pricing checked 2026-10-10. Higher is better. All operating systems and architectures are included. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).
Calculator
Ranked runner results
| RunnerRunner | CPUCPU scoreSingle thread | CPU valueCPU value | Cost/vCPU/minCost/vCPU/minUSD | Max vCPUMax runner vCPU |
|---|---|---|---|---|
| Ubicloud Linux arm64 Ampere Altra Q80-30 | 21,630 | 34.6M/USD | 0.0006 | 30 |
| Ubicloud Linux x64 AMD Ryzen 9 7950X3D 16-Core | 33,393 | 33.4M/USD | 0.001 | 30 |
| BuildPulse Linux arm64 AWS Graviton (gen undisclosed) | 33,116 | 26.5M/USD | 0.0013 | 64 |
| Latchkey Linux x64 AMD EPYC 7R13 | 30,065 | 24.1M/USD | 0.0013 | 16 |
| Blacksmith Linux x64 AMD EPYC (model hidden) | 45,851 | 22.9M/USD | 0.002 | 32 |
| Namespace Linux x64 AMD EPYC (model hidden) | 33,130 | 22.1M/USD | 0.0015 | 64 |
| Avrea Linux x64 AMD EPYC 4585PX 16-Core | 43,680 | 21.8M/USD | 0.002 | 32 |
| Blacksmith Linux arm64 ARM64 (model undisclosed) | 27,191 | 21.8M/USD | 0.0013 | 32 |
| BuildPulse Linux x64 AMD EPYC 9R45 | 43,146 | 21.6M/USD | 0.002 | 64 |
| StarSling Linux x64 AMD EPYC (model hidden) | 38,218 | 19.1M/USD | 0.002 | 64 |
| Namespace Linux arm64 AmpereOne family (SKU undisclosed) | 23,534 | 15.7M/USD | 0.0015 | 32 |
| RunJob Linux x64 AMD EPYC 7502 32-Core | 17,973 | 13.4M/USD | 0.0013 | 48 |
| GitHub Linux arm64 Microsoft Cobalt 100 | 31,687 | 12.7M/USD | 0.0025 | 64 |
| GitHub Linux x64 AMD EPYC 9V74 80-Core | 31,133 | 10.4M/USD | 0.003 | 96 |
| Blacksmith Windows x64 AMD EPYC 4565P 16-Core | 40,527 | 10.1M/USD | 0.004 | 32 |
| Avrea Linux arm64 Apple M5 Max | 52,794 | 8.8M/USD | 0.006 | 16 |
| GitHub Linux x86 AMD EPYC 7763 64-Core | 25,491 | 8.5M/USD | 0.003 | 96 |
| Avrea Windows x64 AMD EPYC 4585PX 16-Core | 31,647 | 7.9M/USD | 0.004 | 16 |
| Avrea macOS arm64 Apple M5 Max | 52,014 | 5.2M/USD | 0.01 | 16 |
| GitHub Windows arm64 Cobalt 100 | 22,553 | 4.5M/USD | 0.005 | 64 |
| GitHub Windows x64 AMD EPYC 7763 64-Core | 18,327 | 3.7M/USD | 0.005 | 96 |
| Namespace macOS arm64 Apple M4 Pro | 46,338 | 3.1M/USD | 0.015 | 16 |
| Blacksmith macOS arm64 Apple M4 Pro | 41,001 | 3.1M/USD | 0.0133 | 12 |
| GitHub Windows x86 AMD EPYC 7763 64-Core | 15,003 | 3M/USD | 0.005 | 96 |
| GitHub macOS arm64 Apple M2 Pro | 32,583 | 1.6M/USD | 0.0207 | 5 |
| GitHub macOS x64 Intel Core i7-8700B | 8,375 | 540.4K/USD | 0.0155 | 12 |
Single thread CPU: CoreMark iterations/s. Disk and cache: composite MiB/s. Internet: composite Mbps. Value: score ÷ USD cost/vCPU/min. K means thousand, M means million. Higher is better. Cache uses each runner's best tested cache or artifact backend. Limits: maximum runner vCPU. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).
Open the full GitHub Actions runner benchmark toolThe CPU value formula
CPU value equals median CoreMark iterations per second divided by cost per vCPU per minute. The minute rate is first divided by the billed vCPU count when the provider charges for a fixed runner. For example, a score of 40,000 and a rate of $0.002 per vCPU-minute produce a value of 20 million per USD. The measured CPU score remains single thread. It is not multiplied by the runner's cores.
One USD ranking for every provider
All compute rates are converted to USD before value is calculated and sorted. RunJob's quoted EUR rate is multiplied by the saved USD-per-EUR reference rate from the ECB. The conversion date is visible on the page, and the original EUR price stays in the full tool's details. Every scored provider shares one ranking, with missing values at the end. K and M mean thousand and million. A zero or unavailable price leaves value unscored because dividing by it would not produce a useful comparison.
Value does not predict cost per build
One thread can be the critical path of a job without using all its reserved vCPUs. A fixed runner can still bill for the whole machine during waits and cache transfers. A consumed CPU service follows a different meter. This benchmark has no full build timings that connect those meters to your repository. Test the candidate runner at the size you intend to buy, including dependency installation, tests, and artifact upload.
Measurement context
The denominator is a researched list or overage compute rate. GitHub uses paid private standard rates, Namespace uses overage, and RunJob meters consumed CPU separately from memory. Allowances, subscription fees, storage charges, and billing rounding can change an actual invoice. The value score keeps those billing notes available in the full tool rather than treating the ratio as an all-inclusive cost.
Verdict
Use CPU value to shortlist runners when compute price matters, then compare complete workflow time and billed usage. A lower normalized rate can improve this ratio even when the machine has a lower single thread score. Your required platform, concurrency, and memory still matter.
More runner benchmark scenarios
Frequently asked questions
Which runner currently leads for single thread CPU value?
Do these runner rankings update automatically?
Are all operating systems and architectures included?
Does a missing result mean a runner scored zero?
Related tools
Data Transfer Calculator
Estimate transfer times for files over USB, WiFi, Ethernet, and more.
Use tool ➜Memory and Storage Throughput Visualizer
Visualize the massive speed difference between CPU cache, RAM, and storage.
Use tool ➜RAM Latency Calculator
Convert DDR3/DDR4/DDR5 timings (CL, tRCD, tRP, tRAS) into true latency in nanoseconds.
Use tool ➜