From 0384e073df9d41590e098ab7280e01aed46ba124 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 13 Aug 2015 19:19:09 -0500
Subject: [PATCH] Limit number of tested kernels in auto_test_vs_ref

---
 loopy/auto_test.py | 38 ++++++++++++++++++--------------------
 1 file changed, 18 insertions(+), 20 deletions(-)

diff --git a/loopy/auto_test.py b/loopy/auto_test.py
index c26442827..10bef24f4 100644
--- a/loopy/auto_test.py
+++ b/loopy/auto_test.py
@@ -353,14 +353,15 @@ def auto_test_vs_ref(
         ref_knl, ctx, test_knl, op_count=[], op_label=[], parameters={},
         print_ref_code=False, print_code=True, warmup_rounds=2,
         dump_binary=False,
-        fills_entire_output=None, do_check=True, check_result=None
-        ):
+        fills_entire_output=None, do_check=True, check_result=None,
+        max_test_kernel_count=1):
     """Compare results of `ref_knl` to the kernels generated by
     scheduling *test_knl*.
 
     :arg check_result: a callable with :class:`numpy.ndarray` arguments
         *(result, reference_result)* returning a a tuple (class:`bool`,
         message) indicating correctness/acceptability of the result
+    :arg max_test_kernel_count: Stop testing after this many *test_knl*
     """
 
     import pyopencl as cl
@@ -488,28 +489,25 @@ def auto_test_vs_ref(
             properties=cl.command_queue_properties.PROFILING_ENABLE)
 
     args = None
-    from loopy.kernel import LoopKernel
-    if not isinstance(test_knl, LoopKernel):
-        warn("Passing an iterable of kernels to auto_test_vs_ref "
-                "is deprecated--just pass the kernel instead. "
-                "Scheduling will be performed in auto_test_vs_ref.",
-                DeprecationWarning, stacklevel=2)
-
-        test_kernels = test_knl
+    from loopy.kernel import kernel_state
+    if test_knl.state not in [
+            kernel_state.PREPROCESSED,
+            kernel_state.SCHEDULED]:
+        test_knl = lp.preprocess_kernel(test_knl)
+
+    if not test_knl.schedule:
+        test_kernels = lp.generate_loop_schedules(test_knl)
     else:
-        from loopy.kernel import kernel_state
-        if test_knl.state not in [
-                kernel_state.PREPROCESSED,
-                kernel_state.SCHEDULED]:
-            test_knl = lp.preprocess_kernel(test_knl)
-
-        if not test_knl.schedule:
-            test_kernels = lp.generate_loop_schedules(test_knl)
-        else:
-            test_kernels = [test_knl]
+        test_kernels = [test_knl]
+
+    test_kernel_count = 0
 
     from loopy.preprocess import infer_unknown_types
     for i, kernel in enumerate(test_kernels):
+        test_kernel_count += 1
+        if test_kernel_count > max_test_kernel_count:
+            break
+
         kernel = infer_unknown_types(kernel, expect_completion=True)
 
         compiled = CompiledKernel(ctx, kernel)
-- 
GitLab