Рендеринг та застосування

Рендеринг фракталів на графічному процесорі

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

Фрактал «Палаючий корабель» із червоними островами на бірюзовому тлі
«Burning Ship» у MandelKit: абсолютне значення в ітерації порушує симетрію класичної карти Мандельброта.Зображення: Björn Kindler / MandelKit · MandelKit · Eigene Darstellung · Own work

Паралельні пікселі

Обчислювальне ядро відображає координати потоків на фрактальні координати та виконує ітерації локально. Спільні константи описують вікно перегляду, формули та візуальні налаштування; вихідні текстури передають поля, отримані з орбіт, у наступні етапи обробки кольору та освітлення.

Фрактальні пікселі є значною мірою незалежними й добре розподіляються між потоками графічного процесора. Координати, параметри формул та таблиці кольорів є спільними; кожен потік записує один результат. Незалежність закінчується ефектами сусідства, такими як нормалі, оклюзія навколишнього середовища або ефект «блум». Вони повинні бути окремими проходами з явними вхідними даними, щоб зміна градієнта не призводила до непотрібного повторного виконання обчислень орбіти, що вимагає значних обчислювальних ресурсів.

Дивергенція та дисбаланс навантаження

Пікселі, що швидко «вириваються», завершують роботу раніше, тоді як пікселі на межі можуть вичерпати весь бюджет ітерацій. Потоки, згруповані для виконання, можуть очікувати на найповільнішому шляху. Внутрішні тести, адаптивне планування та прогресивні фрагменти зменшують марну роботу, але додають складності.

Біля межі деякі пікселі ітеруються сотні разів, тоді як зовнішні пікселі виходять з області майже миттєво. Потоки в одній групі очікують на найповільніший шлях. Класифікація плиток, тести на внутрішність та ущільнені активні пікселі можуть зменшити розбіжність, але збільшують витрати на управління. Профілювання по декількох регіонах визначає, чи виправдовує себе така складність; ядро, яке працює швидко лише над порожньою зовнішньою областю, вводить в оману.

Швидкий зворотний зв’язок, повне виконання

Під час жестів або зміни положення повзунка прохід з нижчою роздільною здатністю або меншою кількістю зразків може зберегти швидкість відгуку. Після стабілізації вхідних даних їх необхідно замінити на вихідні дані, що відповідають вимогам відображення. Політика попереднього перегляду стає недоліком, якщо остаточний прохід ніколи не планується або постійно анулюється.

Під час виконання жесту додаток може миттєво реагувати з нижчою роздільною здатністю або меншою глибиною ітерації. Після відпускання повзунка більш детальні прогони продовжуються з рідною роздільною здатністю дисплея — без безрозбірливого використання Retina на пристроях, що не підтримують Retina. Стан якості має бути відокремлений від стану введення. Інакше оновлення повзунка може призвести до недостатнього опрацювання кінцевого прогону та залишити зображення на сітці попереднього перегляду, яка в чотири рази грубіша за екран.

Apple Silicon та уніфікована пам’ять

У Apple Silicon Metal звертається до графічного процесора Apple із уніфікованою моделлю пам’яті: центральний процесор і графічний процесор спільно використовують системну пам’ять, хоча правила доступу все ще залежать від режиму зберігання кожного ресурсу. Це дозволяє зменшити деякі обмеження щодо копіювання, але не робить ітерації орбіт, високу точність або великі текстури безкоштовними. Додаток MandelKit для macOS працює нативно як arm64 і використовує цей шлях Metal; фактична швидкість все ще залежить від формули, глибини масштабування, кількості ітерацій, розміру вихідного файлу та активних ефектів.

Уніфікована пам’ять на Apple Silicon не робить роботу ЦП та графічного процесора ідентичною чи позбавленою необхідності синхронізації. Режими зберігання даних Metal як і раніше визначають, який процесор може отримати доступ до ресурсу та як його оптимізовано для використання графічним процесором. Тому рендереру фракталів все ще потрібні обмежені робочі набори, відповідні формати текстур та вимірювання на реальних пристроях. Нативне виконання arm64 описує архітектуру; воно не гарантує ані фіксованої частоти кадрів, ані однакового часу виконання на всіх чіпах серії M.

Джерела та додаткова література

Ця стаття узагальнює наступні спеціалізовані джерела в оригінальній формулюванні. Ознайомлено та редакційно перевірено 12 серпня 2026.

  1. Metal overviewApple Developer Documentation
  2. Choosing a resource storage mode for Apple GPUsApple Developer Documentation
  3. The Science of Fractal ImagesSpringer