TechCompare LogoTechCompare

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

Scored configurations
26 / 26
Every tested platform included
Ranking
Score / compute rate
All compute rates in USD

Current leaders

  1. #1

    Ubicloud Linux arm64

    Ampere Altra Q80-30

    34.6M per USD

    $0.000625/vCPU/min

  2. #2

    Ubicloud Linux x64

    AMD Ryzen 9 7950X3D 16-Core

    33.4M per USD

    $0.001/vCPU/min

  3. #3

    BuildPulse Linux arm64

    AWS Graviton (gen undisclosed)

    26.5M per USD

    $0.00125/vCPU/min

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

GitHub Actions runner CPU models, single thread CPU scores, disk, cache, and internet scores, and value per USD compute cost. Missing tests have no score.
RunnerCPUSingle threadCPU valueCost/vCPU/minUSDMax vCPU
Ubicloud Linux arm64

Ampere Altra Q80-30

21,630
34.6M/USD
0.000630
Ubicloud Linux x64

AMD Ryzen 9 7950X3D 16-Core

33,393
33.4M/USD
0.00130
BuildPulse Linux arm64

AWS Graviton (gen undisclosed)

33,116
26.5M/USD
0.001364
Latchkey Linux x64

AMD EPYC 7R13

30,065
24.1M/USD
0.001316
Blacksmith Linux x64

AMD EPYC (model hidden)

45,851
22.9M/USD
0.00232
Namespace Linux x64

AMD EPYC (model hidden)

33,130
22.1M/USD
0.001564
Avrea Linux x64

AMD EPYC 4585PX 16-Core

43,680
21.8M/USD
0.00232
Blacksmith Linux arm64

ARM64 (model undisclosed)

27,191
21.8M/USD
0.001332
BuildPulse Linux x64

AMD EPYC 9R45

43,146
21.6M/USD
0.00264
StarSling Linux x64

AMD EPYC (model hidden)

38,218
19.1M/USD
0.00264
Namespace Linux arm64

AmpereOne family (SKU undisclosed)

23,534
15.7M/USD
0.001532
RunJob Linux x64

AMD EPYC 7502 32-Core

17,973
13.4M/USD
0.001348
GitHub Linux arm64

Microsoft Cobalt 100

31,687
12.7M/USD
0.002564
GitHub Linux x64

AMD EPYC 9V74 80-Core

31,133
10.4M/USD
0.00396
Blacksmith Windows x64

AMD EPYC 4565P 16-Core

40,527
10.1M/USD
0.00432
Avrea Linux arm64

Apple M5 Max

52,794
8.8M/USD
0.00616
GitHub Linux x86

AMD EPYC 7763 64-Core

25,491
8.5M/USD
0.00396
Avrea Windows x64

AMD EPYC 4585PX 16-Core

31,647
7.9M/USD
0.00416
Avrea macOS arm64

Apple M5 Max

52,014
5.2M/USD
0.0116
GitHub Windows arm64

Cobalt 100

22,553
4.5M/USD
0.00564
GitHub Windows x64

AMD EPYC 7763 64-Core

18,327
3.7M/USD
0.00596
Namespace macOS arm64

Apple M4 Pro

46,338
3.1M/USD
0.01516
Blacksmith macOS arm64

Apple M4 Pro

41,001
3.1M/USD
0.013312
GitHub Windows x86

AMD EPYC 7763 64-Core

15,003
3M/USD
0.00596
GitHub macOS arm64

Apple M2 Pro

32,583
1.6M/USD
0.02075
GitHub macOS x64

Intel Core i7-8700B

8,375
540.4K/USD
0.015512

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 tool

The 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?
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.
Do these runner rankings update automatically?
Yes. The rankings, leaders, counts, table, and structured data are calculated from the shared benchmark dataset, researched pricing, and saved exchange rate during each site build. The prebuild refreshes the ECB exchange rate and keeps the dated saved rate if the fetch fails. Importing new results or updating prices changes the next build. They do not fetch live measurements or provider prices while you browse.
Are all operating systems and architectures included?
Yes. These pages include every imported Linux, Windows, and macOS configuration, including x64, ARM64, and 32-bit x86 binaries. The full tool lets you narrow the platform or provider. Operating system, compiler, and affinity differences remain part of each measured result.
Does a missing result mean a runner scored zero?
No. Missing or unusable measurements stay unscored and appear after scored results. Value also requires a positive quoted cost per vCPU per minute. A missing test does not establish that a runner is slow.