Рендеринг фракталов с использованием графического процессора
Большинство фрактальных пикселей можно оценивать независимо друг от друга, что делает рендеринг по времени ухода естественной нагрузкой на графический процессор Metal на Mac и Apple Silicon. Сложность заключается в том, чтобы тысячи потоков оставались полезными, когда орбиты пролегают по совершенно разным траекториям.

Параллельные пиксели
Вычислительное ядро сопоставляет координаты потоков с координатами фрактала и выполняет итерации локально. Общие константы описывают окно просмотра, формулы и настройки визуализации; выходные текстуры передают поля, полученные на основе орбит, в последующие этапы обработки цвета и освещения.
Пиксели фрактала в значительной степени независимы и хорошо сопоставляются с потоками графического процессора. Координаты, параметры формул и таблицы цветов являются общими; каждый поток записывает один результат. Независимость заканчивается при появлении эффектов соседства, таких как нормали, окружающее затенение или блум. Для них должны быть предусмотрены отдельные проходы с явными входными данными, чтобы изменение градиента не приводило к ненужному повторному выполнению ресурсоемких вычислений орбиты.
Дивергенция и дисбаланс рабочей нагрузки
Пиксели, которые быстро выходят из области, завершают работу раньше, тогда как пиксели на границе могут израсходовать весь бюджет итераций. Потоки, сгруппированные для выполнения, могут ожидать завершения самого медленного пути. Внутренние проверки, адаптивное планирование и прогрессивные плитки сокращают объем напрасной работы, но добавляют сложности.
Вблизи границы некоторые пиксели итерируются сотни раз, в то время как внешние пиксели выбывают почти сразу. Потоки в одной группе ожидают прохождения самого медленного пути. Классификация плиток, проверки внутренних областей и уплотнение активных пикселей могут уменьшить расхождения, но увеличивают затраты на управление. Профилирование по нескольким регионам позволяет определить, оправдывает ли себя такая сложность; ядро, быстрое только над пустым внешним пространством, вводит в заблуждение.
Быстрая обратная связь, полное завершение работы
При использовании жестов или изменении положения ползунка проход с более низким разрешением или меньшим количеством образцов может сохранить отзывчивость. Как только ввод стабилизируется, его необходимо заменить результатом, соответствующим требованиям отображения. Политика предварительного просмотра становится дефектом, если окончательный проход никогда не планируется или постоянно аннулируется.
Во время выполнения жеста приложение может мгновенно реагировать при более низком разрешении или глубине итерации. После отпускания ползунка более точные прогоны продолжаются с использованием native разрешения дисплея — а не без разбора в режиме Retina на устройствах без Retina. Состояние качества должно быть отделено от состояния ввода. В противном случае обновление ползунка может привести к задержке финального прогона и оставить изображение на сетке предварительного просмотра, которая в четыре раза грубее, чем экран.
Apple Silicon и унифицированная память
В Apple Silicon версия Metal обращается к графическому процессору Apple с унифицированной моделью памяти: ЦП и графический процессор совместно используют системную память, хотя правила доступа по-прежнему зависят от режима хранения каждого ресурса. Это позволяет сократить некоторые операции копирования, но не устраняет необходимость итераций орбит, высокой точности или использования больших текстур. Приложение MandelKit для macOS работает в нативном режиме как arm64 и использует этот путь Metal; фактическая скорость по-прежнему зависит от формулы, глубины масштабирования, количества итераций, размера выходного файла и активных эффектов.
Наличие единой памяти в Apple Silicon не означает, что работа ЦП и графического процессора стала идентичной или не требует синхронизации. Режимы хранения Metal по-прежнему определяют, какой процессор может получить доступ к ресурсу и как он оптимизирован для использования GPU. Поэтому рендереру фракталов по-прежнему требуются ограниченные рабочие наборы, подходящие форматы текстур и измерения на реальных устройствах. Нативное выполнение arm64 описывает архитектуру; оно не гарантирует ни фиксированной частоты кадров, ни одинакового времени выполнения на всех чипах серии M.
Источники и дополнительная литература
В данной статье в оригинальной формулировке обобщены следующие специализированные источники. Доступ получен и редакционная проверка проведена 12 августа 2026.
- Metal overviewApple Developer Documentation
- Choosing a resource storage mode for Apple GPUsApple Developer Documentation
- The Science of Fractal ImagesSpringer

