Run a benchmark
One container. One command. No account. No email address.
Read the code first
Source on GitHubLocalMax runs on your machine. Examine the source before you run it. Every part is public: the runner, the container files, the profiles and the checks.
GPU model, VRAM, driver, CUDA, PCIe link, power limit and clocks. CPU model and core count. RAM. OS and kernel. All measured values, the raw records for each request, and the telemetry.
Hostname. Username. File paths. GPU serial numbers. Board UUIDs. MAC addresses. Environment variables. Data about other processes. The runner removes secrets and paths from logs on your machine, before it writes them.
LocalMax gives your machine a name such as Rocinante-K7X2P. The name comes from a key on your machine. You do not type a name. Keep the 5-character code. Use it to find your results at /systems/CODE.
Submission is voluntary. You control what you send. Commandlocalmax inspect shows the full content before upload. Legal · Privacy
1. Check your system
You need Linux, the NVIDIA driver and the NVIDIA Container Toolkit. LocalMax supports x86_64 and aarch64. WSL2 works, but it is experimental. LocalMax marks a WSL2 result.
# Reports driver, CUDA, GPU, disk, RAM and which profiles you qualify for
docker run --rm --gpus all ghcr.io/pavel4ai/localmax-llm:latest doctor2. Pick a profile
Select the highest tier that your total VRAM permits. Then run a lower tier also. This makes your system comparable across the full range.
| Profile | Tier | Min VRAM | Model | Download | Run time |
|---|---|---|---|---|---|
| diffusion-enthusiast-fp8 | Enthusiast · FP8 | 24 GB | 8B fp8_e4m3 | 9.3 GB | ~14 min |
| diffusion-entry-fp8 | Entry · FP8 | 12 GB | 4B fp8_e4m3 | 3.8 GB | ~14 min |
| diffusion-prospector-fp8 | Prospector · FP8 | 64 GB | 12B fp8_e4m3 | 13 GB | ~14 min |
| llm-enthusiast-fp8 | Enthusiast · FP8 | 24 GB | 8B fp8_e4m3 | 8.8 GB | ~14 min |
| llm-entry-fp8 | Entry · FP8 | 12 GB | 4B fp8_e4m3 | 4.1 GB | ~14 min |
| llm-prospector-fp8 | Prospector · FP8 | 64 GB | 32B fp8_e4m3 | 35 GB | ~14 min |
| vision-enthusiast-fp8 | Enthusiast · FP8 | 24 GB | 8B fp8_e4m3 | 9.3 GB | ~14 min |
| vision-entry-fp8 | Entry · FP8 | 12 GB | 4B fp8_e4m3 | 4.9 GB | ~14 min |
| vision-prospector-fp8 | Prospector · FP8 | 64 GB | 32B fp8_e4m3 | 36 GB | ~14 min |
INT4 and NVFP4 lanes exist for each tier and are listed on theprofile matrix. They fit a larger model in the same VRAM and are ranked separately.
3. Run it
# Weights are cached in ~/.localmax and reused across profiles docker run --rm --gpus all -v ~/.localmax:/cache \ ghcr.io/pavel4ai/localmax-llm:latest run llm-entry-base # Vision and diffusion use their own images docker run --rm --gpus all -v ~/.localmax:/cache \ ghcr.io/pavel4ai/localmax-vision:latest run vision-entry-base docker run --rm --gpus all -v ~/.localmax:/cache \ ghcr.io/pavel4ai/localmax-diffusion:latest run diffusion-entry-base
The container starts the runtime and waits for it. Then it runs a warm-up. Then it runs the fixed workload and records telemetry. Stop all other GPU work first. The runner measures everything on the GPU, including your browser.
4. Inspect before you publish
Nothing goes to LocalMax until you accept it. Command inspect needs no network. It shows the manifest and each file for upload.
docker run --rm -v ~/.localmax:/cache \ ghcr.io/pavel4ai/localmax-llm:latest inspect LAST
5. Submit
docker run --rm -v ~/.localmax:/cache \ ghcr.io/pavel4ai/localmax-llm:latest submit LAST
The CLI shows a verification link. Open the link. Complete the check. The upload then starts. The check makes mass fabrication expensive. It does not identify you.
Your result appears in one or two minutes. LocalMax computes each metric again from your raw records before it accepts the result. Your result page lists each check.
If something fails
An out-of-memory failure is a valid result. Submit it. It records that the profile does not fit that hardware. The runner marks the workload as failed. It does not retry with different settings.
Report problems atgithub.com/pavel4ai/localmax.net/issueswith the run ID.