Skip to content

Commit 29e9af1

Browse files
committed
Update base for Update on "[dynamo] handle 3.13.0 __dict__ watcher bug"
python/cpython#116115 introduced a bug (python/cpython#125608) where changing the attributes of an object may not fire the dict watchers registered to the object's `__dict__`. It has been fixed by python/cpython#125611 but will only be in 3.13.1+. This PR disables the dict watcher guard shortcut for `__dict__`s on 3.13.0 and warns the user to try using 3.13.1+ instead. We also added a simple test to check for this functionality in the future. cc voznesenskym penguinwu EikanWang jgong5 Guobing-Chen XiaobingSuper zhuhaozhe blzheng wenzhe-nrv jiayisunx chenyang78 kadeng chauhang amjames rec [ghstack-poisoned]
2 parents 679f84b + 54fbd89 commit 29e9af1

3 files changed

Lines changed: 13 additions & 87 deletions

File tree

‎test/inductor/test_aot_inductor.py‎

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3727,45 +3727,18 @@ def fail_cuda(is_skip=False):
37273727

37283728
# test_failures, xfail by default, set is_skip=True to skip
37293729
CPU_TEST_FAILURES = {
3730-
"test_duplicate_constant_folding": fail_cpu(is_skip=True),
3731-
# FIXME: failed with Segfault while exiting the Python runtime
3732-
"test_missing_cubin": fail_cpu(is_skip=True),
3733-
# TODO: AssertionError: unsupported Optional type in convert_arg_type: Generator
3734-
"test_normal_functional": fail_cpu(is_skip=True),
37353730
# TODO: failed internally
37363731
"test_multiple_output_alias": fail_cpu(is_skip=True),
3737-
# Looks like the same issue as https://github.com/pytorch/pytorch/issues/122978
3738-
"test_shifted_constraint_ranges": fail_cpu(is_skip=True),
3739-
# failed on MacOS
3740-
"test_zero_grid_with_backed_symbols": fail_cpu(is_skip=True),
3741-
# https://github.com/pytorch/pytorch/issues/122991
3742-
"test_runtime_checks_complex": fail_cpu(is_skip=True),
3743-
"test_runtime_checks_fp8": fail_cpu(is_skip=True),
37443732
}
37453733

37463734
# test_failures, xfail by default, set is_skip=True to skip
37473735
CUDA_TEST_FAILURES = {
3748-
# TODO: AssertionError: unsupported Optional type in convert_arg_type: Generator
3749-
"test_normal_functional": fail_cuda(is_skip=True),
37503736
# quantized unsupported for GPU
3751-
"test_quantized_linear": fail_cuda(is_skip=True),
3752-
"test_quanatized_int8_linear": fail_cuda(is_skip=True),
3737+
"test_quantized_linear": fail_cuda(),
3738+
"test_quanatized_int8_linear": fail_cuda(),
37533739
}
37543740

37553741

3756-
if not IS_FBCODE:
3757-
# The following test passes internally but fails in OSS CI. To be investigated.
3758-
CUDA_TEST_FAILURES.update(
3759-
{
3760-
"test_aoti_debug_printer_codegen": fail_cuda(is_skip=True),
3761-
"test_aoti_debug_printer_user_defined_triton_kernel": fail_cuda(
3762-
is_skip=True
3763-
),
3764-
"test_aoti_debug_printer_sym_inputs": fail_cuda(is_skip=True),
3765-
}
3766-
)
3767-
3768-
37693742
class AOTInductorTestABICompatibleCpu(AOTITestCase):
37703743
device = "cpu"
37713744
check_model = check_model

‎test/inductor/test_aot_inductor_arrayref.py‎

Lines changed: 11 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -161,56 +161,6 @@ def fail_minimal_arrayref_interface(is_skip=False):
161161
"test_torchvision_transforms_functional_tensor_resize": fail_minimal_arrayref_interface(),
162162
}
163163

164-
if not IS_FBCODE:
165-
# The following tests look like they pass in both pytest and unittest (xml
166-
# and terminal output say pass), but the process will segfault. This only
167-
# happens in OSS CI and is fine internally.
168-
CPU_TEST_FAILURES.update(
169-
{
170-
"test_duplicated_params": fail_stack_allocation(is_skip=True),
171-
"test_embedding_bag": fail_stack_allocation(is_skip=True),
172-
"test_fqn": fail_stack_allocation(is_skip=True),
173-
"test_no_args": fail_stack_allocation(is_skip=True),
174-
"test_output_misaligned": fail_stack_allocation(is_skip=True),
175-
"test_pytree_inputs": fail_stack_allocation(is_skip=True),
176-
"test_seq": fail_stack_allocation(is_skip=True),
177-
"test_simple_split": fail_stack_allocation(is_skip=True),
178-
"test_addmm": fail_minimal_arrayref_interface(is_skip=True),
179-
"test_aliased_buffer_reuse": fail_minimal_arrayref_interface(is_skip=True),
180-
"test_buffer_reuse": fail_minimal_arrayref_interface(is_skip=True),
181-
"test_constant_folding": fail_minimal_arrayref_interface(is_skip=True),
182-
"test_convolution": fail_minimal_arrayref_interface(is_skip=True),
183-
"test_empty_graph": fail_minimal_arrayref_interface(is_skip=True),
184-
"test_large_weight": fail_minimal_arrayref_interface(is_skip=True),
185-
"test_large_mmaped_weights": fail_minimal_arrayref_interface(is_skip=True),
186-
"test_normal_functional": fail_minimal_arrayref_interface(is_skip=True),
187-
"test_misc_1": fail_minimal_arrayref_interface(is_skip=True),
188-
"test_missing_output": fail_minimal_arrayref_interface(is_skip=True),
189-
"test_model_modified_weights": fail_minimal_arrayref_interface(
190-
is_skip=True
191-
),
192-
"test_output_path_1": fail_minimal_arrayref_interface(is_skip=True),
193-
"test_quantized_linear": fail_minimal_arrayref_interface(is_skip=True),
194-
"test_quanatized_int8_linear": fail_minimal_arrayref_interface(
195-
is_skip=True
196-
),
197-
"test_repeat_interleave": fail_minimal_arrayref_interface(is_skip=True),
198-
"test_return_constant": fail_minimal_arrayref_interface(is_skip=True),
199-
"test_reuse_kernel": fail_minimal_arrayref_interface(is_skip=True),
200-
"test_simple": fail_minimal_arrayref_interface(is_skip=True),
201-
"test_small_constant": fail_minimal_arrayref_interface(is_skip=True),
202-
"test_with_no_triton_profiler": fail_minimal_arrayref_interface(
203-
is_skip=True
204-
),
205-
"test_with_offset": fail_minimal_arrayref_interface(is_skip=True),
206-
"test_with_profiler": fail_minimal_arrayref_interface(is_skip=True),
207-
"test_zero_size_weight": fail_minimal_arrayref_interface(is_skip=True),
208-
"test_aoti_debug_printer_codegen": fail_stack_allocation(is_skip=True),
209-
"test_view_outputs": fail_minimal_arrayref_interface(is_skip=True),
210-
"test_aoti_debug_printer_cpp_kernel": fail_stack_allocation(is_skip=True),
211-
}
212-
)
213-
214164

215165
class AOTInductorTestABICompatibleCpuWithStackAllocation(AOTITestCase):
216166
device = "cpu"
@@ -240,12 +190,17 @@ class AOTInductorTestABICompatibleCpuWithStackAllocationAndMinimalArrayRefInterf
240190
use_minimal_arrayref_interface = True
241191

242192

243-
copy_tests(
244-
AOTInductorTestsTemplate,
245-
AOTInductorTestABICompatibleCpuWithStackAllocationAndMinimalArrayRefInterface,
246-
"cpu_with_stack_allocation_and_minimal_arrayref_interface",
247-
CPU_TEST_FAILURES,
248-
)
193+
if IS_FBCODE:
194+
# The following tests look like they pass in both pytest and unittest (xml
195+
# and terminal output say pass), but the process will segfault. This only
196+
# happens in OSS CI and is fine internally.
197+
# See https://github.com/pytorch/pytorch/issues/123691
198+
copy_tests(
199+
AOTInductorTestsTemplate,
200+
AOTInductorTestABICompatibleCpuWithStackAllocationAndMinimalArrayRefInterface,
201+
"cpu_with_stack_allocation_and_minimal_arrayref_interface",
202+
CPU_TEST_FAILURES,
203+
)
249204

250205
if __name__ == "__main__":
251206
from torch._inductor.test_case import run_tests

‎torch/csrc/dynamo/eval_frame.c‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,8 +657,6 @@ static PyObject* _custom_eval_frame(
657657
// in the shim.
658658
eval_frame_callback_set(Py_None);
659659

660-
INSPECT(locals);
661-
662660
_PytorchRecordFunctionState* rf = _pytorch_record_function_enter(cache_lookup_profiler_str);
663661
PyObject* maybe_cached_code = NULL;
664662
const char* trace_annotation = "";

0 commit comments

Comments
 (0)