Apple Silicon VRAM Allocation & Unlocker Calculator
By default, macOS caps Metal GPU memory allocation to ~75% of installed Unified Memory, preventing 24GB, 48GB, and 64GB Macs from loading larger quantized LLMs. Use this interactive calculator to safely unlock up to 90%–92% VRAM and generate the exact Terminal command for Ollama, LM Studio, and llama.cpp.
32GB Apple Silicon Unified Memory
What This Change Unlocks
By increasing iogpu.wired_limit_mb from the default 75% to 85%, Metal runtimes like Ollama, LM Studio, and llama.cpp can hold model weights directly in GPU VRAM without paging out to the slow SSD swap file, resulting in sustained full-speed token generation.
Execute in Terminal (macOS Sequoia & Sonoma)
Apply the runtime command immediately without restarting, or write it to /etc/sysctl.conf for permanent boot persistence.
Applies immediately until next system reboot. Perfect for quick testing.
sudo sysctl iogpu.wired_limit_mb=27853
Appends the limit to /etc/sysctl.conf to preserve the allocation across reboots.
echo "iogpu.wired_limit_mb=27853" | sudo tee -a /etc/sysctl.conf
Confirms your currently active wired memory limit in megabytes.
sysctl iogpu.wired_limit_mb
Setting value to 0 immediately restores automatic default macOS memory management.
sudo sysctl iogpu.wired_limit_mb=0
Models You Can Run on Your 32GB Mac
Compare model fit under the default 75% macOS ceiling vs your unlocked 27.2GB allocation.
Qwen3
8B · Q4_K_MGemma 4
12B · Q4_K_Mgpt-oss
20B (MoE) · MXFP4 (native)Qwen3.8
27B · Q4_K_M (8k ctx)Gemma 4
31B · Q4_K_M (8k ctx)Qwen3.6
35B-A3B (MoE) · Q4_K_MQwen3.8
27B · Q8_0Qwen3-Coder
30B-A3B (MoE) · Q8_0Llama 3.3
70B · Q4_K_M (8k ctx)gpt-oss
120B (MoE) · MXFP4 (native)Llama 4 Scout
109B (MoE) · Q4_K_MMistral Small 4
119B (MoE) · Q4_K_MDeepSeek V3 / R1
671B (MoE) · Dynamic ~1.6-bitDeepSeek V4-Flash
284B (MoE) · Q4_K_MFrequently Asked Questions: Apple Silicon Unified Memory & sysctl
Why does macOS cap GPU memory at 75%?
Apple Silicon uses unified memory shared across the CPU, GPU, and Neural Engine. To prevent an intensive Metal GPU task (like 3D rendering or gaming) from starving macOS background processes of RAM and triggering system instability, macOS caps GPU-wired memory (the iogpu.wired_limit_mb setting, where 0 means the system default) at approximately 75% of physical memory by default.
Is changing this setting safe?
Yes, provided you leave adequate headroom for the operating system. On a 24GB or 48GB Mac, keeping the allocation at 85%–90% leaves 2.4GB to 4.8GB of RAM for WindowServer, browser tabs, and macOS core daemons. If the system starts swapping heavily, lower the allocation or run the revert command.
Do I need to run this command every time I reboot?
If you use the temporary runtime command, the limit resets upon reboot. If you want it permanently active, write it to /etc/sysctl.conf using command #2 above, and macOS will apply your custom allocation ceiling automatically upon startup.
Which macOS versions support this sysctl flag?
The key is iogpu.wired_limit_mb, the name used in Apple’s MLX documentation, which lists macOS 15.0 or later. Older macOS releases used a different key, so run the verify command above first: if it prints a value, the setting exists on your Mac.
Apple Silicon guides
Which Mac suits local inference, and how unified memory actually behaves.
- Best Mac for Local LLMsMac mini M6 and M5 Pro vs Mac Studio M5 Max and Ultra.Read the guide
- Mac mini M6 for Local AI: Which Configuration to BuyM6 and M5 Pro configurations: bandwidth, prices and model fits.Read the guide
- How Much RAM and VRAM Do You Need to Run Local LLMs?Model weights, KV cache and OS overhead, tier by tier.Read the guide