History for SmTIAS-LightSim / docs / 06_TEST / TEST_04_シミュレーション速度最適化履歴.md
2026-05-28
@rintoHasegawa
[add] Speed-1 LLVM JIT 自動検出と診断ログ強化 — runtime/llvm_init.py を新規実装.ensure_drjit_libllvm_path() で DRJIT_LIBLLVM_PATH 未設定時に Windows 標準 4 候補 (C:\Program Files\LLVM 等) + POSIX glob + LLVM_DIR + extra_candidates を順次探索して os.environ 設定(既設定なら上書きしない).log_variant_status() で llvm_/cuda_/scalar_ 経路を INFO 明示,要求 llvm_* で実 scalar_* なら WARNING 追加.render/runner.py で variant=llvm_* 時に自動検出を呼び ImportError 時は原因明示ログ→ re-raise,mitsuba を関数内遅延 import 化.visualize/baker.py の _set_variant_once に LLVM 自動探索分岐を追加し direct/path 両方で log_variant_status を呼ぶ.cli/render.py で import 順を制御し sensors.py/lights.py のモジュールレベル mitsuba import 前に検出を確実に通す.docs/02_ENV/ENV_02 に LLVM インストール手順・DRJIT_LIBLLVM_PATH 説明・動作確認コマンドを追記.新規テスト 51 件 (runtime/test_llvm_init.py 25, render/test_runner_jit_init.py 14, visualize/test_baker_jit_init.py 8, cli/test_render_jit_init.py 4) で仕様 A1-E1 完全カバー,DRJIT_LIBLLVM_PATH 設定下で 606 件全通過.速度は不変(目的は再発防止+診断容易化).数値同等性は MC 内部シードで SHA256 異なるが平均相対誤差 7.23e-05 で統計同等性パス.これで環境変数消失によるサイレントクラッシュが再発しない土台が整備された.TEST_04 Speed-1 セクションを実施結果で更新.CLAUDE.md 開発進捗に Speed-1 完了追記+実装済みモジュール一覧に runtime/llvm_init.py 追加
rintoHasegawa committed on 28 May
@rintoHasegawa
[add] 速度最適化ワーク開始 — TEST_04 シミュレーション速度最適化履歴を新規作成.Speed-0 ベースライン計測完了: configs/scene_baseline.yaml で B1 sm-render 中央値=507.86s(≈8.46分,3回計測 502〜527s±2.4%)/ B2 sm-visualize path bake samples=16 中央値=55.97s.副次発見: DRJIT_LIBLLVM_PATH 環境変数が消失し sm-render が jitc_llvm_init 失敗→ImportError で即死していたことを判明(feature/baseline-calibration でも同症状=コード起因ではない).C:\Program Files\LLVM\bin\LLVM-C.dll が過去インストール残として存在しており User scope に DRJIT_LIBLLVM_PATH 永続化で復旧.sm-visualize の direct bake は内部 scalar_rgb 固定のため過去ログでも警告は出ていたが完走していた点と整合.方向修正: Speed-1 当初の「JIT 有効化で高速化」は既に JIT 経路に乗っているため不成立 →「LLVM-C.dll 自動検出と診断ログ強化(再発防止+scalar fallback 警告)」に再定義.本命の高速化レバーは Speed-2 path bake wavefront 化(10× 以上見込み)に集約.制約: GPU は Intel HD Graphics 520 のみで CUDA 不可,CPU 完結.精度(spp/max_depth)は不変.CLAUDE.md 開発進捗に速度最適化セクション追加
rintoHasegawa committed on 28 May