TinkerLab
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)110592110592
{{MLX_MODEL_REPO}}MLX 量化模型仓库mlx-community/Qwen3-32B-4bitmlx-community/Qwen3-32B-4bit
{{KV_CACHE_BITS}}MLX KV Cache 量化位数 (8 或 4)88
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 步验收清单

  1. 已升级 `mlx >= 0.25.2`(或使用 `-DGGML_METAL_TENSOR_OPS=ON` 编译 `llama.cpp`),确保 M5 GPU 神经网络加速器被激活。
  2. 在 128GB MacBook Pro 上加载 70B/80B 模型配 64K 上下文前,已设置 `sudo sysctl -w iogpu.wired_limit_mb=110592`。
  3. 已在 `mlx_lm.server` 开启 `--kv-bits 8`(或在 Ollama 开启 `OLLAMA_KV_CACHE_TYPE=q8_0`),将 64K 上下文的 KV 访存压力减半。