Back to the full write-up on hijoseromero.com

GLM-5.3-Flash on a 128 GB desktop: the smallest quant, and it runs

Z.ai's 320B mixture-of-experts (18B active, MIT, first multimodal GLM-5) on a llama.cpp build of Unsloth's not-yet-merged support branch. This page is the first step: the smallest Unsloth quant that fits in 128 GB (UD-IQ1_S, 93 GB), four one-shot tests, reasoning effort low, run twice a week apart. Bigger quants, the reasoning dial and agentic harness tests come next. Every output, thinking transcript, log and number is linked.

The short version

One question first: can a 128 GB desktop run GLM-5.3-Flash at all? The smallest Unsloth quant, UD-IQ1_S at 93 GB, four one-shot tests, reasoning effort low, seed 42, same box and same prompts as the Qwen 3.8-Flash-Next and Qwen 27B runs. Then the whole thing again a week later to make sure the first night was real.

Second run, 2026-09-04: same answer

Run again a week later on the same branch build, same prompts, same seed, reasoning low, as a check before recording. Four of four again, every test within a minute of the first run, the same Ledger bug, the same signature. Two runs, one answer: this is the model on this box today, not a lucky night.

What comes next, on this page: the bigger quants (1-bit M at 98 GB, 2-bit at 109 GB), the reasoning dial (low against medium and high), and the same three files through six agentic coding tasks on three harnesses. Each lands here as it finishes.

How this ran before llama.cpp supports it

The problem, again

GLM-5.3-Flash uses a brand-new architecture (glm5next: hybrid linear + sparse attention, 288 routed experts, "hyper-connections"). Stock llama.cpp master, built the same night, refuses the file: unknown model architecture: 'glm5next'. Three draft pull requests exist; the working one is Unsloth's, llama.cpp PR #27754, "model: add GLM-5-Next (GLM-5.3-Flash)", branch glm5next/upstream on Unsloth's fork. Tested by them on CPU and CUDA; nobody had tried Vulkan on a Strix Halo, so this run was that test.

Two flags the PR requires: flash attention off (-fa off, the sparse-attention path needs full precision) and, on Nvidia, NVIDIA_TF32_OVERRIDE=0. MTP is in the file but the branch does not use it yet.

The recipe

Same box as the Qwen runs: GMKtec EVO-X2, Ryzen AI Max+ 395, 128 GB, Radeon 8060S, CachyOS. Branch build lives in its own folder; stock master stays untouched for the models it already supports.

1. Clone the branch and build with Vulkan.

git clone --branch glm5next/upstream --depth 1 https://github.com/unslothai/llama.cpp llama.cpp-glm5next
cd llama.cpp-glm5next
cmake -B build -DGGML_VULKAN=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build --config Release -j $(nproc) --target llama-server llama-cli llama-gguf-split llama-mtmd-cli

2. Download the quants that can fit in 128 GB. From unsloth/GLM-5.3-Flash-GGUF. Unsloth's own table: 1-bit needs 100 GB, 2-bit 115 GB, 3-bit 128 to 150 GB. On 123 GB usable that is 1-bit yes, 2-bit maybe, 3-bit no.

hf download unsloth/GLM-5.3-Flash-GGUF --include "UD-IQ1_S/*"

3. Smoke test. Shard 1, flash attention off, reasoning effort low, 32k context. Loaded in 25 s, answered "OK" with a reasoning field, then a real prompt at 9.7 tok/s generation and 28 tok/s prefill, peak 93 GB of system memory.

build/bin/llama-server -m <path>/UD-IQ1_S/GLM-5.3-Flash-UD-IQ1_S-00001-of-00003.gguf \
  --host 127.0.0.1 --port 8897 -np 1 -c 32768 -ngl 999 --jinja --no-webui -fa off \
  --chat-template-kwargs '{"reasoning_effort":"low","clear_thinking":true}'

4. The run. One server per build, 65k context, flash attention off, reasoning effort low (GLM only has low / high / max; at 10 tok/s "max" would not finish overnight), plus one extra leg of the 1-bit at high. Samplers from the model card: temperature 1.0, top_p 0.95. Same four prompts, one shot each, seed 42.

build/bin/llama-server -m <first shard>.gguf --host 127.0.0.1 --port 8899 -np 1 -c 65536 -ngl 999 \
  --jinja --no-webui -fa off --chat-template-kwargs '{"reasoning_effort":"low","clear_thinking":true}'

What the server log says about Vulkan. On every layer the branch prints fused DeepSeek V4 HC pre/comb/post not supported, set to disabled: the hyper-connection ops have no fused Vulkan kernel yet and take the slow path. So the speeds on this page are a first-day floor for this backend, not the model's ceiling.

ROCm vs Vulkan on this box

These runs are Vulkan (RADV). The ROCm toolkit is not installed on this machine yet, so a like-for-like ROCm build was not possible tonight. That comparison, on the same Strix Halo, is the next video; the short explainer of what the two backends are is on the Qwen 3.8-Flash-Next results page.

The run: one machine, the smallest file, the same exam as Qwen

Same prompts, same settings, same seed as the Qwen runs; one file, two runs a week apart (09-04 numbers shown, 08-28 in the first impressions). "Whole exam" = wall time for all four tests; "thinking" = its share of that. Unsloth's 3-bit (120 GB) cannot fit with the OS and context in 123 GB usable, so the ceiling on this box is the 2-bit; the bigger files come next.

BuildFilePeak memory
of 123 GB usable
LoadGenerationWhole examOf which thinkingOutput tokens
GLM 1-bit S, low
UD-IQ1_S, 93.1 GB, reasoning low
93.1 GB96 GB
25 s9.4 tok/s25m 47s1m 24s14,266

Reference points from earlier runs on the same box, same four prompts: Qwen 3.8-Flash-Next 1-bit (74.5 GB) at thinking medium did the whole exam at 22 to 24 tok/s; the Qwen 27B 4-bit at about 20 tok/s. Links under Sources.

Rig: GMKtec EVO-X2, Ryzen AI Max+ 395, 128 GB unified, CachyOS, default flags. Peak memory = total system RAM at the run's highest point, OS included. GLM and Flash-Next speed = llama-server's generation timing; 27B 4-bit = output tokens / wall time (a little lower). GLM ran with flash attention off (required by the branch) and no MTP.

First impressions, written the night of the run before any output was opened

Written the night of the first run (2026-08-28), before any output was opened. Numbers from the runner logs.

It runs. The 1-bit S (93.1 GB) loaded in 25 s on the branch build and finished all four tests in 26 minutes. Peak system memory 96 GB, so roughly 27 GB to spare on 128 with a 65k context.

It is slow. 9.2 to 9.5 tok/s on every test, 28 tok/s prefill. Qwen 3.8-Flash-Next's 1-bit did 22 to 24 on the same box, the Qwen 27B 4-bit about 20. Eighteen billion active parameters instead of six, plus the new hyper-connection ops running unfused on Vulkan, is the whole story.

Reasoning low really means low. Thinking share per test: 0%, 0%, 5%, 15%. Flash-Next at thinking medium spent 15 to 75%.

And it stopped every time. Four prompts, four finished files, no runaway. That is the number to hold on to before the bigger quants show up.

Test by test

Per test: a mid-play frame of every build (click to open the real output), the stats, and what the output actually does.

BLOCKFALL a complete falling-blocks game, one prompt

Browser check: browser check: see per-build notes

GLM 1-bit S, low BLOCKFALL
GLM 1-bit S, low: game over reached; score 0; ghost piece; 0 console errors
BuildTotal timeThinking (share)Output tokensGen speedHTML sizeFiles
GLM 1-bit S, low5m 22s- (0%)3,0379.6 tok/s8 KBoutput · raw

Plays, five keys, next-piece preview, ghost piece, game over, restart, zero console errors. 3,037 tokens, 5.4 minutes on the second run.

The exact prompt (one shot, sent as-is)
Create a complete falling-blocks puzzle game in a single self-contained HTML file. No external libraries, no internet resources, no images: everything inline (HTML, CSS, JavaScript, canvas rendering).

Requirements:

- 10 wide by 20 tall playfield rendered on a canvas.
- Seven distinct piece shapes, each made of four squares, each with its own color.
- Controls: left/right arrows move, up arrow rotates, down arrow soft-drops, spacebar hard-drops.
- Rotation must respect walls and stacked blocks (no clipping through anything).
- Completed horizontal lines clear, rows above fall down, and clearing multiple lines at once scores more.
- Score, lines cleared, and level displayed. Speed increases with level.
- Next-piece preview box.
- Game over when the stack reaches the top, with a visible game-over state and a restart key.
- Clean, readable dark visual style.

Output only the complete HTML file.
open as plain text ↗

ERUPTION a volcano physics simulation with live controls

Browser check: browser check: see per-build notes

GLM 1-bit S, low ERUPTION
GLM 1-bit S, low: 900 particles on screen at 10 s; 50 fps; 0 console errors
BuildTotal timeThinking (share)Output tokensGen speedHTML sizeFiles
GLM 1-bit S, low8m 04s0m 04s (0%)4,4269.2 tok/s10 KBoutput · thinking · raw

900 particles on screen at 10 s, 60 fps, live controls, zero errors. 4,426 tokens, 8.1 minutes.

The exact prompt (one shot, sent as-is)
Create a 2D physics simulation of a volcano erupting, in a single self-contained HTML file. No external libraries: everything inline, rendered on a canvas.

Requirements:

- Side view: a volcano cone with a crater, ground, and sky.
- A pressure meter that builds over time; when it maxes out, the volcano erupts, then pressure resets and builds again on its own.
- Eruptions launch glowing lava particles from the crater with varied velocities. Particles follow gravity in a realistic arc, land on the slopes, and slide or settle downhill.
- Lava cools over its lifetime: bright yellow-orange when launched, fading to dark rock, then disappearing.
- An ash cloud of smoke particles that rises from the crater and drifts with the wind.
- Three sliders the user can move while it runs: eruption power, wind strength and direction, and particle amount.
- A live on-screen counter showing active particle count and frames per second. The simulation must stay smooth with at least 1000 active particles.

Output only the complete HTML file.
open as plain text ↗

THE LEDGER clean a messy CSV and build a correct dashboard

Browser check: browser check: see per-build notes

GLM 1-bit S, low THE LEDGER
GLM 1-bit S, low: only 0/6 key numbers found (check by hand); duplicate id not mentioned; 1 console/page error(s): page: Identifier 'top' has already been declared
GLM 1-bit S, low THE LEDGER, fixed by hand
GLM 1-bit S, low, fixed by hand: one identifier renamed (top to topRegion), nothing else touched: all 6 key numbers exact, 0 console errors. This is what an agent harness would have shipped after reading the console.
BuildTotal timeThinking (share)Output tokensGen speedHTML sizeFiles
GLM 1-bit S, low5m 20s0m 17s (5%)2,8949.4 tok/s7 KBoutput · thinking · raw

The source has the right totals (California 16,091.26, Ohio 6,498.24, Texas 9,493.50, total 32,083.00, both quarter columns), refunds as negatives, the duplicate dropped. The rendered page is blank because of the let top collision. That is the only script error in the run, and it happened both times. The fix is one word: the script declares let top at global scope, and top is a built-in browser property, so I renamed it to topRegion by hand and rendered the result next to the broken frame. All six numbers exact, zero errors, headline correct. That is the version an agent harness would have shipped, because a harness reads the console and fixes the crash before it hands you the file. A one-shot prompt does not get that second look.

The exact prompt (one shot, sent as-is)
Below is a messy sales CSV export. Build a single self-contained HTML dashboard file (no external libraries, everything inline) that cleans this data and reports on it.

Cleaning rules:

- order_id must be unique: if an id appears twice, keep the first row and drop the rest.
- Rows whose amount is not a number (like N/A or unknown) are excluded from revenue, but report how many you excluded.
- Negative amounts are refunds and must count as negative revenue.
- Region names must be normalized (TX, tx, Texas, texas are all Texas; CA is California; OH is Ohio).
- Dates appear in multiple formats; parse them all. Q1 = Jan-Mar, Q2 = Apr-Jun.

The dashboard must show:

1. A pivot table of total revenue by region (rows) and quarter (columns), with row totals, column totals, and a grand total, formatted as dollars with two decimals.
2. A bar chart of revenue by region drawn with inline SVG or canvas (no chart libraries).
3. A data quality panel: rows received, duplicates dropped, rows excluded, rows counted.
4. A one-line headline stating the top region and its total.

The numbers displayed must be computed correctly from the data. Output only the complete HTML file.

```
order_id,order_date,region,product,amount_usd
1001,2025-01-06,Texas,widget,"1,240.00"
1002,1/9/2025,CA,gadget,$980
1003,2025-01-14,TX,gizmo,312.50
1004,"Jan 21, 2025",california,widget,"1,764.00"
1005,2025-01-27,Ohio,gadget,455
1006,2/3/2025,texas ,widget,N/A
1007,2025-02-10,OH,gizmo,"1,102.25"
1008,"Feb 14, 2025",California,widget,"2,310.00"
1009,2025-02-18,TX,gadget,-450.00
1010,2025-02-24,Texas,gizmo,870.10
1011,3/3/2025,Ohio,widget,"$1,999.99"
1012,2025-03-08,CA,gizmo,640.00
1008,"Feb 14, 2025",California,widget,"2,310.00"
1013,"Mar 12, 2025",tx,gadget,"1,580.00"
1014,2025-03-19,ohio,gizmo,225.75
1015,2025-03-27,California,gadget,"3,050.00"
1016,4/2/2025,TX,widget,990.00
1017,2025-04-07,Ohio,gadget,unknown
1018,"Apr 11, 2025",CA,widget,"1,420.50"
1019,2025-04-16,Texas,gizmo,"2,075.00"
1020,2025-04-22,OH,widget,$760.25
1021,5/1/2025,California,gizmo,"1,111.11"
1022,2025-05-06,TX,gadget,845.00
1023,"May 13, 2025",Ohio,gizmo,-220.00
1024,2025-05-19,texas,widget,"1,300.00"
1025,2025-05-28,CA,gadget,"2,940.40"
1026,6/4/2025,Ohio,widget,515.00
1027,2025-06-10,California,widget,"1,875.25"
1028,"Jun 17, 2025",TX,gizmo,N/A
1029,2025-06-23,OH,gadget,"1,660.00"
1030,2025-06-30,Texas,gadget,730.90
```
open as plain text ↗

BLIND ARTIST draw a scene in pure SVG, no eyes allowed

Browser check: browser check: see per-build notes

GLM 1-bit S, low BLIND ARTIST
GLM 1-bit S, low: signed "drawn by GLM"; valid SVG; 0 console errors
BuildTotal timeThinking (share)Output tokensGen speedHTML sizeFiles
GLM 1-bit S, low7m 01s1m 03s (15%)3,9099.4 tok/s8 KBoutput · thinking · raw

Valid SVG with the servers on the forks, the dog driving in a hard hat, sun, clouds, house, a ladder and goggles on the dog. Signed "drawn by GLM". 3,909 tokens, 7.0 minutes, 15% of it thinking.

The exact prompt (one shot, sent as-is)
Using only raw inline SVG code (no JavaScript, no external images, no libraries), draw this exact scene as a single self-contained HTML file:

A happy dog wearing a yellow hard hat is driving a forklift. The forklift is lifting a rack of three stacked computer servers on its front forks. The servers have small colored indicator lights. The scene is outdoors: flat ground, a sun in the top left, two clouds, and a small house far in the background on the right. The forklift has two wheels touching the ground and the dog sits in the driver seat holding the steering wheel.

Layering must be correct (wheels touch the ground, the dog is inside the forklift, the hat is on the dog's head, the servers sit on the forks). Sign the artwork by writing your own model name in small text in the bottom right corner.
open as plain text ↗
How the browser check was done

Each finished output opened in headless Chromium, console captured. Blockfall: all keys pressed, then 60 hard drops. Eruption: 10.5 s wait, counters read. Ledger: the six key numbers searched in the rendered page. Blind Artist: SVG validity and signature text. The screenshots on this page are those frames.

Errors and did-not-finish

No errors.

Every log, every raw file

LegFiles
GLM 1-bit S, lowresults.json · server.log · server-timings.log · 01-blockfall.raw.txt · 01-blockfall.response.json · 03-eruption.raw.txt · 03-eruption.response.json · 04-the-ledger.raw.txt · 04-the-ledger.response.json · 05-blind-artist.raw.txt · 05-blind-artist.response.json
The night itself (build, smoke test, launchers, runner logs)build-llamacpp.log · smoke-iq1s.log · smoke-iq1s.server.log · glm-p1.log · contestants-glm-p1.json ·

Sources

Claim on this pageDirect source
Model facts (320B total, 18B active, hybrid sparse + linear attention, mHC, 1M context, MIT), samplers, reasoning_effort levels GLM-5.3-Flash model card
The files that ran, sizes, "1-bit needs 100 GB", the KL divergence table Unsloth guide · the GGUF repo
Why a branch build was needed, flash attention off, MTP unused llama.cpp PR #27754, "model: add GLM-5-Next (GLM-5.3-Flash)"
Intelligence index 57, #3 open weights, hosted 50 tok/s, API price Artificial Analysis
Release story ("Ox Alpha" on OpenRouter the week before) SiliconANGLE, Aug 26
The Qwen Flash-Next reference runs (same tests, same box) Qwen 3.8-Flash-Next results page
The Qwen 27B 4-bit medium reference The thinking-dial results page

These are affiliate links. If you buy through them I may earn a small commission at no extra cost to you. As an Amazon Associate I earn from qualifying purchases.