Skip to content

Commit

Permalink
Add large query mode to GPU unexpected pass finder
Browse files Browse the repository at this point in the history
Adds --large-query-mode flag, which increases the effective max
--num-samples value for large test suites by using an initial, smaller
query to create a test filter which is used to reduce the amount of data
input into the ORDER BY clause in the actual query. This in turn allows
us to query more data before running into the hard memory limit when
using ORDER BY.

Additional includes several performance enhancements in order to try to
offset the additional runtime when using --large-query-mode.

Bug: 1175909
Change-Id: I49c35dca8011db2ea1a199d86876c0db89be54f2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2718929
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#857796}
  • Loading branch information
Brian Sheedy authored and Chromium LUCI CQ committed Feb 25, 2021
1 parent 8757050 commit 915f729
Show file tree
Hide file tree
Showing 4 changed files with 439 additions and 99 deletions.
13 changes: 11 additions & 2 deletions content/test/gpu/unexpected_pass_finder.py
Expand Up @@ -122,6 +122,13 @@ def ParseArgs():
action='store_true',
default=False,
help='Disable logging for non-errors.')
parser.add_argument('--large-query-mode',
action='store_true',
default=False,
help='Run the script in large query mode. This incurs '
'a significant performance hit, but allows the use of '
'larger sample sizes on large test suites by partially '
'working around a hard memory limit in BigQuery.')

args = parser.parse_args()
if args.quiet:
Expand Down Expand Up @@ -165,12 +172,14 @@ def main():
unmatched = queries.FillExpectationMapForCiBuilders(test_expectation_map,
ci_builders, args.suite,
args.project,
args.num_samples)
args.num_samples,
args.large_query_mode)
try_builders = builders.GetTryBuilders(ci_builders)
unmatched.update(
queries.FillExpectationMapForTryBuilders(test_expectation_map,
try_builders, args.suite,
args.project, args.num_samples))
args.project, args.num_samples,
args.large_query_mode))
unused_expectations = expectations.FilterOutUnusedExpectations(
test_expectation_map)
stale, semi_stale, active = expectations.SplitExpectationsByStaleness(
Expand Down

0 comments on commit 915f729

Please sign in to comment.