修复 GPU 同步检查包装器在 torch.compile 下的崩溃
值得精读,尤其是正在做 Dynamo/Inductor 集成或维护 compile 相关测试的工程师: 1. 关注 `_active_check_mode` 的短路顺序修正——它揭示了“ContextVar 读取本身就是图断点”这一常被忽视的约束;同一模式可套用到其他在追踪期读取 ContextVar / threading.local 的调试代码。 2. 关注 `_torch_to_in_graph` 的设计:`allow_in_graph` 需要可弱引用对象,因此“Python wrapper 转发原始 C++ 描述符”是通用手法;建议顺手评估 `_checked_cuda` / `_checked_copy_` 是否需要同样处理,避免下一个模型再次踩坑。 3. 关注测试隔离决策链:先解决显存残留,再解决 fork 与 CUDA 初始化的冲突,最终落到 `method="spawn"`;任何新增 compile-heavy 多模态用例都应默认带上该装饰器。 4. 评审时无需重复核对模型输出正确性(作者已说明生产改动只改 debug wrapper 控制流),但应确认 cherry-pick 到 v0.30.0 后是否需要重跑等价门禁。