corekiln

Native macOS · C and Metal · no dependencies

Hold a Mac at full load, honestly.

Corekiln keeps every logical CPU busy, a Metal compute queue saturated, or both, until you stop it. macOS keeps control of scheduling, frequency, throttling and shutdown — Corekiln does not disable or bypass any of it.

Workers

Metal command slots

1
2
3

Thermal pressure

nominal
cpu_work_units
0
gpu_dispatches
0
elapsed
0.0s
peak
nominal


      
bin/corekiln --both --duration 20 --status 5

A model of a run, not a measurement — nothing on this page loads your machine. The output lines, the flag rules and the counter names are the real ones.

The counters

Two numbers, and what they are not

Corekiln reports progress, not performance. Both counters exist to show that the selected engines are still making forward progress — nothing more.

cpu_work_units

Completed arithmetic batches

One work unit is one completed 4,096-iteration arithmetic batch on one worker thread.

Not a utilisation percentage. Not a benchmark score. Not comparable between machines.

gpu_dispatches

Completed command buffers

One dispatch is one Metal command buffer that ran to completion. Three slots stay in flight at a time.

Not frames, not FLOPs, and not a measure of how much of the GPU you got.

Activity Monitor reports CPU usage per logical CPU, so a process occupying eight of them can read near 800 percent. Frequency may fall once macOS throttles, even while Corekiln keeps every worker runnable — the work-unit rate drops and the load does not.

Without --status the output is just the startup line and corekiln: stopped.

Thermal

A state macOS reports, not a temperature

Corekiln passes through the qualitative thermal-pressure state from a public API. There is no sensor reading here, no degrees, and no elevated privilege anywhere in the program.

nominal

No thermal pressure reported.

fair

Mild pressure. The system has begun to respond.

serious

Noticeable measures in effect. The final report records when this was first reached.

critical

The system is taking aggressive measures.

unknown

Used when no known state is available.

The final report carries peak_thermal and serious_at — the moment pressure first reached serious, or not_reached. That pair is the useful artefact of a soak: not how fast the machine went, but how long it held before the system started defending itself.

Limits

What it deliberately does not do

Never bypasses macOS

Scheduling, frequency scaling, thermal throttling and emergency shutdown all stay with the operating system. Corekiln only keeps threads runnable and command buffers queued.

No elevated privileges

Public APIs only. No sudo, no kexts, no entitlements to grant.

Nothing left behind

No daemon, no launch agent, no login item, no restart mechanism. When the process stops, it is gone.

Mode flags are exclusive

--cpu, --gpu and --both cannot be combined, and --workers is rejected with --gpu rather than silently ignored.

No package manager

The wrapper compiles the executable with Clang against Foundation and Metal, and reuses it until a source file or header changes.

Caution

Corekiln intentionally creates sustained maximum demand. Combined mode produces substantially more heat and power draw than CPU-only. Expect higher temperature, higher power consumption, fan activity where applicable, lower battery life, and possible interface sluggishness.

Save important work, connect appropriate power, keep vents unobstructed, and stop the process if the machine behaves unexpectedly.

1,239lines of C and Objective-C
4,096iterations per CPU work unit
3Metal command slots in flight
0dependencies, daemons or privileges

Run it

One command, no build system

Needs macOS and the Xcode Command Line Tools (xcode-select --install). The first run compiles the native executable to .build/corekiln; later runs reuse it.

Start here

Clone and run

With no options it loads every active logical CPU and the GPU until you press Ctrl-C.

git clone https://github.com/romankhadka/corekiln.git cd corekiln bin/corekiln

Examples

Narrower runs

# two logical CPUs, until interrupted bin/corekiln --cpu --workers 2 # GPU only, ten seconds bin/corekiln --gpu --duration 10 # both, with progress every two seconds bin/corekiln --both --duration 10 --status 2

Verify

The test suite

Black-box: it compiles the executable with strict warnings and exercises argument validation, every resource mode, timed shutdown, interrupt handling, the wrapper build, and real Metal command completion.

ruby test/corekiln_test.rb

Watch

From outside

Activity Monitor shows per-logical-CPU usage, and its GPU History window shows GPU load. macOS still reserves capacity for the display and other applications, so neither will read as a clean 100 percent.