В ошибке PyTorch на Mac есть одно число, которое люди ищут. Вот оно с Mac на 16 GB (AudioLDM2 #20):
RuntimeError: MPS backend out of memory (MPS allocated: 18.02 GB, other allocations: 107.10 MB, max allowed: 18.13 GB). Tried to allocate 4.50 MB on private pool.В предыдущей заметке я разобрался, откуда оно берётся на моём Mac с 48 GB. «max allowed» — это PYTORCH_MPS_HIGH_WATERMARK_RATIO, по умолчанию 1.7, умноженный на рабочий набор GPU, который рекомендует macOS и который возвращает torch.mps.recommended_max_memory(). По одной машине нельзя понять, чему равно это число на других, поэтому я выписал его из чужих ошибок.
Откуда берутся числа
24 октября я искал на GitHub issues, где процитирована ошибка со значением «max allowed». Нашлось 250 issues и pull requests, в 167 из них в тексте есть число. Большинство значений складывается в несколько групп, и там, где автор сообщения указал объём памяти Mac, группы совпадают с ним. Если разделить каждое значение на 1.7, получится рабочий набор, который macOS выделила GPU на этой машине.
| память Mac | max allowed, GiB | рабочий набор GPU, GiB | доля памяти | сообщений | встречалось |
|---|---|---|---|---|---|
| 8 GB | 9.07 | 5.33 | 67 % | 27 | 2023 – 2026 |
| 16 GB | 18.13 | 10.67 | 67 % | 18 | 2023 – 2026 |
| 24 GB | 27.20 | 16.00 | 67 % | 9 | Jan 2025 – Jan 2026 |
| 24 GB | 30.19 | 17.76 | 74 % | 3 | Dec 2025 – Sep 2026 |
| 32 GB | 36.27 | 21.33 | 67 % | 6 | 2024 – 2025 |
| 36 GB | 45.90 | 27.00 | 75 % | 3 | 2024 – 2026 |
| 48 GB | 63.65 | 37.44 | 78 % | 4, плюс моё | Sep – Oct 2026 |
| 64 GB | 81.60 | 48.00 | 75 % | 7 | Dec 2023 – Apr 2025 |
| 64 GB | 88.13 | 51.84 | 81 % | 6 | Mar – Oct 2026 |
| 128 GB | 163.20 | 96.00 | 75 % | 4 | 2024 – 2025 |
| 128 GB | 182.78 | 107.52 | 84 % | 2 | Dec 2025 – Jan 2026 |

Старые версии PyTorch называют эти числа «GB», а новые — «GiB». В обоих случаях это двоичная единица: 1.7 × две трети × 16 GiB точно равно 18.13.
Что изменилось
До конца 2025 года правило выглядит простым. macOS выделяла GPU две трети памяти на Mac до 32 GB и три четверти выше. В сообщениях с конца 2025 года видны большие доли на Mac с 24 GB, 64 GB и 128 GB. Во всех трёх сообщениях про 64 GB, где названа система, указана macOS 26. Значения для 8 и 16 GB не изменились. Мой Mac с 48 GB работает на macOS 26.5.2 и возвращает 37.44 GiB, 78 %.
У этих данных два ограничения: новые строки опираются всего на два — шесть сообщений каждая, и по ним нельзя сказать, macOS или чип создаёт разницу.
Что это значит, когда вы видите ошибку
При соотношении по умолчанию предел выше физической памяти в каждой строке таблицы: 1.7 × две трети — это 113 % памяти, а 1.7 × 84 % — 143 %. К моменту, когда задача достигает «max allowed», она уже некоторое время работает со свопом. Это совпадает с моим замером: на моём Mac своп начинался при footprint между 33.5 и 36 GB, намного ниже предела в 63.65 GiB. Совет в конце ошибки — соотношение 0.0 — снимает предел, так что задача может уйти в своп ещё дальше.
Если вы предпочитаете чистую ошибку вместо Mac, работающего со свопом, задайте предел ниже объёма памяти, например соотношение 1.0 — это сам рабочий набор. Вместе с ним задайте нижнее соотношение: в PyTorch 2.14 одно только верхнее соотношение ниже 1.4 завершается ошибкой «invalid low watermark ratio 1.4».
PYTORCH_MPS_HIGH_WATERMARK_RATIO=1.0 PYTORCH_MPS_LOW_WATERMARK_RATIO=0.8 python your_script.pyКак посмотреть рабочий набор своего Mac:
import torch
print(torch.mps.recommended_max_memory() / 2**30, "GiB")Числа, которые не подходят
Примерно треть сообщений показывает другие пределы: например, 1.70 GiB, 3.40 GiB, 6.77 GiB или 3.00 GiB. Это не стандартные значения Mac. Приложение или пользователь задал свой коэффициент или предел: один видеоредактор ограничивает MPS 3 GiB даже на Mac с 128 GB. Ещё 20 сообщений содержат 7.93, и я не смог связать это значение с одним объёмом памяти Mac. Если ваше число намного ниже таблицы, посмотрите настройки инструмента, прежде чем винить Mac.
Источники
По два сообщения для каждой строки. Полный список из 167 находится в файле данных.
- 8 GB, 9.07: noScribe #84, pytorch #105839
- 16 GB, 18.13: pinokio #941, AudioLDM2 #20
- 24 GB, 27.20: pytorch #145374, qwen3-optimizer-study #13
- 24 GB, 30.19: ml-bokeh #3, ComfyUI #17264 (соотношение 1.0, значит 17.76)
- 32 GB, 36.27: ComfyUI-LivePortraitKJ #82, instructlab #2568
- 36 GB, 45.90: ACE-Step-1.5 #282
- 48 GB, 63.65: trellis2-mlx #1, ask-physics #24
- 64 GB, 81.60: bobo-fun #8, ComfyUI-CogVideoXWrapper #312
- 64 GB, 88.13: EtherReel-releases #7, ComfyUI #17309
- 128 GB, 163.20: ComfyUI #9308, lm-evaluation-harness #1835
- 128 GB, 182.78: ComfyUI #11584, ComfyUI-WanVideoWrapper #1856