Apple Silicon 向け 3D Gaussian Splatting 実装の進捗 ― 2026 年 6 月の進捗
-11.79 dB は実質的には評価プロトコル不整合に起因」「Apple Silicon 最適化はカーネル直接最適化ではなく算法レベルとシーン適応が効く」の 2 本立てで進める。残差 -3.33 dB は隠さず disclose。下線つきの用語はタップで意味が出る。 本研究のテーマは「Apple Silicon 搭載端末上で、3D Gaussian Splatting の学習から表示までを単一デバイスで完結させるパイプラインの検討」です。研究の貢献は 3 軸で、(1) Apple Silicon に最適化した実装の提案、(2) wgpu 抽象化層によるコストの定量化、(3) ユニファイドメモリ活用の実証 を主張しています。
第 2 回ゼミ時点では、自作実装で Lego データセットの検証 PSNR が 26.27 dB、学習時間が 26 分 32 秒に到達し、既存実装の brush との差は -11.79 dB と報告していました。次月計画は SSIM カーネル改良、MCMC 法の完全実装、研究室 GPU での CUDA 参考値の取得の 3 項目でした。
26.27 dB / 学習時間 26 分 32 秒-11.79 dB と報告 (brush 参考値 37.38 dB)今月やったことを一言で言うと、二本立てです。一つ目は、前月報告した brush との差 -11.79 dB の真因を突き止め、評価条件を揃えると brush と同等以上の品質に到達したこと。具体的には Lego 検証 PSNR が 36.11 dB、8 シーン平均が 33.49 dB です。
二つ目は、Apple Silicon 固有最適化を 8 候補について実測し、当初想定していた最低レイヤのカーネル直接最適化は ROI が想定より低く、より上位の 算法レベルの改善とシーン適応 が、品質と速度の双方で唯一の改善源になることを確定した、ということです。
-11.79 dB 差分の真因を解明し、評価条件を揃えると brush と同等以上の品質に到達した」36.11 dB (前月 26.27 dB に対し +9.84 dB) / 8 シーン平均 33.49 dB32.86 dB を +0.63 dB 上回り37.40 dB に対しては -3.33 dB の残差あり (本実装の同条件評価が未整備、次月課題)まず一つ目の発見からお話します。学習側と評価側の前景背景処理、つまり透明背景を持つ合成データセットの透明部分をどう扱うか、についてですが、本実装は white-bg 前提、つまり白で背景を埋めた状態で学習・評価していました。一方 brush は premultiplied 前提、つまりアルファ値で前景を pre-multiply した形式で学習・評価していました。
これら互いの前提で測ると、両者とも 1.7 dB 程度に崩壊する、対称な結合があることが分かりました。つまり評価条件を揃えること自体がそもそも前提として必要だった、という発見です。
そこで設定ファイル 1 行で慣習を揃えると、本実装の Lego 検証 PSNR は 36.11 dB、+9.84 dB に上昇しました。さらに、点の不透明度を学習中に緩やかに減衰させる手法を加えて 8 シーン平均 33.49 dB に到達し、brush 自身を同一プロトコルで再測した 8 シーン平均 32.86 dB を +0.63 dB 上回りました。Lego 単独では +4.07 dB です。
ただし正直に開示しておく必要があるのは、brush 原著論文がテスト分割 200 視点で報告している 37.40 dB に対しては、本実装の同条件評価がまだ未整備で、検証 100 視点の数字でしか測れていません。この比較では -3.33 dB の残差 が残っており、これは次月の最優先課題の一つです。
-11.79 dB は本実装の品質不足ではなくの不整合が支配的要因だったgt_convention = "premultiplied") で慣習を揃え、Lego 36.11 dB (+9.84 dB) に上昇33.49 dB / 合計 5 時間 5 分+0.63 dB 上回り、Lego val では +4.07 dB34.07 dB での代用、残差 -3.33 dB次に二つ目です。本研究の当初の想定は「Apple GPU 専用機能、つまりタイル単位描画やユニファイドメモリ、SIMD 集約といったハードウェア機能を直接活かしたカーネルの最適化が、研究の主要貢献である」というものでした。
今月は、これに該当するカーネル単体の候補を 5 件、具体的にはタイル binning の SIMD 化、半精度順伝播、GPU 上の prefix scan、点更新の GPU 化、評価データのキャッシュ化、を順に試しました。結果は 全部、学習時間に対して微小な悪化または不変 でした。
これに対して、より上位の手法、すなわち球面調和関数の次数を学習中に段階的に上げる算法レベルの改善は、8 シーン平均で +0.107 dB、学習時間 +10% で、唯一の universal な改善を達成しました。さらに「初期収束が速いシーンは早期停止し、遅いシーンは全反復まで回す」というシーン適応で、平均 +0.077 dB、学習時間 -24% という、品質と速度の両軸で改善を確定できました。
第 2 軸の wgpu 抽象コストについても同方向の発見がありました。研究室の V100 GPU 上で、brush (wgpu) と CUDA 原著実装と gsplat の三層を測ると、wgpu を経由する brush が CUDA 直の原著実装より 約 21% 速く、品質も高い、という結果でした。これで「wgpu 抽象コスト ≪ 実装最適化レベル」が M4 Max と V100 の 2 機種で確認されたので、卒論第 2 軸の主張は「抽象コストよりも実装最適化レベルが支配的」という方向に転換します。
+0.107 dB / 学習時間 +10% の唯一の universal な改善+0.077 dB / 学習時間 -24% の品質と速度の両軸改善37.46 dB / 8m24s) が 3DGS 原著実装 (CUDA 直, 28.38 / 10m37s) より 約 21% 速い前月計画の 3 項目について整理します。SSIM カーネル改良は、先ほど 2.2 で示した通り、カーネル直接最適化と同類のスコープと判明したため、得られた ROI 上限の実測値、つまり「5 連続で微小悪化または不変」を根拠に意図的に defer としました。「計画を放棄した」のではなく「実測結果から判断した」点を強調しておきます。
MCMC 法は、実装そのものは完了しました。ただし点群への noise 注入のパラメータが論文設定と数十倍ズレており、PSNR が復活せず、これは卒論の負の発見章として整理します。研究室 GPU での CUDA 参考値は、V100 で brush・原著 3DGS・gsplat の 3 種を取得済みです。A6000 と RTX 6000 Ada は研究室機材の占有状況により次月に持ち越しました。
17.4 dB に留まる最後に次月の計画です。次月は評価条件を揃えた最終比較の完成と、研究範囲の実データへの拡張を進めます。
具体的には 3 項目で、(1) 研究室 GPU での CUDA 参考値の完成、つまり A6000 と RTX 6000 Ada で残りの bench を回して V100 と同方向の結果を確認すること。(2) brush 原著論文と同条件のテスト評価、テスト分割 200 視点を完全にダウンロードして本実装で再評価し、残差 -3.33 dB を最終確定すること。(3) Mip-NeRF 360 や Tanks & Temples 等の実写データセットへの拡張検証、前景背景処理の慣習や算法レベル改善の効果が、合成データだけでなく実データでも保たれるかを確認すること、です。
なお卒論本文執筆については、方法論章の負の発見ドラフトが 436 行で手元に整備済で、本文への取り込みは (1) の追加データが揃い次第、並行して進めます。以上です。
次月は評価条件を揃えた最終比較の完成と、研究範囲の実データへの拡張を進める。なお、方法論章の負の発見に関するドラフト (436 行) は手元に整備済で、本文への取り込みは (1) の追加データが揃い次第、並行して進める。
-3.33 dB を最終的に確定する (現状は部分集合 36 視点で代用)スクリプト中の下線つき語は本リストの内容をポップアップで表示する。第 2 回ゼミからの継続語は最後にまとめて再掲。
-11.79 dB 差分の支配的要因32.94 dB / 5 分 03 秒)| 想定質問 | 回答骨子 |
|---|---|
| 前月の brush 37.38 dB と今月の brush 32.86 dB は何が違うのか? | 前月の 37.38 dB は brush 原著論文のテスト 200 視点での値、今月の 32.86 dB は本実装と評価条件を揃えるために検証 100 視点 + 同じ前景背景処理の慣習で再測した brush 自身の値。同じ実装の同じ checkpoint を異なる評価条件で測ったもので、brush の品質が下がったわけではない |
| 本実装が brush を +0.63 dB 超えたなら、原著論文の 37.40 dB に対しても勝てるはず? | 残差 -3.33 dB が依然存在する。これは原著論文がテスト 200 視点で評価しているのに対し、本実装の同条件評価が未整備で検証 100 視点でしか測れていないため。次月にテスト 200 視点を完全 DL して再評価し、最終的に確定する |
| 「評価プロトコルの不整合」とは具体的にどういう不整合だったのか? | 透明背景の扱い。本実装は学習画像を白背景 blend 済みで渡し評価も白背景前提、brush は α 値で前景を premultiply した形式で学習・評価していた。同じ checkpoint を異なる前提で測ると両方とも 1.7 dB に崩壊する対称な結合があり、前提を揃えてから比較する必要があったのに前月は気付かず -11.79 dB と報告していた |
| 5 連続のカーネル直接最適化が全部効かなかったのはなぜ? | Apple GPU の hazard tracker による暗黙の同期挿入、半精度変換のオーバーヘッド、SIMD グループ間の調整コスト等、Apple Silicon 固有の制約が theoretical な改善幅を打ち消した。卒論の方法論章で「Apple GPU 専用機能の theoretical advantage と実 workload での empirical gap」を構造化する材料に位置付ける |
| MCMC 完全実装は失敗したのか? | 実装そのものは完成 (前回特定した 3 設計欠陥を修正)。ただし noise 注入のパラメータが論文設定と数十倍ズレていて PSNR が 17.4 dB に留まり、現時点では brush 水準まで戻せていない。実装の問題ではなくハイパーパラメータ整合の問題で、卒論の負の発見章に独立した一節として整理する |
| 第 2 軸 (wgpu 抽象コスト) の主張が「重い」から「軽い」に変わったのは大丈夫か? | これも卒論の貢献の 1 つとして位置付ける。当初想定の反証であり、「abstraction overhead よりも implementation maturity が支配的」という実測ベースの結論は本研究独自の data point。第 2 軸全体は「wgpu 抽象コストを定量化した」のままで、結論の方向が「重い」から「実装差に埋もれる」に変わった |
| 「同等以上」と言うが Lego では brush 32.04 dB に対して +4.07 dB、平均でも +0.63 dB しかなく、印象ほど勝っていないのでは? | 8 シーン平均は元々 16 dB レンジの幅 (ficus 〜 hotdog) が存在し、平均値での +0.63 dB は実質的に同等水準と表現できる。重要なのは「以前は -11.79 dB と思っていたものが、評価条件を揃えると同等水準だった」という発見の方で、絶対値の超え幅は副次的 |
| 次月計画の (1) CUDA 参考値、(2) test 200 視点、(3) 実写データセットの優先順位は? | (1) は研究室機材の占有解放待ち、(2) は評価環境整備のみで自走可能、(3) は (1)/(2) と独立した実データ拡張。並行で進める。卒論本文への組み込みは (1) の追加データが揃い次第、手元の負の発見ドラフト (436 行) と合わせて進める |
質疑応答で 3〜6 分を見越し、全体 7〜10 分の枠を想定する。