ARTIFACT // BENCH-M5-METAL4-MLX-LLM.SH (SH)
Apple M5 Max / M4 Max Metal 4 神经网络加速器与 MLX 长上下文实测脚本 (bench-m5-metal4-mlx-llm.sh)
在 64GB/128GB MacBook Pro 上解锁 Metal 锁定内存上限,核验 MLX Metal 4 TensorOps 硬件加速,并使用 8-bit KV Cache 实测长上下文 Prefill 与 Decode 速度。
[核心实测结论 / TL;DR]本配置包「Apple M5 Max / M4 Max Metal 4 神经网络加速器与 MLX 长上下文实测脚本」(文件名:bench-m5-metal4-mlx-llm.sh,格式:SH)是 Tinker AI 实测工坊配套指南《apple-m5-max-vs-m4-max-metal4-neural-accelerators-mlx-llama-cpp-benchmark》的参数化生产模板。支持在本地浏览器实时定制 macOS Metal 显存上限 (MB,128GB 机型建议 110592) (WIRED_LIMIT_MB=110592)、MLX 量化模型仓库 (MLX_MODEL_REPO=mlx-community/Qwen3-32B-4bit)、MLX KV Cache 量化位数 (8 或 4) (KV_CACHE_BITS=8) 等 3 项核心变量,默认遵循 127.0.0.1 回环绑定与最小权限规范。
01 // HOMELAB本地 AI / HomeLab· 验证日期:2026-11-02
查看全部 42 套配置附件 →bench-m5-metal4-mlx-llm.sh
查看配套实测指南 →Apple M5 Max / M4 Max Metal 4 神经网络加速器与 MLX 长上下文实测脚本
在 64GB/128GB MacBook Pro 上解锁 Metal 锁定内存上限,核验 MLX Metal 4 TensorOps 硬件加速,并使用 8-bit KV Cache 实测长上下文 Prefill 与 Decode 速度。
参数化定制变量 (Variables — 自动保存在本地浏览器)
UTF-8 编码 · 零延迟实时编译
#!/usr/bin/env bash
# Tinker AI — Apple M5 Max / M4 Max Metal 4 TensorOps & MLX Benchmark Runner (Guide #31)
set -euo pipefail
WIRED_MB="110592"
MODEL="mlx-community/Qwen3-32B-4bit"
KV_BITS="8"
echo "=== [1/3] Inspecting Apple Silicon SoC & Raising Metal Wired Limit to $WIRED_MB MB ==="
sysctl -n machdep.cpu.brand_string
sudo sysctl -w iogpu.wired_limit_mb="$WIRED_MB"
echo "=== [2/3] Verifying MLX Version & Metal 4 GPU Device Info ==="
python3 -c "import mlx.core as mx; print('MLX Version:', mx.__version__, '| Device:', mx.metal.device_info())"
echo "=== [3/3] Benchmarking Prompt Prefill (TTFT) & Decode on $MODEL (KV=${KV_BITS}-bit) ==="
python3 -m mlx_lm.generate \
--model "$MODEL" \
--kv-bits "$KV_BITS" \
--max-tokens 256 \
--prompt "Summarize the architectural difference between memory-bandwidth-bound token decode and compute-bound prompt prefill on Apple Silicon Metal 4 Neural Accelerators."
PARAMETER SPECIFICATION // 参数化变量规范说明表
「bench-m5-metal4-mlx-llm.sh」可定制环境变量与默认值说明
本配置模板(SH 格式)支持 3 项运行时参数注入,所有替换均在本地浏览器内完成。
| 模板占位符 | 参数用途说明 | 安全默认值 | 填写示例 |
|---|---|---|---|
{{WIRED_LIMIT_MB}} | macOS Metal 显存上限 (MB,128GB 机型建议 110592) | 110592 | 110592 |
{{MLX_MODEL_REPO}} | MLX 量化模型仓库 | mlx-community/Qwen3-32B-4bit | mlx-community/Qwen3-32B-4bit |
{{KV_CACHE_BITS}} | MLX KV Cache 量化位数 (8 或 4) | 8 | 8 |
PAIRED HARDWARE MANIFEST // 配套实测环境与边界记录
配套指南《Apple M5 Max (128GB · 614 GB/s) 对决 M4 Max (128GB · 546 GB/s) 本地大模型实测:Metal 4 GPU 神经网络加速器、3.4 倍 Prefill 暴涨与 MLX 调优》验证基线
实测硬件与操作系统 (Hardware & OS)
MacBook Pro 16" Apple M5 Max(40 核 GPU 内置神经网络加速器 · 128GB 统一内存 · 614 GB/s)对决 M4 Max(40 核 GPU · 128GB 统一内存 · 546 GB/s)
锁定软件栈与模型版本 (Pinned Versions)
mlx 0.25.2 & mlx-lm 0.23.1 (Metal 4 TensorOps enabled)llama.cpp b4780 (-DGGML_METAL_TENSOR_OPS=ON)Ollama 0.6.2 (Darwin arm64)
离线与安全边界 (100% 笔记本本地离线运行(支持纯电池满速推理))
两台 MacBook Pro 均在飞行模式完全断网状态下完成插电与纯电池续航对比实测。
已知限制与失败边界 (Known Limits)
- 逐词生成阶段(Decode)依然严格受限于统一内存带宽:M5 Max (614 GB/s) 的 `tg128` 生成速度比 M4 Max (546 GB/s) 快 **13%–18%**;而计算密集型的长上下文预填充(`pp4096`/`pp16384`)则因 GPU 神经网络加速器加持暴涨 **2.8–3.6 倍**。
- 若使用旧版 `mlx < 0.24` 或未开启 Metal 4 TensorOps 编译的 `llama.cpp` 二进制文件,在 M5 Max 上会回退至传统 Metal 3 SIMD 矩阵指令,白白损失约 65% 的 Prefill 加速红利。
DEPLOYMENT CHECKLIST // 配置落地核验步骤
部署 bench-m5-metal4-mlx-llm.sh 后的 3 步验收清单
- 已升级 `mlx >= 0.25.2`(或使用 `-DGGML_METAL_TENSOR_OPS=ON` 编译 `llama.cpp`),确保 M5 GPU 神经网络加速器被激活。
- 在 128GB MacBook Pro 上加载 70B/80B 模型配 64K 上下文前,已设置 `sudo sysctl -w iogpu.wired_limit_mb=110592`。
- 已在 `mlx_lm.server` 开启 `--kv-bits 8`(或在 Ollama 开启 `OLLAMA_KV_CACHE_TYPE=q8_0`),将 64K 上下文的 KV 访存压力减半。