レンダリングと用途

GPUによるフラクタルレンダリング

フラクタルのピクセルのほとんどは独立して評価できるため、エスケープタイムレンダリングは Mac および Apple Silicon における自然な Metal GPU ワークロードとなります。課題は、軌道が極めて異なる経路をたどる場合でも、数千のスレッドを有効に活用し続けることです。

ターコイズ色の背景に赤い島々が浮かぶ「Burning Ship」フラクタル
MandelKitにおける「Burning Ship」:反復における絶対値が、古典的なマンデルブロマップの対称性を破ります。画像: Björn Kindler / MandelKit · MandelKit · Eigene Darstellung · Own work

並列ピクセル

コンピュートカーネルは、スレッド座標をフラクタル座標にマッピングし、局所的に反復処理を行います。共有定数は、ビューポート、数式、および視覚設定を記述します。出力テクスチャは、軌道から導出されたフィールドを、その後のカラーパスやライティングパスへと引き継ぎます。

フラクタルピクセルは概ね独立しており、GPUスレッドにうまく対応します。座標、数式のパラメータ、カラーテーブルは共有されており、各スレッドが1つの結果を書き込みます。この独立性は、法線、アンビエントオクルージョン、ブルームといった近隣効果によって制限されます。これらは明示的な入力を伴う個別のパスとして処理すべきであり、そうすることで、グラデーションを変更しても、計算負荷の高い軌道計算が不必要に再実行されることを防げます。

発散とワークロードの不均衡

素早く脱出するピクセルは早期に処理が完了しますが、境界のピクセルは反復処理の予算をすべて消費する可能性があります。実行のためにグループ化されたスレッドは、最も処理速度の遅いパスで待機することがあります。内部テスト、適応型スケジューリング、およびプログレッシブタイルは、無駄な処理を削減しますが、複雑さを増します。

境界付近では、一部のピクセルが数百回も反復計算される一方で、外側のピクセルはほぼ即座に計算から外れます。1つのグループ内のスレッドは、最も処理速度の遅いパスを待ちます。タイル分類、内部判定、および圧縮されたアクティブピクセルは、発散を抑えることができますが、管理コストが増加します。複数のリージョンにわたるプロファイリングを行うことで、その複雑さが報われるかどうかを判断できます。空の外側領域でのみ高速なカーネルは、誤解を招く恐れがあります。

迅速なフィードバック、完全な仕上がり

ジェスチャー操作やスライダーの変更中は、低解像度または低サンプリングのパスを使用することで応答性を維持できます。入力が安定したら、表示に適合した出力へと置き換える必要があります。最終パスがスケジュールされない、あるいは継続的に無効化される場合、プレビューの方針は欠陥となります。

ジェスチャー操作中、アプリは低解像度または低反復深度で即座に応答できます。指を離した後は、より精細な処理がネイティブのディスプレイ解像度で継続されます。非Retina端末で無差別にRetina表示を行うことはありません。品質状態は入力状態から分離されている必要があります。そうしないと、スライダーの更新によって最終処理が滞り、画像が画面よりも4倍粗いプレビューグリッドのままになってしまう可能性があります。

Apple Silicon およびユニファイドメモリ

Apple Siliconにおいて、Metalは統一メモリモデルを備えたApple GPUに対応しています。CPUとGPUはシステムメモリを共有しますが、アクセスルールは依然として各リソースのストレージモードに依存します。これにより一部のコピー境界を削減できますが、軌道反復、高精度計算、または大規模なテクスチャの処理が無料になるわけではありません。 MandelKitのmacOSアプリは、arm64としてネイティブに動作し、このMetalのパスを使用します。実際の速度は、依然として数式、ズーム深度、反復回数、出力サイズ、および有効なエフェクトに依存します。

Apple Siliconのユニファイドメモリは、CPUとGPUの動作を同一にしたり、同期を不要にしたりするものではありません。 Metalのストレージモードは、依然としてどのプロセッサがリソースにアクセスできるか、およびそれがGPU利用のためにどのように最適化されるかを決定します。したがって、フラクタルレンダラーには、依然として有限のワーキングセット、適切なテクスチャ形式、および実機での測定が必要です。ネイティブarm64実行とはアーキテクチャを記述するものであり、固定フレームレートや、すべてのMシリーズチップで同一の実行時間を保証するものではありません。

出典および参考文献

本記事は、以下の専門資料を原文のまま要約したものです。12年8月にアクセスし、編集上のレビューを行いました 2026。

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