Show and tell: Qwen3.8-27B coding agent on 16GB VRAM with CPU FFN offload #28287
arczhi
started this conversation in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Repository, scripts, and full benchmark notes:
https://github.com/arczhi/5060ti-qwen3.8-27b
I have been testing whether a 27B coding model can complete real repository work on a 16GB GPU.
Hardware:
During one serving snapshot, the process used about 15,767 MiB of VRAM and GPU utilization was around 51%.
Model and runtime configuration:
As I understand it, --n-cpu-ffn N keeps the dense FFN weights of the first N layers in system RAM and runs those layers on the CPU. The goal is to reduce GPU memory pressure. It does not move the MTP draft model.
I used the same Pi agent session, repository, design document, skill, and implementation task for all variants.
The task was to implement a feature in a medium-sized Go repository, add tests, and run the scoped verification commands.
Results:
Configuration: No --n-cpu-ffn
Configuration: --n-cpu-ffn 4
Configuration: --n-cpu-ffn 8
The FFN4 run modified the required code, added five tests, and passed the scoped build, vet, and gofmt checks.
The no-offload run also modified seven files and added five tests. Two failures were confirmed to be pre-existing baseline failures.
MTP acceptance ranged from 84.9% to 100% in the reference run.
The FFN4 configuration was the best balance in this real coding-agent task. It improved the observed prefill and decode behavior compared with the historical no-offload run.
FFN8 did not improve decode speed further. The agent made substantial progress, but entered a repeated host-side test-environment loop and did not reach a clean final report.
The main lesson for me is that CPU resources can matter even when the workload is GPU inference. A small amount of CPU FFN offload appears useful for reducing memory pressure, but more offload is not automatically better.
I would appreciate feedback on these questions:
This is a single-machine benchmark. The goal is to make the setup reproducible and compare real task completion, not to claim universal performance.
All reactions