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
Thermal pressure
- 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.
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/corekilnExamples
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 2Verify
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.rbWatch
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.