diff --git a/loopy/options.py b/loopy/options.py index b4af23c7ce1dae016690a148a0b6d071c3cdbc94..5db1be64624c027a6579f28c99db1bb4e78e3bc3 100644 --- a/loopy/options.py +++ b/loopy/options.py @@ -56,6 +56,12 @@ class Options(Record): Like :attr:`trace_assignments`, but also trace the assigned values. + .. attribute:: ignore_boostable_into + + Ignore the boostable_into field of the kernel, when + determining whether an iname duplication is necessary + for the kernel to be schedulable. + .. rubric:: Invocation-related options .. attribute:: skip_arg_checks @@ -132,6 +138,7 @@ class Options(Record): annotate_inames=False, trace_assignments=False, trace_assignment_values=False, + ignore_boostable_into=False, skip_arg_checks=False, no_numpy=False, return_dict=False, write_wrapper=False, highlight_wrapper=False, @@ -155,6 +162,7 @@ class Options(Record): annotate_inames=annotate_inames, trace_assignments=trace_assignments, trace_assignment_values=trace_assignment_values, + ignore_boostable_into=ignore_boostable_into, skip_arg_checks=skip_arg_checks, no_numpy=no_numpy, return_dict=return_dict, diff --git a/loopy/schedule/__init__.py b/loopy/schedule/__init__.py index 04882334f7c5ce9337a690277b16e258eac5327b..6faa78dcaea148ed7c99d5f2434a3d7a0818785c 100644 --- a/loopy/schedule/__init__.py +++ b/loopy/schedule/__init__.py @@ -1469,11 +1469,14 @@ def generate_loop_schedules(kernel, debug_args={}): uses_of_boostability=[]) - generators = [ - generate_loop_schedules_internal(sched_state, - debug=debug, allow_boost=None), - generate_loop_schedules_internal(sched_state, - debug=debug)] + generators = [] + + if not kernel.options.ignore_boostable_into: + generators.append(generate_loop_schedules_internal(sched_state, + debug=debug, allow_boost=None)) + + generators.append(generate_loop_schedules_internal(sched_state, + debug=debug)) def print_longest_dead_end(): if debug.interactive: diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py index 1914b8d677af4cd0a5683d90ff5ac1168a660063..46d375cce2de39267b56175874bac596c00c7427 100644 --- a/loopy/transform/iname.py +++ b/loopy/transform/iname.py @@ -956,7 +956,7 @@ def get_iname_duplication_options(knl, use_boostable_into=False): # If we find a duplication option and fo not use boostable_into # information, we restart this generator with use_boostable_into=True - if not use_boostable_into: + if not use_boostable_into and not knl.options.ignore_boostable_into: for option in get_iname_duplication_options(knl, True): yield option